Tema:
Sesión de ejercicios 4.
Docente:
Andrés Auquilla.
Integrantes:
Mateo Reinoso, Mateo Flores.
Ejercicio 1.2
1. Modifique los parámetros 𝐶 y gamma del código anterior. Cree combinaciones de valores
altos y bajos para 𝐶 (0.001≤𝐶≤10000) y 𝑔𝑎𝑚𝑚𝑎 (0.001≤𝑔𝑎𝑚𝑚𝑎≤100) y analice los resultados.
C es que tanto nos preocupamos por los puntos mal clasificados, hay que tener cuidado
porque un C muy grande realizará overfitting ya que se preocupara tanto por los errores mal
clasificados que se ajustara y terminará con la superficie de decisión demasiado pequeña y
específica, por otro lado si es muy pequeño generará underfitting porque no tomara en cuenta
cuando muchos errores están dentro de la superficie de decisión. Así que el C es el margen que
hay en la superficie de decisión.
Gamma nos dará la curvatura dentro de las superficies de decisión, así que si tenemos un
gama muy grande la superficie de decisión es menor.
2. ¿Existe alguna combinación óptima para este problema? ¿Existen combinaciones que
provoquen overfitting?
Cuando tenemos un C muy pequeño como 0.1 y un gama relativamente grande como 10
entonces tenemos overfitting. Cuando tenemos un C grande como 100 y un gama grande como
100 entonces también tenemos overfitting. Por último cuando tenemos un C muy grande 10000 y
un gama pequeña como 0.01 también tenemos overfitting.
Con un C grande como de 100 y un gama pequeña como de 0.001 sería una combinación
óptima de este problema.
Ejercicio 2.2
1. Analice los resultados
●
Poly
Figura 1. Resultados ejecución código kernel: Poly.
Cuando tenemos el C grande o mediano y el gamma pequeño obtenemos overfitting porque la
gráfica se ajusta demasiado a los parámetros generando curvas excesivas, cuando C es normal y gama muy
pequeño obtenemos underfitting ya que las regiones son demasiado erradas,por otro lado en el automático
y el C grande y gamma muy pequeño encontramos la solución óptima.
●
Rbf
Figura 2. Resultados ejecución código kernel: Rbf.
Cuando tenemos un C grande o mediano y un gamma pequeño el programa genera overfitting ya
que las áreas de decisión están demasiado ajustadas generando incluso islas lo cual es un claro indicador de
overfitting, por otro lado con automatico, C medio o grande y un gama muy pequeño el programa
encuentra la solución óptima.
●
Sigmoid
Figura 3. Resultados ejecución código kernel: Sigmond.
Cuando los hiper-parámetros son automáticos o tenemos un c alto o medio y gama medio los
resultados de los modelos generan underfitting, porque en estos casos no se toman en cuenta las tres
opciones solo clasificamos de una o dos lo que es claramente el resultado de overfitting. Por otro lado,
cuando C es grande o mediano y gama pequeña llegamos a soluciones óptimas del problema.
●
Linear
Figura 4. Resultados ejecución código kernel: Linear
En este caso todas las combinaciones posibles producen soluciones óptimas que tranquilamente
podrían ser usadas sin embargo cuando C es mediano y gamma pequeño obtenemos la mejor solución del
problema contra el resto de soluciones óptimas.
2. ¿Existe alguna combinación de hyper-parámetros que clasifique correctamente al problema?
Existe un caso que funciona bien generalmente que sería valores de C=10 y gamma=0.1,
sin embargo todos presentan un comportamiento lineal. Ahora independiente mente hay valores
que funcionan mejor para cada kernel por ejemplo
3. ¿Alguna combinación produce visiblemente overfitting?
Si utilizamos valores de C altos, gamma altos y C bajos, gamma bajos en sigmoid se da el
peor caso de overfitting. Igualmente para el kernel poly y rbf con C=100 y gamma=0.1 hay un
claro overfitting pues se forman islas.
Ejercicio 2.3 - Determine los valores de hyper-parámetros
1. Seleccione manualmente (prueba/error) valores de hyper-parámetros que le provean
resultados satisfactorios para este problema. Muestre la matriz de confusión de los
resultados.
Figura 5. Código y resultados ejercicio 2.3.
Seleccionando el kernel rbf los mejores resultados se obtuvieron con los pares C=100,
gamma=0.01 y C=10, gamma=0.1. En los resultados mostrados por las matrices de confusión
podemos observar que los resultados de son los mismos.
Ejercicio 2.4 - Tuneando parámetros automáticamente:
1. Ejecutar el código a continuación y compare los hiper-parámetros seleccionados en el
ejercicio 2.3 y 2.4
Figura 6. Resultados ejecución código ejercicio 2.3.
El valor del hiper-parámetro C es el mismo que en el ejercicio 2.3 sin embargo gamma varía, en
este ejercicio es 0.01 y en el ejercicio anterior es 0.1, además de que se encontró otro par de parámetros
que dan el mismo resultado los cuales son C=100 y gamma=0.01. Con los dos pares de hiper-parámetros
del ejercicio anterior que se obtuvieron manualmente se llegó a mejores resultados que con los parámetros
encontrados automáticamente en este ejercicio ya que clasifica erróneamente 1 ejemplo más que en el
ejercicio 2.3.
Ejercicio 2.5
1. Implemente un grid-search para el problema; pero antes, transforme el vector de
características para que cada variable tenga un rango entre 0 y 1. Para ello, averigue el uso
de la función MinMaxScaler del paquete sklearn.preprocessing
¿Los resultados varían?
Figura 7. Implementación grid-search.
Como podemos ver el gamma aumenta y el C disminuye lo que es causa del cambio de las
dimensiones es decir que ahora al reducir el espacio en el que se trabajara a una dimensión sumamente más
pequeña el margen debe ser más pequeño por lo que C disminuye y por lo mismo la curvatura dentro de las
áreas de decisión deben ser más grandes por lo que gamma debe crecer. En los resultados del modelo
obtenemos que en la segunda categoría mejoró notablemente, clasifica mucho mejor que antes ya que
clasifica correctamente casi el doble de ejemplos más por lo que podemos concluir que en este problema
una característica que no sirve para discriminar la clase número dos dominaba el problema y si bien
funcionaba con la clase uno y tres en la clase dos generaba muchos errores por lo que el preprocesamiento
de datos y cambio de dimensión fue una decisión acertada.