METODOS MATEMATICOS EN CIENCIAS DE LA COMPUTACION 07-08
UNIVERSIDAD DEL PAIS VASCO - EUSKAL HERRIKO UNIBERTSITATEA, UPV-EHU

PRIMERA ENTREGA --- PRACTICA II : RECONOCIMIENTO DE PATRONES CON WEKA

Plazo de entrega (para todos los grupos y desdobles): 30 de abril (miércoles)
Tareas a realizar para los siguientes Temas:

===== Forma de entrega =====  No copiéis las preguntas: únicamente numerarlas y decir a qué tema pertenecen (lo indico entre corchetes). Sólo voy a puntuar lo que vosotros escribáis. Sólo copiar de la salida de Weka lo imprescindible: no copiéis nada que no entendáis o sea demasiado extenso (resumirlo). 
Hojas grapadas impresas con vuestro nombre, e-mail de contacto y grupo en la parte alta de la primera hoja.


 

  1. [Tema 4: Aprendizaje Automático - Minería de Datos] ------ En la siguiente página web de la Universidad de Stanford puedes encontrar una recopilación de términos básicos del aprendizaje automático y el reconocimiento de patrones en inglés (y la mayoría de entornos). Algunos de estos términos los vamos a utilizar a menudo a lo largo del curso.
    Describe brevemente en castellano los siguientes términos de esta página web, asociándolos a las definiciones vistas estos días en las clases teóricas y dando su término análogo en castellano (según lo visto en las clases teóricas):

    accuracy, attribute-feature, tipos de variable (categorical, continuous), classifier, confusion matrix, true positive rate, false positive rate, cross-validation, data cleaning, data mining, instance, knowledge discovery, machine learning, missing value, model, supervised learning.


     
  2. [Tema 4: Aprendizaje Automático - Minería de Datos] ------ Los documentos que puedes encontrar en el siguiente subdirectorio contienen artículos periodísticos divulgativos que recogen distintas aplicaciones-reflexiones actuales y punteras de la minería de datos. Para cada uno de ellos, responde a las siguientes preguntas:

  3. [Tema 4: Bioinformatics - Aprendizaje Automático - Minería de Datos] ------- En base al empuje del proyecto Genoma Humano se desarrollaron una gran cantidad de novedosas técnicas de recogida masiva de datos biológicos acerca de distintas moléculas, fundamentales para la vida: DNA, RNA, proteínas, ... Donde las técnicas de medición permitían antes examinar, por ejemplo docenas de genes tras una buena cantidad de horas en el laboratorio, con estas nuevas técnicas es posible examinar los niveles de expresión de miles de moléculas concretas en tiempos mucho más acortados.
    Todo ello ha generado una nueva disciplina conocida como "Bioinformática" (profesión con mayor futuro en EEUU según estudios recientes), y que se fundamenta en el uso de técnicas de inteligencia artificial para tratar de dar respuesta a preguntas médicas y biológicas y descubrir nuevo conocimiento ("knowledge"), utilizando como base los datos generados por medio de este tipo de técnicas para los distintos tipos de "moléculas de la vida" (genes, proteínas, SNPs, ADN, metabolitos, etc.).
    Quizás la más conocida y establecida de estas novedosas técnicas es la de los microarrays (o chips) de DNA, que mide el nivel de expresión de miles de genes de un tejido concreto: miles de aplicaciones-artículos han aparecido en los últimos 4-5 años tratando de distinguir qué genes concretos son los que están sobrexpresados/subexpresados en los tejidos enfermos (p.ej., tumor) respecto a tejidos sanos.

    En el siguiente artículo tienes una amena introducción acerca de esta tecnología de recogida de datos.
    En la siguiente noticia se habla de una técnica similar, que en vez de centrarse en los genes, se centra en nucleótidos (A,C,G,T) concretos del Genoma.
    Tras leer los artículos anteriores, comenta estas cuestiones:
     

    Por si fuera de tu interés, en la siguiente dirección del EBI (European Bioinformatics Institute), tienes una amena introducción a conceptos básicos de biología: genes, DNA, proteínas, células, etc.   Por si tuvieras más inquietudes en este línea, existen repositorios públicos donde investigadores de distintos campos hacen públicas las mediciones realizadas en sus experimentos con microarrays de DNA, para que otros investigadores puedan testar sus métodos computacionales y de reconocimiento de patrones: Stanford Microarray Database, EBI-ArrayExpress.


    ==== Enlace a las bases de datos en formato WEKA con las que puedes trabajar para toda la práctica ====
     

  4. [Tema 4: Aprendizaje Automático - Bases de datos] ------ En el siguiente directorio os ubico las bases de datos con las que haréis los distintos ejercicios con el software WEKA para todo el curso, y que ya están en el formato *.arff ("attribute relation format file") exigido por este software. Aunque podrás cambiar de base de datos de trabajo durante el curso y a veces también os lo pediré, comprender el problema con el que estás tratando te ayudará, y os recomiendo tener en mente ("dominadas") 2-3 bases de datos que comprendáis su naturaleza y con las que realizaréis las tareas.

    Para familiarizarte con algunas bases de datos, escoge 2 de entre las que os propongo, y explica brevemente para cada una de ellas:

        Estas explicaciones las puedes encontrar bien en la página web de la colección de problemas UCI (una vez de que pinchas en una base de datos -- "Dataset Description": ficheros de extensión *.names), o bien en la misma cabecera del fichero de datos WEKA (*.arff). Originalmente todas estas bases de datos las depositan los investigadores en la colección de problemas "benchmark" UCI (University of California - Irvine).


     

  5. [Tema 5: Clasificadores k-NN] ------- WEKA indexa a los clasificadores k-NN en la familia "Lazy". El método IBk implementa un clasificador k-NN.
    ¿Por qué crees que WEKA engloba dentro de la familia llamada "Lazy" los clasificadores referentes al algoritmo del vecino más próximo? ¿Qué significa "Lazy" en inglés? ¿Realmente "trabaja" (aprende "algo") este clasificador antes de que le pidamos que clasifique un nuevo caso que nos llega y del que desconocemos el valor de su clase; ha "aprendido"-"modelado" alguna estructura explícita de clasificación...?

     

  6. [Tema 5: Clasificadores k-NN] ------- Explica los siguientes parámetros del clasificador "IBK": KNN, "distanceWeighting", "noNormalization".
    Explica cada uno de los posibles valores del parámetro "distanceWeighting": "NoDistanceWeighting", "Weight by 1/distance", "Weight by 1-distance".
    (para ver los parámetros de un método: pinchar en el nombre en negrita del método, y luego el botón "More")
     

  7. [Tema 5: Clasificadores k-NN / Preprocesado de datos en general] ------- Preprocesado de datos: antes de construir cualquier modelo multivariado de clasificación, es imprescindible realizar un preprocesado (tratamiento) de los datos originales (en crudo, "raw data"). Aunque no se haya visto en las clases teóricas, la discretización es una cuestión clave en el Reconocimiento de Patrones. Muchos clasificadores no pueden trabajar con variables con valores continuos, y deben categorizarse-discretizarse sus valores. Los clasificadores k-NN son capaces de trabajar con ambos tipos de variables:
     

    Escoge una base de datos en formato arff de WEKA que tenga todas (o algunas) variables predictoras con valores continuos ("Real", en Weka).
    Vamos a trabajar con la técnica de filtrado ("Filter") - preprocesado  "Discretize", que se ubica en la primera ventana de trabajo ("Preprocess") del interfaz de WEKA, dentro de las técnicas de filtrado-"Filter" no-supervisadas respecto a las variables ("attributes") del problema. Se considera una técnica "no-supervisada" porque no hace uso de la variable clase del problema para realizar la discretización.


    Para aplicar la discretización, primero hay que seleccionarla desde "Filter"--"Choose", y una vez seleccionado y fijado sus parámetros, botón de "Apply" para que realmente se aplique sobre los datos.
     Tras aplicar la discretización y fijarte en su efecto en los datos responde brevemente (sigue en la primera ventana de "Preprocess", y fíjate en los gráficos de frecuencias de las variables en la parte baja-derecha de la ventana):
     


     

  8. [Tema 5: Clasificadores k-NN / Preprocesado de datos en general] ------- Otra función de preprocesado-filtrado no-supervisado de WEKA respecto a las variables del dominio es "Normalize". Escoge una base de datos que tenga todas (o algunas) variables predictoras con valores continuos, y estudia el efecto que produce sobre los valores de dichas variables continuas aplicar esta función. Comenta brevemente este efecto sobre los valores de las variables "normalizadas". ¿Crees que por defecto el clasificador k-NN aplica este función de filtrado a todas sus variables continuas en una misma base de datos? ¿Por qué es necesario?


     
  9. [Tema 5: "Recommender systems" / "Collaborative Filtering" / Clasificadores k-NN] ------- Íntimamente relacionado con la forma de trabajar del clasificador K-NN, es de reciente aparición en el campo del aprendizaje automático el problema denominado "Collaborative Filtering" ("Filtrar Colaborando", en un mal castellano): también son conocidos como "Recommender Systems".  Empieza por su definición en la Wikipedia (con leer el primer párrafo, su definición, creo que es suficiente).

    Su idea principal se basa en, para un ámbito concreto, buscar usuarios con gustos parecidos a los nuestros, para así recomendarnos "actividades" que a ellos les han gustado y que nosotros todavía no hemos probado. Un primer ejemplo es el de las películas. Pensemos que diésemos distintos usuarios puntuaciones a las películas que vemos. Ya que uno no ve todas las películas de la cartelera, la idea básica consiste en vistas las puntuaciones que hemos dado a las películas que uno ha visto, encontrar usuarios con "gustos parecidos" a los nuestros, para así recomendarnos películas que todavía no hemos visto.

    Un segundo ejemplo de reciente aparición es last.fm, en el campo de la música. Impresionante. Ha sido propuesta como candidata a "web del año 2007". El usuario evalúa cada canción que le "lanza-propone" last.fm ("I like", "I do not like"). En base a ello aprende un perfil del usuario; busca luego usuarios con gustos parecidos; nos "lanza-propone" canciones que les han gustado a éstos y que todavía no hemos escuchado.

    La forma de trabajar de los algoritmos de "Recommender Systems" (buscar "vecinos" perecidos, "neighbours"...) no difiere mucho de la idea básica de computar los vecinos cercanos del K-NN. Brevemente:
    • Comenta brevemente los textos leídos, da tu opinión, la utilidad que le ves a esta técnica, etc.
    • Da algún ejemplo de dominio de Internet que ya aplique técnicas de éstas (los tienes muy muy cerca...)
    • Comenta algún posible otro campo donde veas se pueda aplicar

       
  10. [Tema 6: Evaluación de Modelos de Clasificación Supervisada / Comparativa de clasificadores k-NN] =============  Esta pregunta la podréis hacer tras lo que explique en el segundo laboratorio obligatorio tras semana santa.

    Tal y como se ha explicado en los laboratorios, utilizando distintas semillas de aleatorización en WEKA, realiza las siguientes comparativas estadísticas mediante un test estadístico (no paramétrico) de los porcentajes de acierto estimados en base a 5 ejecuciones del método de evaluación del porcentaje de bien clasificados H (2/3 del fichero para entrenar, 1/3 para testear), comentando y analizando los resultados de dicha comparativa, y viendo si se puede hablar de alguna configuración ganadora/perdedora:
     

    Para realizar la comparativa puedes utilizar el software SPSS disponible en los ordenadores de la Facultad: es cómo os lo enseñaré en los laboratorios. Aún así hay abundante software libre en la red, de uso muy sencillo, que realiza las mismas comparativas: uno de ellos, WINKS. Una copia de evaluación del software SPSS también la puedes conseguir en su web.

    Ten en cuenta la siguiente explicación intuitiva, en la que se ahondará en la sesión de laboratorio correspondiente, para entender en cualquier comparativa estadística que realices el concepto de significatividad asintótica, clave para entender el grado de similitud/diferencia entre las muestras de números comparadas:

    “la significatividad asintótica de un test estadístico es una probabilidad (valor entre 0 y 1) que viene a reflejar el peso-influencia del azar para explicar las diferencias entre las dos muestras comparadas. En estadística viene a aplicarse clásicamente un umbral del 5% (en probabilidad , 0.05) para argumentar si son las diferencias entre las dos muestras comparadas estadísticamente significativas o no. Partiendo de que la hipótesis nula testada es que ambas muestras parten de una misma distribución (son equivalentes), la idea intuitiva es que una influencia baja del azar viene a denotar una naturaleza estadísticamente distinta de las dos muestras comparadas (hay algo más que azar que explique las diferencias entre las dos muestras...)”

    “la significatividad asintótica de un test estadístico también puede interpretarse como lo que se parecen las dos muestras de datos comparadas". El grado de parecido, similitud, de las dos muestras de números comparadas. Grados de similaridad menores al 5% se consideran como una diferencia estadísticamente significativa (remarcando el nivel concreto de significatividad). Si las dos muestras de números fuesen idénticas, la significatividad asintótica del test sería del 100%.

    La significatividad asintótica también se puede ver como el peso del azar en la explicación de las diferencias que hay entre las dos muestras de números. Esto es, si el peso del azar es bajo (menor del 5%) en la explicación de dichas diferencias: es que hay algo más que azar, las muestras son diferentes por naturaleza...

     



     

  11. [Tema 8: Árboles de Clasificación] -------- Para una base de datos en formato WEKA, construye con este software los siguientes dos árboles de clasificación con el método C4.5 (en WEKA lo implementa el procedimiento J48: familia "Trees" de Weka):
     

    Para poder hacer ésto, descubre que hay uno de los parámetros de este método J48 de WEKA que activa/desactiva la "post-poda".
    Para hacer esta tarea escoge una base de datos que no tenga "demasiados" casos y no genere un árbol "demasiado" grande. Fíjate en la versión gráfica (propiedades de la ejecución realizada: con el botón derecho en "Result list" de Weka) de ambos árboles (no la versión en formato ASCII del "Classifier output" de WEKA): es lo de menos que muestres el árbol si es demasiado grande o no se diferencian apenas los nodos... Comenta brevemente:
     


     

  12. [Tema 9: Inducción de Reglas] -------- Para una base de datos en formato WEKA, construye con este software las reglas correspondientes al clasificador RIPPER visto en clase, y comenta brevemente:
  13. [Tema 8: Árboles de Clasificación --- Pregunta opcional --- Para mejorar nota] ------------ El clasificador "UserClassifier" tiene muchas opciones, no sencillas de usar de primeras, pero está plenamente basado en la intuición y en que tú vayas construyendo sobre gráficas de 2-D tu propio árbol de decisión. Fíjate primeramente en la gráfica de 2-D que muestra y las regiones que se pueden delimitar sobre él mediante rectángulos, y en el árbol binario que se va construyendo en base a las regiones por ti delimitadas. Trata de descubrir las principales líneas de este clasificador, y coméntalas, utilizando para ello una base de datos sencilla como "Iris". Trata de descubrir qué enlace hay entre las ventanas "Tree Visualizer" y "Data Visualizer", así como las acciones que producen sobre el árbol las fronteras-regiones que delimitas en el "Data Visualizer". Comenta (en general) qué te ha parecido este clasificador, así como las ventajas/inconvenientes que le ves.