Predicciones Multiclase mediante Regresión Logística, Mínimos Cuadrados, 1-vs-all & Winner-takes-all.

Introducción a la Problemática

Una gran cantidad de los algoritmos de Aprendizaje Estadístico( tales como SVM, ANN y GLM ) son capaces de operar únicamente bajo problemáticas de clasificación biclase. No obstante, en la práctica, es común encontrarse con poblaciones de datos en los que coexisten tres o más etiquetas.

Un repositorio de datos multiclase es el iris dataset, un conjunto de información introducido por Ronald Fisher en 1936 y cuyos rotulos son: setosa, virginica y versicolor. Y aún y cuando describir el dataset no se encuentra dentro del alcance de este post, este texto describe los pasos que se siguieron para predecir las etiquetas de las observaciones pertenecientes a este banco de datos mediante el increible paquete base de R, un Modelo de Regresión Logística y los enfoques 1-vs-rest y Winner-takes-all.

El Código

Como en cualquier proyecto relacionado al Aprendizaje Estadístico, uno de los primeros pasos( a parte claro de realizar un análisis numerico ) es el de aleatorizar las observaciones que se encuentran bajo estudio. Así, la función f_aleatorizarDataset desorganiza un conjunto de registros que se le den como argumento.

Posterior al desordenamiento de las observaciones, los registros son asignados ya sea a un subconjunto designado para entrenar o validar un modelo. De este modo el método f_particionarDataset toma un repositorio de datos y un porcentaje de particionamiento para dividir en los subconjuntos ya mencionados. Más aún, esta función utiliza al método f_generarComponentes para concebir la matriz X ( que contiene los atributos del dataset ) y el vector Y ( que a su vez guarda la clase de los registros ) para las muestras de entrenamiento y validación.

Teniendo el conjunto de entrenamiento( junto con sus componentes ) es posible obtener los coeficientes β mediante el método de Mínimos Cuadrados. La función f_generarModelo tiene como objetivo lo mismo.  Más aún, esta función se encarga de llevar a cabo el esquema 1-vs-rest y generar tres modelos de predicción, uno por cada clase.

Más aún dicha función utiliza a los métodos f_predicciónLineal y f_predicciónLogistica para computar( valga la redudancia ) los valores líneales y logísticos del modelo respectivamente. Cabe destacar que estas funciones también son utilizadas por el método f_validarModelo. Por su parte el método f_validarModelo toma los coeficientes obtenidos para cada clase a traves de f_generarModelo y realiza tres predicciones, una para cada etiqueta pertenciente al conjunto de datos iris.

Por su parte, el método f_computarGanador hace uso de la función f_consultarPredicciones y compara las probabilidades pronosticadas por cada uno de los tres clasificadores y determina la etiqueta de una observación basado en el pronóstico de mayor probabilidad. Dicho de otra forma, esta función aplica el paradigma Winner-takes all.

El método f_generarMatrizConf, genera una Matriz de Confusión la cual nos hará saber cual fue el rendimiento de nuestro Modelo Líneal.

Finalmente, siguiendo el código completo, el cual es posible descargarlo desde aquí, se puede apreciar que el modelo acertó a 31 de las 38 observaciones, lo cual advierte que este modelo posee una exactud aproximademente del 82%. La siguiente gráfica hace un intento por revisar cuales fueron aquellos registros en los cuales las predicciones del modelo concebido fueron erróneas.

aqui

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s