INTRODUCCION AL APRENDIZAJE AUTOMATIZADO
(MACHINE LEARNING)

Práctico 2: Clasificador Naive-Bayes

Trabajos a realizar:

a) Complete el programa nb_n.c (o haga uno propio) para aproximar p(a|C)  por una Gaussiana (a es un atributo y C una clase). El programa debe ajustar los dos parámetros de la función (la media y la desviación estándar) en forma independiente para cada clase y cada atributo.

b) Dimensionalidad: Genere datasets con C = 0.8, n = 250 para el conjunto de entrenamiento y n = 10000 para el de test, variando el valor de d según la siguiente lista: 2, 4, 8, 16, 32, 64. Para cada valor de d cree 3 conjuntos distintos de entrenamiento, y uno solo de test. Genere una gráfica del test-error en función de d para el problema "paralelo" y el "diagonal" (los dos en la misma gráfica). Discuta los resultados.

c) Límites del clasificador: Resuelva el problema de espirales-anidadas utilizando el Clasificador Bayesiano con Gaussianas. Realice una gráfica de la predicción sobre el conjunto de test. Explique por qué se obtienen esos resultados.

d) Modifique el programa nb_n.c de manera de aproximar ahora p(a|C) por la frecuencia del atributo a en la clase C, es decir, construyendo histogramas. La cantidad de bins que utilice para ello será un parámetro de entrada, que deberá ser optimizado usando un conjunto de validación. Entregue el programa modificado.
Revisite el problema de espirales-anidadas, usando conjuntos de validación adecuados. Haga un barrido conveniente sobre el número de bins utilizados. Grafique el error porcentual de clasificación en ajuste, validación y test en función de dicho número de bins (hay sobreajuste?). Elija la cantidad óptima de bins y grafique las clasificaciones en test. Compárelos con los resultados del punto c).

En todos los items del práctico discutir los puntos o resultados que considere conveniente, y entregar los códigos implementados.