APRENDIZAJE AUTOMATIZADO
(MACHINE LEARNING)
1er Semestre 2008

Práctico 1: Arboles de decisión.

1. Explore el siguiente Tutorial en C4.5 (de la U. de Regina, Canada). Para instalar el C4.5 en su máquina, en el siguiente link hay archivos modificados del c4.5 (con instrucciones de instalación) que se necesitan para el trabajo.

2. Para comenzar a utilizar el programa, analice el ejemplo play-tennis que se discute en el libro. En la página de datasets están disponibles los datos correspondientes. Verifique el árbol resultante con el presentado en la página 53 del libro. Cambie el nivel de verbosity para poder controlar los valores de entropia e information-gain en los nodos con los cálculos que se muestran en las pag. 59 a 61 del libro.

3. Baje de la página de datasets los archivos correspondientes al problema Iris. Obtenga un árbol de decisión y un conjunto de reglas a partir de los datos. Analice los resultados.
Baje de la página de datasets los archivos correspondientes al problema Hypothyroid. Obtenga un árbol de decisión y un conjunto de reglas a partir de los datos. Analice los resultados.
Una de las virtudes de los árboles, por la que son frecuentemente usados en problemas médicos, es que son "entendibles" en sus decisiones. Esto se aplica a este problema?

4. Genere dos conjuntos de datos de entrenamiento correspondientes al problema de las espirales anidadas de la práctica 0, uno de longitud 200 y otro de 1000. Genere un conjunto de test de longitud 10000. Cree el archivo .names necesario para el problema. A partir de cada uno de los conjuntos de entrenamiento, desarrolle el árbol de decisión correspondiente y grafique las predicciones sobre el conjunto de test (archivo .prediction). Comente los resultados.

5. Dependencia con la longitud del conjunto de entrenamiento - Sobreajuste:
Genere datasets usando el programa desarrollado en el punto a) de la práctica 0 (vamos a llamar a estos datos "diagonal", y a los descriptos en el punto b) "paralelo"), con C = 0.75 y d = 2. Genere un único conjunto de test con n = 10000, y cree el archivo .names necesario. Genere 20 conjuntos de entrenamiento para cada uno de los siguientes valores de n: 100, 200, 300, 500, 1000.  Corra el c4.5 sobre estos datos, y con los resultados obtenidos genere dos gráficas, la primera con training error y test error (porcentuales), y la segunda con cantidad de nodos en el árbol final, todos como función de la longitud del conjunto de entrenamiento (utilice siempre el promedio de los 20 conjuntos de cada longitud dada). Repita todo el procedimiento usando como generador de datos el "paralelo". Discuta brevemente los resultados.

6. Resistencia al ruido:
Genere datasets con d = 5, n = 250 para el conjunto de entrenamiento y n = 10000 para el de test, variando el valor de C (overlapping de las clases) de 0.5 a 2.5 con incrementos de 0.5. Como en el punto 5, para cada valor dado de C cree 20 conjuntos distintos de entrenamiento, pero uno solo de test. Genere una gráfica del test-error porcentual en función de C para el problema "paralelo" y el "diagonal" (sólo los promedios de los 20 conjuntos para cada valor de C, los resultados de los dos problemas en la misma gráfica). Discuta los resultados.
6.1 Opcional:
Puede calcular para cada valor de C cuál es el mínimo error que se puede conseguir? Cómo se comparan dichos valores con los obtenidos con el c4.5? Obtenga una curva de error mínimo y agréguela a la gráfica anterior.
Hay por lo menos dos maneras de hacerlo: una es mediante una integral sobre las distribuciones que generan los datos; otra es imaginando cual es el clasificador ideal o de minimo error para este problema (a ese clasificador se lo llama "clasificador de Bayes") y midiendo directamente sobre un conjunto de test grande (10000 puntos para d=5) cuántos puntos son mal clasificados por ese clasificador ideal.

7. Dimensionalidad:
Genere datasets con C = 0.75, n = 250 para el conjunto de entrenamiento y n = 10000 para el de test, variando esta vez el valor de d según la siguiente lista: 2, 3, 5, 7, 10, 15, 30. Para cada valor de d cree 20 conjuntos distintos de entrenamiento, y uno solo de test. Genere una gráfica del test-error porcentual en función de d para el problema "paralelo" y el "diagonal" (los dos en la misma gráfica). Discuta los resultados.

8. Opcional:  Baje de la página de datasets los archivos correspondientes al problema XOR. Grafique las clases. Observando el problema, indique cual es el árbol más simple que clasifica correctamente todos los puntos. Aplique ahora el c4.5 a este problema, y explique el resultado obtenido.
 

No hay que entregar nada de los puntos 1 a 3. Del resto, solamente las gráficas y discusiones pedidas.