Ejemplo 11: Aprendizaje de Costos Asimétricos
Ejemplo 11: Aprendizaje de Costos Asimétricos bernabeu_dario 26 Octubre, 2010 - 12:16Este proceso muestra cómo se puede obtener un umbral de un clasificador soft (flexible) y aplicarlo a un conjunto independiente de prueba.
El aprendiz utilizado en este proceso realiza predicciones flexibles (soft) en lugar de clasificaciones rígidas (crisp). Las confianzas de predicción entregadas por todos los aprendices de RapidMiner que pueden manejar etiquetas nominales (clasificación) serán utilizadas como predicciones flexibles.
El operador ThresholdFinder se utiliza para determinar el mejor umbral con respecto a los pesos de la clase. En este caso, una clasificación errónea de la primera clase (negativo) tendrá un costo 5 veces mayor que el otro error.
Observe que se debe ejecutar un operador ModelApplier sobre el conjunto de prueba antes de que se pueda encontrar un umbral. Debido a que este modelo debe ser aplicado de nuevo más tarde, el aplicador del modelo guarda el modelo de entrada.
El IOConsumer asegura que la predicción se realiza sobre el conjunto de datos correcto.
Los últimos pasos aplican el modelo y el umbral sobre el conjunto de datos en cuestión.
1. Agregar el operador Utility → Data Generation → Generate Data a la zona de trabajo. Cambiar el nombre del mismo a “GeneradorConjEntren” y los parámetros target function a “polynomial classification” y number of attributes a 20.
2. Agregar el operador Modeling → Classification and Regression → Lazy Modeling → k-NN. Cambiar el nombre del mismo a “VecinosMásCercanos” y el parámetro k a 10. Conectar la salida del operador GeneradorConjEntren (Generate Data) a la entrada tra (training set) de este operador.
3. Agregar otro operador Utility → Data Generation → Generate Data. Cambiar el nombre del mismo a “GeneradorConjPrueba” y los valores de los parámetros target function a “polynomial classification” y number of attributes en 20.
4. Agregar el operador Modeling → Model Application → Apply Model y cambiar el nombre del mismo a “PruebaModelo”. Conectar la salida mod del operador VecinosMásCercanos (k-NN) y la salida del operador GeneradorConjPrueba (Generate Data) a las entradas mod (model) y unl (unlabelled data) de este operador, respectivamente.
5. Agregar el operador Modeling → Model Application → Thresholds → Find Threshold. Cambiar el nombre del mismo a “BuscadorUmbral” y el parámetro misclassification costs second a 2.0. Conectar la salida lab (labelled data) del operador PruebaModelo (Apply Model) a la entrada exa (example set) de este operador.
6. Agregar otro operador Utility → Data Generation → Generate Data. Cambiar el nombre del mismo a “GeneradorConjAplic” y los valores de los parámetros target function a “polynomial classification”, number examples a 200 y number of attributes a 20.
7. Agregar otro operador Modeling → Model Application → Apply Model y cambiar el nombre del mismo a “AplicaciónModelo”. Conectar la salida mod del operador PruebaModelo y la salida del operador GeneradorConjAplic (Generate Data) a las entradas mod y unl de este operador, respectivamente.
8. Agregar el operador Modeling → Model Application → Thresholds → Apply Threshold y cambiar el nombre del mismo a “AplicadorUmbral”. Conectar la salida thr del operador BuscadorUmbral (Find Threshold) y la salida lab del operador AplicaciónModelo (Apply Model) a la entradas y thr y exa de este operador, respectivamente.
9. Agregar el operador Evaluation → Performance Measurement → Performance. Conectar la salida exa (example set) del operador AplicadorUmbral (Apply Threshold) a la entradas lab de este operador y la salida per de éste último al conector res del panel.
PerformanceVector: accuracy: 74.00% ConfusionMatrix: True: negative positive negative: 86 35 positive: 17 62 precision: 78.48% (positive class: positive) ConfusionMatrix: True: negative positive negative: 86 35 positive: 17 62 recall: 63.92% (positive class: positive) ConfusionMatrix: True: negative positive negative: 86 35 positive: 17 62 AUC (optimistic): 0.843 (positive class: positive) AUC: 0.797 (positive class: positive) AUC (pessimistic): 0.750 (positive class: positive) |