Ejemplo 10: Aprendizaje sensitivo al costo y gráfico ROC

Utilizamos los valores de confianza entregados por el aprendiz empleado en este proceso (predicciones flexibles en lugar de clasificaciones rígidas). Todos los aprendices de RapidMiner entregan estos valores de confianza, además de los valores pronosticados. Estos se pueden interpretar como una especie de garantía del aprendiz de que la predicción rígida (crisp) correspondiente es en realidad la etiqueta verdadera. En consecuencia, esto se denomina confianza. 

En muchos escenarios de clasificación binaria, un error de predicción equivocada no ocasiona los mismos costos para ambas clases. Un sistema de aprendizaje debe tomar en cuenta estos costos asimétricos. Mediante el uso de las confianzas de predicción podemos convertir todos los aprendices de clasificación en aprendices sensibles al costo. Por lo tanto, ajustamos el umbral de confianza para hacer algunas predicciones (generalmente 0,5). 

Un operador ThresholdFinder se puede utilizar para determinar el mejor umbral con respecto a los pesos de la clase. El siguiente operador ThresholdApplier mapea las predicciones flexibles (confianzas) a clasificaciones rígidas con respecto al valor del umbral determinado. El operador ThresholdFinder también puede producir una curva ROC para varios umbrales. Esta es una buena visualización de la performance de un esquema de aprendizaje. El proceso se detiene cada vez que se grafica la curva ROC hasta que se pulsa el botón Ok (5 veces). El parámetro show_ROC_plot determina si el gráfico ROC se debe mostrar para todos. 

Se puede encontrar información adicional sobre los operadores de validación utilizados en este proceso en el correspondiente directorio de ejemplos y, por supuesto, en la referencia de operadores del tutorial de RapidMiner. 

1. Agregar el operador Utility → Data Generation → Generate Data a la zona de trabajo. Cambiar el nombre del mismo a “GeneradorConjEjs”. Establecer los parámetros target function (función objetivo) en “random dots classification”, number examples (cantidad de ejemplos) en 500, number of attributes (cantidad de atributos) en 2, attributes lower bound (límite inferior de los atributos) en 0.0 y attributes upper bound (límite superior de los atributos) en 25.0. 

2. Agregar el operador Evaluation → Validation → X-Validation. Cambiar el nombre del mismo a “XVal” y el valor del parámetro number of validations (cantidad de validaciones) en 5. Conectar la salida del operador GeneradorConjEjs (Generate Data) a la entrada tra (training) de este operador y la salida ave (averagable, promediable) de este último al conector res (result) del panel.

 

 

3. Hacer doble clic sobre el operador XVal (X-Validation). En el panel Training del nivel inferior, agregar el siguiente operador: 

3.1 Modeling → Classification and Regression → Support Vector Modeling → Support Vector Machine (LibSVM). Cambiar el nombre del mismo a “AprendizLibSVM” y el valor del parámetro gamma a 1.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:

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

3.3 Modeling → Model Application → Thresholds → Find Threshold. Cambiar el nombre del mismo a “BuscadorUmbral” y tildar la opción show roc plot (mostrar gráfico ROC), además de la opción use example weights (utilizar pesos de las muestras), que está seleccionada por defecto. Conectar la salida lab (labelled data, datos etiquetados) del operador AplicadorModelo (Apply Model) a la entrada exa (example set) de este operador.

3.4 Modeling → Model Application → Thresholds → Apply Threshold. Cambiar el nombre del mismo a “AplicadorUmbral”. Conectar las salidas exa (example set, conjunto de ejemplos) y thr (threshold, umbral) del operador BuscadorUmbral (Find Threshold) a la entradas exa y thr de este operador, respectivamente. 

3.5 Evaluation → Performance Measurement → Performance. Conectar la salida exa (example set) del operador AplicarModelo a la entradas lab (labelled data) de este operador y la salida per de éste último al conector ave (averagable) del panel.

 

 

4. Ejecutar el proceso y observar el resultado.