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.
[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:
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 ====
[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).
[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...?
[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")
[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):
- 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
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...
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: