Manual WEKA Explorer Realizado por: Alfredo Gómez Norambuena I) WEKA Weka GUI: ventana para ambientes gráficos. En la parte inferior están estos tres botones: - simple CLI: comando que permite directa ejecución de comandos Weka.. - Explorer: explorar datos con Weka. - Experimenter: para realizar experimentos y conductas estadísticas (test) (existe un tutorial específico para ello). II) WEKA KNOWLEDGE EXPLORER EXPLORER (Parte superior de la ventana (bajo el título)). Primero el primer “tab” está activo y las otras en gris. Esto es por que es necesario abrir un “data set” antes de explorar la data Los “tabs” son: 1) Pre process: seleccionar y modificar la data que se va a usar. 2) Classify: entrenar y testear sistemas de aprendizaje (learning schemes) que clasifican y generan regresión. 3) Cluster: aprender agrupación de los datos(data). 4) Associate: aprender reglas de asociación para los datos (data). 5) Seleccionar atributos: seleccionar los atributos más importantes del data. 6) Visualize: ver gráfica interactiva 2D del data. En cada tab cuando están activos se abrirán distintas pantallas donde se pueden realizar las diferentes acciones. La parte inferior de la ventana (from the log box downwords) se mantiene visible sin observar en que selección se encuentra. LOG BOX (en la parte inferior de la ventana) Contiene una barra de movimiento (escrollable text field) Cada línea de texto queda registrada con la hora que fue ingresada al log. Cuando se generan acciones en Weka el log mantiene un registro de lo que sucede. STATUS BOX (en el extremo inferior de la ventana bajo el log box) Despliega mensajes que mantienen informado de lo que sucede. Por ejemplo: si el Explorer está ocupado cargando un archivo, el Status Box lo dirá. TIP Haciendo click en botón derecho del Mouse, dentro del Status Box se genera un menú con dos opciones: - Available memory: despliega en el Log Box la cantidad de memoria disponible para Weka. - Run Garbage Collector: fuerza el colector de basura de JAVA para buscar la memoria que no es usada para liberarla, permitiendo el uso de memoria para nuevas operaciones (tasks) Hay que destacar que el colector de basura, está corriendo constantemente igual como “background task”.
WEKA STATUS ICON ( a la derecha del Status Box) Cuando no hay procesos corriendo el pájaro se sienta y toma una siesta. El número al lado del símbolo “X” entrega el número de procesos corriendo (concurrent processed running). Cuando el número no sirve, es cero pero aumenta el número de procesos. Cuando el pájaro se para y se mueve, significa que un proceso partió. Si el pájaro esta de pie pero deja de moverse por un tiempo largo, está enfermo, es decir, algo anda mal. En este caso hay que reiniciar el Weka Explorer. III) PRE PROCESO Abrir archivos Los primeros tres botones en la parte superior de la sección de proceso permite abrir datos en Weka: - Open file… aparece un cuadro de diálogo para poder buscar “Browse” las datos (data) en el sistema de archivo local. - Open URL… pregunta por un “Uniform Resourse locator Adress” de donde la data está guardada. - Open DB… lee la data de una base de datos. La manera más fácil y más común de obtener la data para introducir en Weka es aquella con formato ARFF (atribute relation file format) y cargarla usando el botón Open File… (ARFF tienen extención. arff). LA RELACIÓN DE TRABAJO Y LA RELACIÓN BASE Justo debajo de la línea de botones hay dos cuadros: “base relation” y “Working relation” - La “Base Relation” es la relación modificable (o data) que ha sido cargado en Weka. - La “Working Relation” es una copia de la “Base Relation” completada con cualquier modificación realizada con los (filters) filtros en el “pre process ” panel. Cuando una “Relation” es cargada por primera vez, el “Working Relation” es igual al “Base Relation” y apenas cualquier filtro es aplicado a la data el “Working relation” cambia y el “Base Relation” sigue igual. Si generamos otra acciones como “Building a Classifier”(creando clasificador) o “visualizing the data” (visualizando los datos) estamos siempre actuando en el “Working relation”. Los cuadros que describen las relaciones o “relation” tienen tres entradas: - Relation: el nombre de la relación, es el mismo que el del archivo que fue cargado. Los filtros decritos a continuación, modifican el nombre de la relación. - Instances: el número de instancias en la data (data points/records) - Attributes: el número de atributos en la data (“features”).
TRABAJANDO CON ATRIBUTOS (ATTRIBUTES) Bajo el cuadro “Base Relation” se encuentra el cuadro “Attributes in Base Relation”. Existen tres botones y bajo ellos hay una lista de atributos en la base de relación en curso (“Current Base Relation”), la lista tiene tres columnas: - No: un número que identifica el atributo, en el orden que están especificadas en el “data file”. - Selection tick boxes: permite seleccionar qué atributos están presentes en el “Working relation”. - Name: el nombre del atributo, como fue declarado en el “data file”. Cuando se clickea en las distintas filas en la lista de atributos, los campos cambian a la derecha, al cuadro llamado “Attribute information for base relation”. Este cuadro despliega las características de los atributos en la lista (Currently highlighted attribute in the list): - Name: el nombre del atributo es el mismo dado al atributo en la lista. - Type: el tipo de atributo, más comúnmente nominal o numérico. - Missing: el número (y porcentaje) de instancias que en el data falta el atributo (no especificado). - Distinct: el número de diferentes valores que el data contiene para este atributo. - Unique: el número (y porcentaje) de instancias en la data que tienen un valor para este atributo que ninguna otra instancia tiene. Bajo estas estadísticas existe una lista que muestra más información acerca de los valores guardados en este atributo, que difieren dependiendo de su tipo. Si el atributo es nominal, la lista consiste en cada valor posible para el atributo a lo largo del número de instancias que tienen este valor. Si el atributo es numérico, la lista muestra cuatro estadísticos que describen la distribución de los valores en la data (min., máx., “mean”y desviación estándar) Volviendo a la lista de atributos, para comenzar con todas los “tick boxes” están tickeados. Pueden cambiarse on/off , haciendo click en ellos individualmente. Los tres botones arriba pueden usarse para cambiar la selección también: - All: todos los cuadros tickeados. - None: ningún cuadro tickeado. - Invert: los tickeados se vuelven no tickeados y viceversa. NOTA: El “Attribute tick” es un filtro que es aplicado antes que cualquier otro filtro y a su vez como cualquier filtro, cualquier cambio que se haga no tendrá efecto hasta que se haga click en el botón “Apply Filters”. TRABAJANDO CON FILTROS La sección de pre proceso, permite a los filtros definir las transformaciones de la data en varias formas. El cuadro “Filters” se usa para hacer un “set up” de los filtros requeridos.
Arriba del cuadro “filters” existe un campo de texto con el nombre de un filtro seguido por algunas opciones. Haciendo click en este cuadro, se obtiene un cuadro de diálogo con un editor de objetos genéricos (generic object editor).
CUADRO DE DIÁLOGO (GENERIC OBJECT EDITOR) Permite escoger un filtro y tener sus opciones de configuración. El mismo tipo de cuadro de diálogo es usado para otros objetos como clasificadores (classifiers) y agrupadores (clusters), como se verá a continuación. Un simple click en el botón izquierdo del Mouse en el nombre del filtro, en la parte superior de la ventana, genera un la lista (drop down list) de todos los filtros, ahí se hace click en el requerido. Cuando es escogido un filtro, el campo en la ventana cambia para reflejar las opciones disponibles. Haciendo click en cualquiera de éstas, da la oportunidad de cambiar su configuración (settings). Por ejemplo, la configuración puede tomar un string de texto, en este caso hay que tipiar el texto en el campo de texto dado. En otros casos se da un cuadro que lista los distintos estados que se pueden elegir (drop down list). Existen casos que suceden otras opciones dependiendo de la información que se requiere. Algunos objetos muestran una descripción (brief description) de que hacen en un cuadro acerca de… (About Box) que tiene un botón “More”, haciendo click en este botón, aparece una ventana que describe las distintas opciones que se pueden realizar. En el botón del diálogo “Generic Object Editor” existen cuatro botones, los primeros dos, OPEN… y SAVE…, permiten guardar las configuraciones de objetos para usos posteriores. El botón CANCEL, termina la operación y vuelve atrás sin guardar ningún cambio. Cuando se esté de acuerdo con todos los objetos y configuración elegida, clickear OK y retornar a la ventana principal de EXPLORER. APLICANDO FILTROS El proceso general de configuración, es elegir el filtro deseado y sus opciones, luego hacer click en el botón “Add” para sumarlo a la lista. Los filtros solo serán aplicados cuando se hace click en el botón “Apply Filters” y serán aplicadas en el orden que aparezcan en la lista. Se puede remover en cualquier filtro de la lista con el botón “Delete”. El botón “Replace” en la parte superior de la sección de pre proceso reemplaza la “Base Relation” con el “Current Working Relation”, haciendo los cambios permanentes ,al menos hasta que un nuevo archivo es cargado. Finalmente, el botón “SAVE”… en la parte superior derecha de la pantalla, guarda el “Working Relation” en archivo de extención ARFF, dejándolo habilitado para usos futuros. IV) CLASIFICACIÓN (CLASSIFICATION) SELECCIONANDO UN CLASIFICADOR En la parte superior de la sección de clasificadores, está el cuadro “Cassifier”. Este cuadro contiene un campo de texto que da el nombre de los clasificadores seleccionados por el momento y sus opciones. Haciendo click en el cuadro de texto, muestra un cuadro de diálogo de un editor genérico de objeto (generic object editor), al igual que los filtros. Esto permite elegir un clasificador de los que están disponibles en la Weka y configurarlo.
OPCIONES DE PRUEBA (TEST OPTIONS) El resultado de aplicar el clasificador elegido será, probado según las opciones que serán configuradas haciendo click en el cuadro “test options”. Existen 4 modos de prueba: - Use training set: el clasificador es evaluado en torno a la calidad de predicción de la clase de las instancias que fue entrenado. - Supplied test set: el clasificador es evaluado en torno a calidad de predicción de la clase de un set de instancias cargadas de un archivo. Haciendo click en el botón “Set…” genera un diálogo, por el cual se puede elegir el archivo a probar (hacer el test). - Cross- validation: el clasificador es evaluado por validación cruzadas (Crossvalidation, usando en número de carpetas (folds) que fueron ingresadas en el campo de texto “Folds”. - Percentage split: el clasificador es evaluado con respecto a la calidad de predicción de un cierto porcentaje de datos (data), en los cuales están sustentadas las pruebas. La cantidad de datos (held) sustentada depende del valor ingresado en el campo “%”. Mayores alcances (opciones avanzadas) de opciones de prueba, pueden ser configuradas haciendo click en botón “More options…”: 1) Output model:(salida del modelo) el modelo de clasificación del set de total entrenamiento, puede ser visto, visualizado o tener otras salidas. 2) Output per-class stats: (salida estadística por clase) las estadísticas precisión/rellanado (precesion/recall) y verdadero/falso (true/false), para cada clase pueden obtenerse. 3) Output entropy evaluation measures: (salida medidas de evaluación de entropía), están incluidas en las salidas las evaluaciones de la entropía. 4) Output confusion matrix: (matriz de confusión) la matriz de confusión de las predicciones de los clasificadores están incluidas en las salidas 5) Store predictions for visualization: (guarda predicciones de visualización): las predicciones de los clasificadores son recordados para poder ser visualizados. 6) Cost-sensitive evaluation: (evaluación sensible de costo), los errores son evaluados con respecto a matriz de costos. El botón “Set…”permite especificar la matriz de costos usada. 7) Random Seed for X Val/%split: especifica semilla al azar (random seed) usada cuando se azarisan los datos antes de dividirlos para propósitos de evaluación. ATRIBUTOS DE CLASE Los clasificadores en Weka, están diseñados para ser entrenados para predecir atributos de clase simple, el cual es el objetivo de la predicción. Algunos clasificadores solo pueden aprender clases nominales, otras solo numéricas (problemas de regresión), y otra, pueden aprender ambas. Por descarte, las clases serán el último atributo en las datos. Si se requiere entrenar un clasificador para predecir un atributo diferente, hay que hacer click en el cuadro, bajo el cuadro “Test options” para obtener una lista (drop down list) de atributos para elegir.
ENTRENAMIENTO DE CLASIFICADORES Cuando los clasificadores, las opciones de prueba y las clases ya están configuradas, el proceso de aprendizaje empieza haciendo click en el botón “Start”. Mientras el clasificador está ocupado en entrenamiento, el pájaro se mueve. Se puede detener el entrenamiento en cualquier momento con el botón “Stop”. Cuando el entrenamiento está completo, el área del clasificador de salidas (Classifier output), a la derecha del “Display” está lleno de texto describiendo el resultado del entrenamiento y de la prueba. Una nueva entrada (lista de resultados) aparece en el cuadro “Result list”, miramos la lista debajo con resultados, pero antes investigar el texto que está en la salida. TEXTO DE SALIDAS DE CLASIFICADOR (CLASSIFIER OUTPUT TEXT) El texto en el que “Classifier output” (salidas del clasificador) tiene (scroll bars) barras de selección, permitiendo buscar los resultados. Además, se puede agrandar la ventana Explorer, para tener un área mayor mostrada. Las salidas pueden ser obtenidas (split) en diversas secciones: 1) Run information: lista de información que muestra las opciones, relaciones de nombre, instancias, atributos y modos de prueba de los tipos de aprendizaje (learning scheme) que tenían relación con el proceso. 2) Classifier model (full training set) modelo total de clasificación: una representación textual del modelo de clasificación que fue producido en entrenamiento total de datos. 3) Los resultados de las pruebas elegidas están quebrantadas. 4) Summary (resumen): una lista de estadísticas, resumiendo cuan minucioso el clasificador pueda predecir la clase verdadera de las instancias bajo el modo de pruebas. 5) Detailed accuracy by class: un quiebre más detallado por clase (detailed per-class break down) de clasificador de predicción (classifier prediction accuracy). 6) Confusión matrix: muestra cuantas instancias han sido asignadas a cada clase. Elementos muestran el número de ejemplos de prueba, las cuales la clase actual es la fila, y la clase predicha es la columna. LA LISTA DE RESULTADOS (RESULT LIST) Después de entrenar varios clasificadores, la lista de resultados tendrá varias entradas. Haciendo click izquierdo en las entradas (entries flicks back and forth) entre varios resultados que han sido generados. Haciendo click derecho en una entrada se abre un menú conteniendo estos ítems: - View in main window (vista en ventana principal): muestra las salidas en la ventana principal (igual que haciendo click izquierdo en la entrada (entry)). - View in separate window (visión en pantalla separada):abre una ventana independiente para visualizar resultados.
-
-
-
-
Save result buffer (Guardar buffer de resultados): genera un diálogo, permitiendo guardar el archivo de texto que contiene la salida de texto. Load model (cargando el modelo): carga el objeto del modelo pre-entrenado de un archivo binario. Save model (guarda el modelo): guarda un objeto de modelo en un archivo binario. Los objetos son guardados en JAVA. Re-evaluate model on current test set: el modelo ya construido y probado su desempeño con los datos (data set) que fueron especificados con el botón “Set…” bajo la opción “Supplied test set”. Visualize classifier errors: genera una ventana de visualización que grafica de los resultados de la clasificación. Las instancias correctas serán representadas en forma de cruces, y las no correctas serán representadas en cuadrados. Visualize tree: genera una representación gráfica de la estructura del modelo de clasificación, si es posible (solo está disponible con algunos clasificadores). Se puede generar menú, haciendo click derecho en una zona en blanco, moviéndose por las opciones, moviendo el Mouse (pan around by dragging the mouse) y ver las instancias de entrenamiento en cada nodo, haciendo click en ellos. CTRL-click hace zoom en las vistas, mientras que con SHIFT- dragging, una caja hace zoom in. Visualize margin curve: genera un gráfico que ilustra las predicciones del margen. El margen se define como la diferencia entre la predicción de probabilidad para la clase actual y la probabilidad más alta que se puede predecir para otras clases. Por ejemplo, logaritmos de loasting, pueden alcanzar mejores desempeños en pruebas de datos con respecto a incrementar los márgenes de las datas de entrenamiento. Visualize threshold curve: genera un gráfico que muestra los “tradeoffs”en predicción, que son obtenidos variando los valores del “threshold” de 0.5, la probabilidad que se predijo positiva (positive), debe ser mayor que 0.5 para instancias que deben predecirse positivas. La gráfica puede ser usada para visualizar la Precision/recall tradeoff, para el análisis de la curva ROC (true positive rate/ false positive rate) y para otro tipo de curvas. Visualize cost curve: genera una gráfica que da una representación explícita de los costos esperados, como los describen Drummond y Halte (2000).
Las opciones son grilladas (greyed out) si no se aplica al set de resultados específicos. V) CLUSTERING SELECCIONANDO UN CLUSTER Ya siendo familiares el proceso de selección y los objetos de configuración, haciendo click en el “clustering scheme” listado en la caja “CLUSTERER” en la parte posterior de la ventana, muestra un diálogo “generic object editor” por el cual se puede seleccionar un nuevo “clustering scheme”. CLUSTER MODES (MODOS DE AGRUPACIÓN) La caja de “CLUSTER MODES”, sirve apara elegir a qué se le va a aplicar cluster, y cómo evaluar los resultados. Las primeras tres opciones, son iguales a los de clasificación: “USE training set, Supplied test set y percentage split (sección 4)”; con la diferencia que los datos son asignados para Cluster, en vez de tratar de predecir una clase específica. La cuarta opción o modo es el “CLASSES TO CLUSTER EVALUATION”, que compara qué tan bien el cluster elegido calza con clases pre-asignadas de datos. La caja drop down bajo estas opciones selecciona la clase, al igual que el panel “classify”.
En la caja de “CLUSTER MODE” hay una opción adicional, la “Store clusters for visualization” (guarda para visualizar) que contiene caja de tickeado, determina si es posible o no visualizar los cluster cuando el entrenamiento esté completo. Cuando se trabaje con datasets demasiado grandes, pueden existir problemas con la memoria, por lo que podría ser de ayuda deshabilitar esta opción. IGNORANDO ATRIBUTOS Algunos atributos deberán ser ignorados cundo se hace “clustering”. El botón “Ignore attributes” genera una pequeña ventana que permite escoger los atributos a ignorar. Esto se realiza haciendo click en los atributos, y si se quiere seleccionar un rango consecutivo, se hace apretando continuamente la tecla “shift” y para atributos separados con la tecla “CTRL”. Para cancelar se hace con el botón “Cancel”, para activar se hace a través del botón “select”. Así, la próxima vez que se haga clustering, los atributos seleccionados serán ignorados. APRENDIENDO CLUSTERS La sección “cluster”, así como la sección “classify”, tienen botones Start/Stop, una área de resultado de texto y una lista de resultados. Éstos se comportan igual que el contador de partes de clasificación (classification counterparts). Haciendo click derecho en una entrada en la lista de resultados, genera un menú similar, con la excepción que solo muestra una opción de visualización: “VISUALIZE CLUSTER ASSIGMENT”. VI) ASOCIANDO (ASSOCIATING) CONFIGURANDO (SETTING UP) WEKA tiene una Asociación de aprendizaje (scheme for learning assotiations) llamado “Apriori”. Haciendo click en la caja “Associator” en la parte superior de la ventana genera las configuraciones para “Apriori”, no hay otros asociadores para escoger. Tampoco hay opciones extras para probar el (learning scheme) aprendizaje. APRENDIENDO ASOCIACIONES (LEARNING ASSOCIATIONS) Ya configurados los parámetros apropiados para “Apriori”, hacer click en el botón “Start”. Cuando se complete el proceso, hacer click derecho en alguna entrada, así se podrá ver o guardar los resultados. VII) SELECCIONANDO ATRIBUTOS BÚSQUEDA Y EVALUACIÓN La selección de atributos envuelve la búsqueda en todas las posibles combinaciones de atributos de datos para encontrar que sub-conjuntos de atributos trabajan mejor para la predicción. Para hacer esto, dos objetos deberán ser configurados: Un evaluador de atributos (attribute evaluator) y un método de búsqueda (search method). El evaluador determina qué método es usado para asignar un “WORTH” a cada subconjunto de atributos. El método de búsqueda determina qué estilo de búsqueda se desarrollará. OPCIONES (OPTIONS) La caja “ATTRIBUTE SELECTIONS MODE” tiene dos opciones: - Use full training set (worth of the attribute subset): el peor de los subconjuntos de atributos es determinado usando el conjunto de entrenamiento de datos total (full set of training data). - Cross-validation: el peor de los subconjuntos de atributos está determinado por un proceso de validación cruzada (cross-validation). Los compás “Fold” y “Seed”
especifica el número de registros (“Folds”) a usar y el “Random seed” organiza los datos. Al igual que “Classify” (sección 4) existe un cuadro drop down donde se pueden especificar qué atributos tratar (which attribute to treat as the class). HACIENDO SELECCIÓN (PERFARMING SELECTION) Haciendo click en “Start”, corre el proceso de selección de atributos. Cuando termina, los resultados salen en el área de los resultados, y una entrada se agrega en la lista de resultados, al hacer click derecho en el resultado se generan varias opciones: las tres primeras (view in main window, view in separate window y save result buffer) son iguales que el caso del panel de clasificación (Classify panel). Si se ha utilizado un transformador de atributos (attribute transformer) como componentes principales. ( Principal components), un cuarto item aparece activo: “Visualize transformed data”. VIII) VISUALIZANDO (VISUALIZING) La sección de visualización de WEKA, permite visualizar gráficas en 2D de las relaciones de trabajo (working relation) en distintos momentos. Para ello se usan los controles de visualización ya descritos. CAMBIANDO LA VISUAL Los puntos de las datos estarán ploteados en el área principal de la ventana. En la parte superior hay dos botones de listas (drop down) para seleccionar los ejes del gráfico. El de la izquierda, muestra los atributos del eje X, y el de la derecha el atributo del eje Y. En el selector del eje X, existe una lista para seleccionar colores, esto permite cambiar el color de los puntos basados en algún atributo seleccionado. Bajo el área de graficado, existe una leyenda que describe qué significa cada color en la gráfica. Si los valores son discretos, se pueden modificar los colores de cada uno haciendo click en ellas, y haciendo una correcta selección en las ventanas emergentes. A la derecha del área del gráfico existen una serie de “strips” horizontales, donde cada uno de estos strips representa un atributo y los puntos muestran la distribución de los valores del atributo. Estos valores están azarosamente “scattered” verticalmente, para ayudar a ver los puntos de concentración. Se puede seleccionar qué ejes serán usados en el gráfico principal haciendo click en las “strips”.Haciendo click izquierdo en los strip de atributos cambia el eje X para ese atributo, y el eje Y, se cambia haciendo click derecho. Los ejes están marcados con las letras X e Y para identificarlas. Sobre los strips de atributos, se muestra un “slider” (barra de deslizamiento) llamado “JITTER” que es un despliegue azaroso dado a todos los puntos de la gráfica. Arrastrándolo (dragging) a la derecha aumenta el tamaño de “JITTER”, que es útil para probar las concentraciones de los puntos. Sin JITTER millones de instancias no se verán diferentes (en un mismo punto o como una sola instancia). SELECCIONAN INSTANCIAS Hay situaciones que es de ayuda seleccionar un subconjunto de datos al usar una herramienta de visualización. Un caso especial de esto es el “User Classiffier”, que permite crear un clasificador propio por medio de selecciones interactivas. Bajo el botón selector del eje Y, existe un botón lista (drop down) para elegir un método de selección. Un grupo de datos pueden seleccionarse de cuatro maneras:
1) Select instance: haciendo click en un punto individual genera una ventana que lista los atributos. Si hay más de un punto en el mismo lugar, más de una lista aparecerá. 2) Rectangle: se puede crear un rectángulo arrastrando, así se seleccionan los puntos dentro de él. 3) Poligon: se puede crear un polígono de cualquier forma, que selecciona los puntos dentro de él. Haciendo click izquierdo para agregar vértices del polígono y click derecho para completarlo. El polígono se cerrará por orden de generar los puntos. 4) Polyline: se pueden generar líneas que distinguen los puntos de un lado y del otro. Haciendo click izquierdo para fijar las vértices de las líneas y click derecho para terminar. En este caso las figuras son abiertas. Cuando el área graficada fue seleccionada con reclangle, polygon o polyline se torna gris. En este momento al hacer click en el botón “submit” remueve todas las instancias de la gráfica excepto las que están grises (áreas de selección). Haciendo click en botón “clear” borra el área de selección no afectando la gráfica. Cuando cualquier punto ha sido removido de la gráfica el botón “submit” cambia a botón “reset”. Este botón deja sin efecto los actos previos de remover, y retorna al gráfico original con todos los puntos incluidos. Finalmente, haciendo click en el botón “save” permite guardar las instancias visibles en un archivo nuevo de extención. ARFF.