Practica Knowledge Flow

Ejercicio Tema 5 Construcción de un KnowledgeFlow para Clasificación Supervisada En este último tema vamos a realizar un

Views 634 Downloads 74 File size 63KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Ejercicio Tema 5 Construcción de un KnowledgeFlow para Clasificación Supervisada En este último tema vamos a realizar un ejercicio muy interesante que persigue los siguientes objetivos: • Aplicar los conceptos de validación cruzada. • Aprender qué es el KnowledgeFlow de Weka. • Utilizar el KnowledgeFlow de Weka para realizar un flujo completo, de forma que evaluaremos la selección de variables que se realizó en el tema anterior. El “WorkFlow” que tenemos que realizar se puede ver en la Figura 1. ¿Qué es el KnowledgeFlow? El KnowledgeFlow proporciona una alternativa al “explorador”, es un entorno gráfico de los algoritmos base de Weka. El KnowledgeFlow presenta un interfaz inspirado en “flujo de datos”. El usuario puede seleccionar los componentes de Weka de una barra de la herramienta, situarlos en pantalla y conectarlos para formar un “flujo del conocimiento” para procesar y analizar datos.

Figura 1: Este el “WorkFlow” que tenemos que crear en el ejercicio de este tema. Comenzando a utilizar el KnowledgeFlow ¿Cómo se pone un nodo en pantalla? Es tan sencillo como hacer clic con el botón izquierdo del ratón en el nodo que queremos utilizar y, a continuación, hacer clic en la zona donde quieras situarlo. ¿Cómo se configura un nodo? Una vez situado el nodo, haciendo clic sobre él con el botón derecho del ratón nos aparecen una serie de opciones, entre ellas “Configure”. De esta forma tendremos que ir configurando los nodos que utilicemos.

¿Cómo se conectan dos nodos?

De un nodo a otro fluye determinado tipo de información, que depende de los nodos que estemos utilizando. A lo largo de este ejercicio se detallará, paso por paso, la información que fluye entre nuestros nodos. Una vez situados los dos nodos que queremos unir en pantalla, haciendo clic con el botón derecho del ratón sobre el primero de ellos, nos aparecen, bajo el nombre “Connections”, los flujos de información que se pueden enviar. En el caso de la siguiente figura, se está eligiendo enviar el “dataSet”

Figura 2: Conectando de dos nodos Construcción de nuestro KnowledgeFlow PASO 1 Insertar un nodo del tipo “Arff Loader” (etiqueta “DataSources”). Configurarlo para que lea el fichero “diabetes.arff” PASO 2 Insertar el nodo “Class Assigner” (etiqueta “Evaluation”). Unirlo con el nodo anterior, enviando el “dataSet”. Configurar el nodo para que la clase sea la variable llamada “class” (debería tenerla configurada por defecto). PASO 3 Insertamos un nodo “Discretize” (etiqueta “Filters”). Unirlo con el nodo anterior, enviando el “dataSet”. La configuración por defecto discretiza todas las variables. Dejamos esta configuración. A continuación vamos a establecer dos rutas paralelas. La primera ruta usará un 10-fold para evaluar la clasificación del dataset con todas sus variables. La segunda ruta utilizará también un 10-fold pero para evaluar la clasificación cuando usamos sólo las variables que intuitivamente seleccionamos en el anterior tema. Comenzamos con la ruta de arriba. PASO 4 Insertamos un nodo “CrossValidation FoldMaker” (etiqueta “Evaluation”). Unirlo con el nodo anterior, enviando el “dataSet”. En la configuración podemos elegir el número de Folds (por defecto 10) y la semilla aleatoria (por defecto 1). Dejamos los valores por defecto. PASO 5 Insertar el nodo “Naive Bayes” (etiqueta “Classifiers”).

Unirlo con el nodo anterior, enviando el “trainingSet”. Unirlo con el nodo anterior, enviando el “testSet”. Sí, hay que enviar las dos informaciones, en otro caso la validación cruzada no funcionará correctamente. En este nodo de tipo “Naive Bayes” dejamos la configuración por defecto. PASO 6 Insertar el nodo “Classifier PerformanceEvaluator” (etiqueta “Evaluation”). Unirlo con el nodo anterior, enviando el “batchClassifier”. El resto por defecto PASO 7 Ya sólo nos queda visualizar el resultado. Añadimos un nodo de tipo “TextViewer” (etiqueta “Visualization”). Unirlo con el nodo anterior, enviando “text”. Para comprobar que todo funciona correctamente, hacemos clic con el botón derecho del ratón sobre el primero de los nodos y seleccionamos “Actions-Start loading”. Esta acción hace que se cargue el dataset y que se ejecute todo. Sólo nos queda hacer clic en el último nodo, seleccionar “Actions-Show Results”, y ver los resultados obtenidos.

PASO 8 La segunda ruta es exactamente igual que la primera, pero con un nodo intermedio que borra las variables que no queremos (ver Figura 1). El nodo intermedio es de tipo “Remove” (etiqueta “Filters”). En la configuración de este nodo debemos especificar, separando por comas, el índice de las variables que queremos eliminar.

¿Qué tenéis que entregar? Como resultado de este ejercicio nos tenéis que mandar la siguiente tabla rellena. Como veis hay que realizar 5 ejecuciones, cambiando la semilla aleatoria de creación de los 10-fold (parámetro “seed” del nodo “CrossValidation FoldMaker”) y rellenar el porcentaje de bien clasificados obtenidos en cada caso. Semilla aleatoria

Naive Bayes 1 (todas las varibles)

Naive Bayes 2 (quitando las variables que no se consideren interesantes)

1 2 3 4 5

% bien clasif

% bien clasif

% bien clasif

% bien clasif

% bien clasif

% bien clasif

% bien clasif

% bien clasif

% bien clasif

% bien clasif

Nota: Acordaros de cambiar la semilla en las dos sub-rutas que hemos realizado.