top of page

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".

matriz51.PNG

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.

matriz7.PNG

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.

matriz52.PNG

Y obviamente, continuando con la ejecución del modelo, es lo que obtenemos (los registros desde el primero al décimo).

matriz53.PNG

Resultado del Operador Sample (Stratified)

Y como resultado del operador Sample (Stratified) obtenemos un muestreo estratificado de 5 registros del DataSet anterior.

matriz54.PNG

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.

matriz56.PNG

Si observamos el resultado podemos ver que solo nos quedaron 3 registros, eso es porque elegimos un radio del 30% (de 10 registros) .

matriz55.PNG

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".

matriz57.PNG

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.

matriz58.PNG

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.

matriz59.PNG

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.

matriz60.PNG

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". 

matriz43.PNG

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.

matriz44.PNG

Dentro del subproceso de Validación Cruzada se encuentra en el subproceso de entrenamiento el operador SVM (Support Vector Machine)

matriz45.PNG

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.

matriz46.PNG

En el resultado del operador Performance se obtiene una exactitud del 85.48%.

matriz47.PNG

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).

matriz48.PNG

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.

matriz49.PNG

Finalmente, la exactitud que conseguimos es de 88,71%.

matriz50.PNG

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

bottom of page