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.