Selección en RapidMiner
Existen varios operadores para realizar la Fase de Selección. En principio analizaremos dos de los principales operadores a nivel de filas y registros y después analizaremos operadores muy interesantes para realizar la selección a nivel de atributos.
Operador Sample (Stratified)
Este operador crea una muestra estratificada del DataSet de origen. El muestreo estratificado crea subconjuntos aleatorios y asegura que la distribución de clases en los subconjuntos sea la misma que en todo el DataSet. Este operador no se puede aplicar en conjuntos de datos sin una etiqueta o con una etiqueta numérica. El tamaño de la muestra se puede especificar de forma absoluta y relativa.
A continuación analizaremos el ejemplo "Sample (Stratified)" provisto por RM, para ello, debemos ir a:
Operators ==> Sample (Stratified) ==> Help ==> Jump to Tutorial ==> "Stratified Sampling of the Golf data set".
Al hacer esto nos aparecerá el siguiente ejemplo, en donde podemos observar que el atributo sample se ha establecido en absoluto y el tamaño de muestras en 5, es decir que consideraremos un número fijo de 5 muestras para nuestro ejemplo.
También se ha agregado un punto de control en el Retrieve de Golf para mayor claridad en la explicación.
Análisis de Resultados
Primer Punto de Control: Retrieve del DataSet Golf
Al correr el modelo podemos observar en el primer punto de control después del Retrieve del DataSet Golf que el mismo cuenta con 14 registros.
Segundo Punto de Control: Filter Example Range
Este operador selecciona qué ejemplos (es decir, filas) del DataSet deben conservarse y qué ejemplos deben eliminarse. Los ejemplos dentro del rango de índice especificado se mantienen, los ejemplos restantes se eliminan.
En nuestro caso mantenemos las filas desde la número 1 a la 10.
Y obviamente, continuando con la ejecución del modelo, es lo que obtenemos (los registros desde el primero al décimo).
Resultado del Operador Sample (Stratified)
Y como resultado del operador Sample (Stratified) obtenemos un muestreo estratificado de 5 registros del DataSet anterior.
Ya conocemos en la explicación teórica las ventajas del muestreo estratificado, pero en la práctica puede ser muy interesante su aplicación y en algunos casos hasta obligatorio. No olvidemos que RM pone una limitación de trabajo de 10.000 registros y nuestros DataSet pueden, en muchos casos superar ese número.
Resultado del Operador Sample (Stratified) pero modificando el parámetro sample a relative
Solo a modo de ejemplo, cambiemos el parámetro sample de absolute a relative y definamos un ratio de 0.3.
Si observamos el resultado podemos ver que solo nos quedaron 3 registros, eso es porque elegimos un radio del 30% (de 10 registros) .
Operador Filter Examples
Este operador selecciona qué ejemplos de un DataSet de origen se mantienen y cuales ejemplos se eliminan, según una o más condiciones especificadas.
A continuación analizaremos el ejemplo "Filter Examples" provisto por RM, para ello, debemos ir a:
Operators ==> Filter Examples ==> Help ==> Jump to Tutorial ==> "Filter Examples using custom filters".
Al hacer esto nos aparecerá el ejemplo de arriba, en donde podemos si hacemos clic en Add Filters podemos observar que se han establecido las siguientes condiciones de filtrado.
Clima igual a lluvioso y temperatura menor que 80 grados.
Análisis de Resultados del ejercicio de filter examples
Data Set que se mantiene
Es el DataSet resultante con los filtros seleccionados, en nuestro caso son 5 los registros que cumplen que el clima sea igual a lluvioso y la temperatura menor que 80 grados.
DataSet que será eliminado
Es el DataSet que será eliminado porque no cumple con las condiciones de filtrado arriba mencionadas.
Recordemos que el DataSet original es de 14 registros, el DataSet resultante u obtenido del filtrado es de 5 registros; en consecuencia el DataSet que será eliminado es el que se muestra a la derecha y que contiene 9 registros.
Video recomendado: Tutoriales RM: Preparación de Datos I. Operaciones sobre Filas
Operador Optimize Selection
Este operador Optimize Selection selecciona los atributos más relevantes del DataSet dado.
A continuación realizaremos el siguiente ejercicio. Introduciremos los siguientes operadores "Retrieve Sonar", en donde recuperaremos los 60 atributos del DataSet Sonar y el operador "Optimize Selection".
En el parámetro selection direction está seleccionado forward que corresponde a "Forward selection" que crea una población inicial con n individuos donde n es el número de atributos. Cada individuo utilizará exactamente una de las características. Evalúe los conjuntos de atributos y seleccione solo los mejores k.
Dentro del proceso "Optimize Selection" se encuentra el subproceso de Validación Cruzada.
Dentro del subproceso de Validación Cruzada se encuentra en el subproceso de entrenamiento el operador SVM (Support Vector Machine)
SVM se basa en la implementación Java interna de vectores de soporte mySVM de Stefan Rueping.
Se puede utilizar tanto para la regresión como para la clasificación y proporciona un algoritmo rápido y buenos resultados para muchas tareas de aprendizaje. mySVM trabaja con funciones de pérdida lineales o cuadráticas e incluso asimétricas.
Admite varios tipos de kernel, punto, radial, polinomial, neural, anova, epachnenikov, combinación gaussiana y multicuádrica.
Resultados del Ejercicio Optimize Selection
Al correr el modelo en el primer punto de control se observa el DataSet original "Sonar" con los 60 atributos.
En el resultado del operador Performance se obtiene una exactitud del 85.48%.
Pero lo más importante es el DataSet resultante (el cual si queremos lo podríamos guardar en otro DataSet).
Aquí observamos que la cantidad de registros (208) se sigue manteniendo, pero de los 60 atributos solo se eligieron los 4 más relevantes (y se eliminaron los otros 56).
Solamente a modo de prueba cambiemos el parámetro forward de "Optimize Selection" por backward, el cual corresponde a Backward elimination, el cual nos indica que comience con un conjunto de atributos que utiliza todas las características. Evalúe todos los conjuntos de atributos y seleccione el mejor k.
En este caso observamos que se ha eliminado solo un atributo de los 60 del DataSet original.
Finalmente, la exactitud que conseguimos es de 88,71%.
La elección de seleccionar el parámetro forward o backward depende de varios aspectos: el tiempo de aprendizaje, la exactitud lograda, la cantidad de parámetros eliminados, etc.
En este caso en particular, la mejora de la exactitud es levemente superior con backward, pero la cantidad de parámetros eliminados es mucho mayor con forward; por lo que la elección de este autor sería forward.
Optimize Selection (Brute Force): selecciona los atributos más relevantes del conjunto dado al intentar todas las combinaciones posibles de selecciones de atributos. Al realizar todas las combinaciones el proceso es exponencial, por lo que este operador es recomendable cuando la cantidad de atributos a analizar es pequeña o menor a 10, de lo contrario el proceso puede llevar un par de años :).
Optimize Selection (Evolutionary): selecciona los atributos más relevantes del conjunto de ejemplos dado utilizando para ellos la teoría de algoritmo genético para la selección de características. Puede ser muy eficiente para algunos casos.
Video recomendado: Tutoriales RapidMiner: Selección de Variables