2. En este caso se trata de predecir el tipo de medicamento que se
debe administrar a un paciente con una enfermedad determinada
según distintos parámetros/variables. Las variables que se recogen
en los historiales clínicos de cada paciente son:
Age: Edad
Sex: Sexo
BP (Blood Pressure): Tensión sanguínea.
Cholesterol: nivel de colesterol.
Na: Nivel de sodio en la sangre.
K: Nivel de potasio en la sangre.
Hay cinco tratamientos posibles: DrugA, DrugB, DrugC, DrugX,
DrugY. los datos del medicamento idóneo para muchos pacientes
se han tomade de cuatro hospitales.
3. Una vez inicializado el weka procedemos a
cargar el proyecto de la siguiente manera:
5. En la grafica anterior nos podemos dar cuenta que
tenemos 7 atributos y en la parte derecha de la
pantalla podemos ver el tipo de atributo y los
componentes que tiene.
Lo mismo podemos hacer con todas las variables
para poder darnos cuenta.
6. En la pantalla nos muestra los parámetros a
escoger para poder generar el árbol de
clasificación.
7. En este caso tomamos el J48, en test options
damos clic en la pestaña Use training set y por
último damos clic en start y podemos darnos
cuenta que nos da una tabla de resultados.
8. === Run information ===
Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2
Relation: DRUG1n
Instances: 200
Attributes: 7
Age
Sex
BP
Cholesterol
Na
K
Drug
Test mode: evaluate on training data
=== Classifier model (full training set) ===
J48 pruned tree
------------------
K <= 0.055221
| K <= 0.037124: drugY (56.0)
| K > 0.037124
| | Na <= 0.685143
| | | BP = HIGH
| | | | Na <= 0.656371: drugA (6.0)
| | | | Na > 0.656371: drugY (2.0/1.0)
| | | BP = LOW
| | | | Sex = F: drugC (3.0)
| | | | Sex = M: drugX (4.0/1.0)
| | | BP = NORMAL: drugX (11.0/1.0)
| | Na > 0.685143: drugY (33.0/2.0)
K > 0.055221
| BP = HIGH
| | Age <= 50: drugA (17.0)
| | Age > 50: drugB (15.0)
| BP = LOW
| | Cholesterol = HIGH: drugC (14.0/1.0)
| | Cholesterol = NORMAL: drugX (13.0)
| BP = NORMAL: drugX (26.0)
Number of Leaves : 12
Size of the tree : 21
Time taken to build model: 0.02 seconds
=== Evaluation on training set ===
=== Summary ===
Correctly Classified Instances 194 97 %
Incorrectly Classified Instances 6 3%
Kappa statistic 0.9568
Mean absolute error 0.0199
Root mean squared error 0.0997
Relative absolute error 7.1292 %
Root relative squared error 26.749 %
Total Number of Instances 200
=== Detailed Accuracy By Class ===
TP Rate FP Rate Precision Recall F-Measure Class
0.967 0.028 0.967 0.967 0.967 drugY
1 0.005 0.941 1 0.97 drugC
0.963 0.014 0.963 0.963 0.963 drugX
1 0 1 1 1 drugA
0.938 0 1 0.938 0.968 drugB
=== Confusion Matrix ===
a b c d e <-- classified as
88 1 2 0 0 | a = drugY
0 16 0 0 0 | b = drugC
2 0 52 0 0 | c = drugX
0 0 0 23 0 | d = drugA
1 0 0 0 15 | e = drugB
9. Como podemos observar weka nos informa en
primer lugar de algunos parámetros del dataset.
A continuación nos muestra de manera textual
el modelo aprendido. Por ultimo nos incluye
información sobre la evaluación del modelo. En
este problema. Además podemos conocer más
detalles de la distribución de los ejemplos por
clase en la matriz de confusión.
10. Luego realizamos clic derecho en el link que nos
dio en el momento de que pinchamos start y
nos ubicamos en la parte que dice visualize tree
12. Como podemos observar, el árbol tiene
bastantes reglas. Podemos ver cuál es el
acierto de este árbol respecto a los datos de
entrenamiento. Sin embargo, en este caso
tenemos un error de sólo el 3,5% sobre los
datos de entrenamiento. Este modelo es
muchísimo mejor que sí sólo nos guiamos por
la distribución, que nos daría un error de más
del 50% .
13. Podemos analizar pares de atributos utilizando
diferentes gráficos. Para comparar la relación entre
atributos en Weka debemos acudir al entorno
Visualize, donde podemos realizar gráficas entre pares de
atributos y ver si tienen alguna relación con las clases. De
entre todas las combinaciones posibles, destaca la que
utiliza los parámetros de los niveles de sodio y potasio (K
y Na) ver Pulsando en la parte inferior sobre las
clases, podemos cambiar los colores asignados a las
clases, mejorando la visualización del gráfico. Además
podemos ampliar y ver con más detalle alguna zona del
gráfico con select instance y submit.
14.
15. En este gráfico sí que se ven algunas
características muy significativas. Parece haber
una clara separación lineal entre una relación
K/Na alta y una relación K/Na baja. De
hecho, para las concentraciones K/Na bajas, el
tratamiento Y es el más efectivo de una manera
clara y parece mostrarse que por encima de un
cierto cociente K/Na ese medicamento deja de
ser efectivo y se debe recurrir a los otros cuatro.