El componente Multiclass Classification Evaluation evalúa el rendimiento de un modelo en tareas de clasificación con más de dos clases. Calcula métricas como exactitud, exhaustividad, puntuación F1 y matriz de confusión para cuantificar la precisión del modelo en cada clase. La matriz de confusión muestra la relación entre las etiquetas predichas y las reales, mientras que otras métricas detallan la precisión por clase. Esta información le permite comprender el rendimiento del modelo en clases individuales y optimizarlo.
Configuración del componente
Método 1: Consola
En Designer, agregue el componente Multiclass Classification Evaluation a su flujo de trabajo y configure sus parámetros en el panel derecho.
|
Tipo de parámetro |
Parámetro |
Descripción |
|
Fields Setting |
Original Classification Result Column |
Seleccione la columna que contiene las etiquetas reales. El número de clases no puede exceder 1,000. |
|
Predicted Classification Result Column |
Seleccione la columna que contiene las etiquetas predichas. De forma predeterminada, esta columna se llama |
|
|
Advanced Options |
Seleccione la casilla Advanced Options para habilitar el parámetro Prediction Result Probability Column. |
|
|
Prediction Result Probability Column |
Especifica la columna para calcular la pérdida logarítmica del modelo. Este parámetro solo es válido para modelos de bosque aleatorio y puede causar errores si se usa con otros modelos. De forma predeterminada, esta columna se llama |
|
|
Tuning |
Number of Cores |
Funciona junto con Memory per Core. De forma predeterminada, el sistema asigna los recursos automáticamente. |
|
Memory per Core |
Cantidad de memoria para cada núcleo, en MB. De forma predeterminada, el sistema asigna los recursos automáticamente. |
Método 2: Comando PAI
Para configurar el componente Multiclass Classification Evaluation mediante un comando PAI, ejecute el comando en un SQL Script component. Para obtener más información, consulte Scenario 4: Run a PAI command in the SQL Script component.
PAI -name MultiClassEvaluation -project algo_public
-DinputTableName="test_input"
-DoutputTableName="test_output"
-DlabelColName="label"
-DpredictionColName="prediction_result"
-Dlifecycle=30;
|
Parámetro |
Obligatorio |
Predeterminado |
Descripción |
|
inputTableName |
Sí |
Ninguna |
Nombre de la tabla de entrada. |
|
inputTablePartitions |
No |
Tabla completa |
Particiones que se usarán de la tabla de entrada. |
|
outputTableName |
Sí |
Ninguna |
Nombre de la tabla de salida. |
|
labelColName |
Sí |
Ninguna |
Nombre de la columna que contiene las etiquetas reales. |
|
predictionColName |
Sí |
Ninguna |
Nombre de la columna que contiene las etiquetas predichas. |
|
predictionDetailColName |
No |
Vacío |
Columna que contiene las probabilidades de clase predichas. Por ejemplo, |
|
lifecycle |
No |
Ninguna |
Ciclo de vida de la tabla de salida, en días. |
|
coreNum |
No |
Determinado por el sistema |
Número de núcleos para el trabajo. |
|
memSizePerCore |
No |
Determinado por el sistema |
Cantidad de memoria para cada núcleo, en MB. |
Ejemplo de uso
-
Agregue un SQL Script component e introduzca la siguiente sentencia SQL para generar datos de entrenamiento.
drop table if exists multi_esti_test; create table multi_esti_test as select * from ( select '0' as id,'A' as label,'A' as prediction,'{"A": 0.6, "B": 0.4}' as detail union all select '1' as id,'A' as label,'B' as prediction,'{"A": 0.45, "B": 0.55}' as detail union all select '2' as id,'A' as label,'A' as prediction,'{"A": 0.7, "B": 0.3}' as detail union all select '3' as id,'A' as label,'A' as prediction,'{"A": 0.9, "B": 0.1}' as detail union all select '4' as id,'B' as label,'B' as prediction,'{"A": 0.2, "B": 0.8}' as detail union all select '5' as id,'B' as label,'B' as prediction,'{"A": 0.1, "B": 0.9}' as detail union all select '6' as id,'B' as label,'A' as prediction,'{"A": 0.52, "B": 0.48}' as detail union all select '7' as id,'B' as label,'B' as prediction,'{"A": 0.4, "B": 0.6}' as detail union all select '8' as id,'B' as label,'A' as prediction,'{"A": 0.6, "B": 0.4}' as detail union all select '9' as id,'A' as label,'A' as prediction,'{"A": 0.75, "B": 0.25}' as detail )tmp; -
Agregue otro SQL Script component e introduzca el siguiente comando PAI para ejecutar la evaluación.
drop table if exists ${o1}; PAI -name MultiClassEvaluation -project algo_public -DinputTableName="multi_esti_test" -DoutputTableName=${o1} -DlabelColName="label" -DpredictionColName="prediction" -Dlifecycle=30; -
Haga clic con el botón derecho en el componente del paso anterior y seleccione View Data > SQL Script's Output para consultar los resultados de la evaluación.
| result | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | { "ActualLabelFrequencyList": [5, 5], "ActualLabelProportionList": [0.5, 0.5], "ConfusionMatrix": [[4, 1], [2, 3]], "LabelList": ["A", "B"], "LabelMeasureList": [{ "Accuracy": 0.7, "F1": 0.7272727272727273, "FalseDiscoveryRate": 0.3333333333333333, "FalseNegative": 1, "FalseNegativeRate": 0.2, "FalsePositive": 2, "FalsePositiveRate": 0.4, "Kappa": 0.3999999999999999, "NegativePredictiveValue": 0.75, "Precision": 0.6666666666666666, "Sensitivity": 0.8, "Specificity": 0.6, "TrueNegative": 3, "TruePositive": 4}, { "Accuracy": 0.7, "F1": 0.6666666666666666, "FalseDiscoveryRate": 0.25, "FalseNegative": 2, "FalseNegativeRate": 0.4, "FalsePositive": 1, "FalsePositiveRate": 0.2, "Kappa": 0.3999999999999999, "NegativePredictiveValue": 0.6666666666666666, "Precision": 0.75, "Sensitivity": 0.6, "Specificity": 0.8, "TrueNegative": 4, "TruePositive": 3}], "LabelNumber": 2, "OverallMeasures": { "Accuracy": 0.7, "Kappa": 0.3999999999999999, "LabelFrequencyBasedMicro": { "Accuracy": 0.7, "F1": 0.696969696969697, "FalseDiscoveryRate": 0.2916666666666666, "FalseNegative": 1.5, "FalseNegativeRate": 0.3, "FalsePositive": 1.5, "FalsePositiveRate": 0.3, "Kappa": 0.3999999999999999, "NegativePredictiveValue": 0.7083333333333333, "Precision": 0.7083333333333333, "Sensitivity": 0.7, "Specificity": 0.7, "TrueNegative": 3.5, "TruePositive": 3.5}, "MacroAveraged": { "Accuracy": 0.7, "F1": 0.696969696969697, "FalseDiscoveryRate": 0.2916666666666666, "FalseNegative": 1.5, "FalseNegativeRate": 0.3, "FalsePositive": 1.5, "FalsePositiveRate": 0.3, "Kappa": 0.3999999999999999, "NegativePredictiveValue": 0.7083333333333333, "Precision": 0.7083333333333333, "Sensitivity": 0.7, "Specificity": 0.7, "TrueNegative": 3.5, "TruePositive": 3.5}, "MicroAveraged": { "Accuracy": 0.7, "F1": 0.7, "FalseDiscoveryRate": 0.3, "FalseNegative": 3, "FalseNegativeRate": 0.3, "FalsePositive": 3, "FalsePositiveRate": 0.3, "Kappa": 0.3999999999999999, "NegativePredictiveValue": 0.7, "Precision": 0.7, "Sensitivity": 0.7, "Specificity": 0.7, "TrueNegative": 7, "TruePositive": 7}}, "PredictedLabelFrequencyList": [6, 4], "PredictedLabelProportionList": [0.6, 0.4], "ProportionMatrix": [[0.8, 0.2], [0.4, 0.6]]} |
Apéndice
Si ejecuta el componente en modo visual, haga clic con el botón derecho sobre él y seleccione Visual Analysis para consultar los resultados detallados. En la lista de nodos visuales de la izquierda, seleccione el nodo Multiclass Classification Evaluation-1 y vaya a la pestaña Metrics de la derecha para ver los resultados. Las métricas clave incluyen: exactitud = 0.7 y Kappa ≈ 0.4. Las métricas promediadas macro son: puntuación F1 ≈ 0,697, precisión ≈ 0,708, sensibilidad = 0.7, especificidad = 0.7, tasa de falsos positivos = 0.3, tasa de falsos negativos = 0.3, verdaderos positivos = 3.5 y verdaderos negativos = 3.5.
La página de resultados contiene tres pestañas: Metrics, Confusion Matrix y Distribution Statistics. En la pestaña Confusion Matrix, los resultados de predicción para cada clase se muestran como un mapa de calor. El eje vertical representa las clases reales y el horizontal, las clases predichas. Pase el cursor sobre una celda de la matriz para consultar su valor específico (Value) y proporción (Ratio).
La pestaña Distribution Statistics muestra las métricas de evaluación de clasificación para cada clase en una tabla, incluidos verdaderos positivos (TP), verdaderos negativos (TN), falsos positivos (FP), falsos negativos (FN), sensibilidad, especificidad, precisión, exactitud, puntuación F1 y Kappa. Por ejemplo, para la clase A, las métricas son: TP=4, TN=3, FP=2, FN=1, sensibilidad=0.8, especificidad=0.6, precisión=0.6667, exactitud=0.7, puntuación F1=0.7273 y Kappa=0.4. Para la clase B, las métricas son: TP=3, TN=4, FP=1, FN=2, sensibilidad=0.6, especificidad=0.8, precisión=0.75, exactitud=0.7, puntuación F1=0.6667 y Kappa=0.4.