Ejemplo 22: Optimización de Parámetros

Ejemplo 22: Optimización de Parámetros bernabeu_dario 9 Noviembre, 2010 - 12:59

A menudo los diferentes operadores tienen muchos parámetros y no está claro qué valores de los parámetros son los mejores para la tarea de aprendizaje en cuestión. El operador de optimización de parámetros ayuda a encontrar un conjunto óptimo de parámetros para los operadores utilizados.

La validación cruzada interna estima la performance para cada conjunto de parámetros. En este proceso se afinan 2 parámetros de la SVM. El resultado puede ser graficado en 3D (utilizando gnuplot) o en modo de
color.

1. Agregar el operador Repository Access → Retrieve a la zona de trabajo y localizar el archivo //Samples/data/Polynomial con el navegador del parámetro repository entry.

2. Process Control → Parameter → Optimize Parameters (Grid). Cambiar el nombre del mismo a “OptimizaciónParámetros”. Conectar la salida del operador Retrieve a la entradas inp (input 1) de este operador y la salida per de éste último al conector res del panel.

3. Agregar el operador Repository Access → Store a la zona de trabajo y la ruta //RapidMiner/results/Parameter-set en el parámetro repository entry. Cambiar el nombre del mismo a “OptimizaciónParámetros”. Conectar la salida par del operador Optimize Parameters (Grid) a la entradas inp (input) de este operador y la salida thr (through) de éste último a otro conector res del panel.

 

 

4. Hacer doble clic sobre el operador OptimizaciónParámetros (Optimize Parameters (Grid)). En el panel Optimization Process del nivel inferior mostrado, agregar los siguientes operadores:

4.1 Evaluation → Validation → X-Validation. Cambiar el nombre del mismo a “Validación” y el valor del parámetro sampling type (tipo de muestreo) a “shuffled sampling”. Conectar la entrada inp del panel a la entrada tra de este operador.

4.2 Utility → Logging → Log. Conectar la salida ave (averagable 1) del operador Validación (XValidation) a la entrada thr (through 1) de este operador y la salida (through 1) del mismo, al conector per (performance) del panel.

 

 

5. Hacer doble clic sobre el operador Validación (X-Validation). En el panel Training del nivel inferior, agregar el siguiente operador:

5.1 Modeling → Classification and Regression → Support Vector Modeling → Support Vector Machine (LibSVM). Cambiar el nombre del mismo a “Entrenamiento” y los valores de los parámetros svm type a “epsilon-SVR”, kernel type a “poly”, degree a 5 y C a 250.0. Conectar la entrada tra (training) y salida mod (model) de este operador a los puertos tra y mod del panel, respectivamente 

En el panel Testing de la derecha, agregar los siguientes operadores:

5.2 Modeling → Model Application → Apply Model. Cambiar el nombre del mismo a “Prueba” y conectar las entradas mod y tes del panel a las entradas mod y unl de este operador, respectivamente.

5.3 Evaluation → Performance Measurement → Classification and Regression → Performance (Regression). Cambiar el nombre del mismo a “Evaluación” y tildar las siguientes opciones (además root mean squared error, tildada por defecto): absolute error (error absoluto) y normalized absolute error (error absoluto normalizado). Conectar la salida lab del operador Prueba (Apply Model) a la entrada lab de este operador y la salida per de éste último al conector ave del panel.

 

 

6. Subir un nivel. Seleccionar el operador Log y editar la lista de parámetros para incluir los campos “C”, “grado” y “absoluto” de la siguiente manera:

 

 

7. Volver al nivel superior (Proceso Principal), seleccionar el operador OptimizaciónParámetros y utilizar el editor para seleccionar los parámetros C y degree del operador Entrenamiento (Support Vector Machine (LibSVM)):

 

 

8. Ejecutar el proceso. El resultado es el mejor conjunto de parámetros y la performance lograda con ese conjunto de parámetros.

9. Editar la lista de parámetros del operador ParameterOptimization para encontrar otro conjunto de parámetros.