多分类评估是指基于分类模型的预测结果和原始结果,评估多分类算法模型的优劣性,从而输出评估指标(例如Accuracy、Kappa及F1-Score)。
组件配置
您可以使用以下任意一种方式,配置多分类评估组件参数。
方式一:可视化方式
在PAI-Designer(原PAI-Studio)工作流页面配置组件参数。
页签 | 参数 | 描述 |
---|---|---|
字段设置 | 原分类结果列 | 可以选择原始标签列,分类数量不能大于1000。 |
预测分类结果列 | 预测分类列,通常为prediction_result列。 | |
高级选项 | 如果选中高级选项复选框,则预测结果概率列参数生效。 | |
预测结果概率列 | 用于计算模型的Logloss,通常为prediction_detail列,且仅对随机森林模型有效。如果对其他模型设置该参数,则系统可能报错。 | |
执行调优 | 核心数 | 与核内存分配搭配使用,默认为系统自动分配。 |
核内存分配 | 每个核心的内存,单位为MB,默认为系统自动分配。 |
方式二:PAI命令方式
使用PAI命令方式,配置该组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见SQL脚本。
PAI -name MultiClassEvaluation -project algo_public \
-DinputTableName="test_input" \
-DoutputTableName="test_output" \
-DlabelColName="label" \
-DpredictionColName="prediction_result" \
-Dlifecycle=30;
参数 | 是否必选 | 参数描述 | 默认值 |
---|---|---|---|
inputTableName | 是 | 输入表的名称。 | 无 |
inputTablePartitions | 否 | 输入表的分区。 | 全表 |
outputTableName | 是 | 输出表的名称。 | 无 |
labelColName | 是 | 输入表原始标签列名。 | 无 |
predictionColName | 是 | 预测结果的标签列名。 | 无 |
predictionDetailColName | 否 | 预测结果的概率列,例如{“A”:0.2,“B”:0.3,“C”: 0.5}。 | 空 |
lifecycle | 否 | 输出表的生命周期。 | 无 |
coreNum | 否 | 核心数量。 | 系统自动计算 |
memSizePerCore | 否 | 每个核心的内存。 | 系统自动计算 |
组件输出
多分类评估组件输出的评估报告包括:
- 总览汇总指标,其中MacroAveraged为每个标签指标的平均值。
- 混淆矩阵
- 比例矩阵
- 统计信息按照One-VS-All的方式,计算每个标签的指标。
多分类评估组件输出结果表的JSON格式如下。
{
"LabelNumber": 3,
"LabelList": ["A", "B", "C"],
"ConfusionMatrix": [ // 混淆矩阵[actual][predict]。
[100, 10, 20],
[30, 50, 9],
[7, 40, 90] ],
"ProportionMatrix": [ // 比例矩阵(按行占比)[actual][predict]。
[0.6, 0.2, 0.2],
[0.3, 0.6, 0.1],
[0.1, 0.4, 0.5] ],
"ActualLabelFrequencyList": [ // 每个标签的真实数量。
200, 300, 600],
"ActualLabelProportionList": [ // 每个标签的真实占比。
0.1, 0.2, 0.7],
"PredictedLabelFrequencyList": [ // 预测的每个标签数量。
300, 400, 400],
"PredictedLabelProportionList": [ // 预测的每个标签占比。
0.2, 0.1, 0.7],
"OverallMeasures": { // 汇总指标。
"Accuracy": 0.70,
"Kappa" : 0.3,
"MacroList": { // 每个标签的指标平均值。
"Sensitivity": 0.4,
"Specificity": 0.3,
},
"MicroList": { // 根据每个标签的TP、TN、FP及FN之和,计算该指标。
"Sensitivity": 0.4,
"Specificity": 0.3,
},
"LabelFrequencyBasedMicro": { // 按照频率,计算每个标签指标的加权平均值。
"Sensitivity": 0.4,
"Specificity": 0.3,
},
},
"LabelMeasuresList": [ // 每个标签的指标。
{
"Accuracy": 0.6,
"Sensitivity": 0.4,
"Specificity": 0.3,
"Kappa": 0.3
},
{
"Accuracy": 0.6,
"Sensitivity": 0.4,
"Specificity": 0.3,
"Kappa": 0.3
},
]
}
示例
- 导入如下测试数据。
id label prediction detail 0 A A {“A”: 0.6, “B”: 0.4} 1 A B {“A”: 0.45, “B”: 0.55} 2 A A {“A”: 0.7, “B”: 0.3} 3 A A {“A”: 0.9, “B”: 0.1} 4 B B {“A”: 0.2, “B”: 0.8} 5 B B {“A”: 0.1, “B”: 0.9} 6 B A {“A”: 0.52, “B”: 0.48} 7 B B {“A”: 0.4, “B”: 0.6} 8 B A {“A”: 0.6, “B”: 0.4} 9 A A {“A”: 0.75, “B”: 0.25} - 构建实验,详情请参见算法建模。
- 配置多分类组件的参数(配置如下表格中的参数,其余参数使用默认值)。
页签 参数 描述 字段设置 原分类结果列 选择label列。 预测分类结果列 输入prediction。 高级选项 选中高级选项复选框。 预测结果概率列 输入detail。 - 运行实验,查看多分类评估组件输出的评估报告:
- 单击总览页签,查看总览信息。
- 单击混淆矩阵页签,查看混淆矩阵。
- 单击比例矩阵页签,查看比例矩阵。
- 单击统计信息页签,查看模型统计信息。
{ "ActualLabelFrequencyList": [5, 5], "ActualLabelProportionList": [0.5, 0.5], "ConfusionMatrix": [[4, 1], [2, 3]], "LabelList": ["A", "B"], "LabelMeasureList": [{ "Accuracy": 0.7, "Auc": 0.9, "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, "Auc": 0.9, "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}, "LogLoss": 0.4548640449724484, "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]]}
- 单击总览页签,查看总览信息。