本文为您介绍PAI-Studio提供的评估算法,包括二分类评估、回归模型评估、聚类模型评估、混淆矩阵及多分类评估。
二分类评估
二分类评估通过计算AUC、KS及F1 Score指标,输出KS曲线、PR曲线、ROC曲线、LIFT Chart及Gain Chart。
PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
- 可视化方式
参数 描述 原始标签列列名 目标列的名称。 分数列列名 预测分数列,通常为prediction_score列。 正样本的标签值 正样本的分类。 计算KS、PR等指标时按等频分成多少个桶 将数据按照等频划分为桶的数量。 分组列列名 分组ID列。对各分组的数据分别计算评估指标,适用于分组评估场景。 高级选项 如果选中高级选项复选框,则预测结果详细列、预测目标与评估目标是否一致及保存性能指标参数生效。 预测结果详细列 预测结果详细列的名称。 预测目标与评估目标是否一致 例如,在金融场景中,训练程序预测坏人的概率,其值越大,表示样本越坏,相关指标(例如LIFT)评估的是抓坏率,此时预测目标与评估目标一致。在信用评分场景中,训练程序预测好人的概率,其值越大,表示样本越好,而相关指标评估的是抓坏率,此时预测目标与评估目标不一致。 保存性能指标 保存性能指标的开关。 - PAI命令方式
PAI -name=evaluate -project=algo_public -DoutputMetricTableName=output_metric_table -DoutputDetailTableName=output_detail_table -DinputTableName=input_data_table -DlabelColName=label -DscoreColName=score
参数 是否必选 参数描述 默认值 inputTableName 是 输入表的名称。 无 inputTablePartitions 否 输入表的分区。 全表 labelColName 是 目标列的名称。 无 scoreColName 是 分数列的名称。 无 groupColName 否 分组列的名称,用于分组评估场景。 无 binCount 否 计算KS及PR等指标时,按照等频将数据分成的桶数量。 1000 outputMetricTableName 是 输出的指标表,包括AUC、KS及F1 Score指标。 无 outputDetailTableName 否 用于画图的详细数据表。 无 positiveLabel 否 正样本的分类。 1 lifecycle 否 输出表的生命周期。 无 coreNum 否 核心数量。 系统自动计算 memSizePerCore 否 每个核心的内存。 系统自动计算
回归模型评估
回归模型评估是指基于预测结果和原始结果,评估回归算法模型的优劣性,从而输出评估指标及残差直方图。
PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
- 可视化方式
页签 参数 描述 字段设置 原回归值 支持数值类型。 预测回归值 支持数值类型。 执行调优 节点个数 与参数单个节点内存大小搭配使用,取值范围为1~9999。 单个节点内存大小 取值范围为1024 MB~64*1024 MB。 - PAI命令方式
PAI -name regression_evaluation -project algo_public -DinputTableName=input_table -DyColName=y_col -DpredictionColName=prediction_col -DindexOutputTableName=index_output_table -DresidualOutputTableName=residual_output_table;
参数 是否必选 参数描述 默认值 inputTableName 是 输入表的名称。 无 inputTablePartitions 否 输入表中,参与计算的分区。 全表 yColName 是 输入表中,原始因变量的列名,支持数值类型。 无 predictionColName 是 预测结果中,因变量的列名,支持数值类型。 无 indexOutputTableName 是 回归指标输出表的名称。 无 residualOutputTableName 是 残差直方图输出表的名称。 无 intervalNum 否 直方图区间数量。 100 lifecycle 否 输出表的生命周期,取值范围为正整数。 无 coreNum 否 Instance数量,取值范围为1~9999。 系统自动设置 memSizePerCore 否 每个核心的内存,取值范围为1024 MB~64*1024 MB。 系统自动设置
回归模型评估的输出结果
回归指标输出表的输出结果为JSON格式,包括以下参数。
参数 | 描述 |
---|---|
SST | 总平方和 |
SSE | 误差平方和 |
SSR | 回归平方和 |
R2 | 判定系数 |
R | 多重相关系数 |
MSE | 均方误差 |
RMSE | 均方根误差 |
MAE | 平均绝对误差 |
MAD | 平均误差 |
MAPE | 平均绝对百分误差 |
count | 行数 |
yMean | 原始因变量的均值 |
predictionMean | 预测结果的均值 |
聚类模型评估
基于原始数据和聚类结果,评估聚类模型的优劣性,从而输出评估指标。
PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
- 可视化方式
页签 参数 描述 字段设置 参与评估列 参与评估的列名,该参数必须与模型存储的特征列保持一致。 输入为稀疏格式 使用KV格式表示稀疏数据。 kv键间分隔符 默认为英文逗号(,)。 kv键内分隔符 默认为英文冒号(:)。 执行调优 核心数 与参数每个核的内存大小搭配使用,取值范围为正整数。 每个核的内存大小 与参数核心数搭配使用,单位为MB。 - PAI命令方式
PAI -name cluster_evaluation -project algo_public -DinputTableName=pai_cluster_evaluation_test_input -DselectedColNames=f0,f3 -DmodelName=pai_kmeans_test_model -DoutputTableName=pai_ft_cluster_evaluation_out;
参数 是否必选 描述 默认值 inputTableName 是 输入表的名称。 无 selectedColNames 否 输入表中,参与评估的列名,多个列以英文逗号(,)分隔。该参数必须与模型存储的特征列保持一致。 所有列 inputTablePartitions 否 输入表中,参与训练的分区。支持以下格式: - Partition_name=value
- name1=value1/name2=value2:多级格式
说明 如果指定多个分区,则使用英文逗号(,)分隔。全表 enableSparse 否 输入数据是否为稀疏格式,取值范围为{true,false}。 false itemDelimiter 否 稀疏格式KV对之间的分隔符。 英文逗号(,) kvDelimiter 否 稀疏格式key和value之间的分隔符。 英文冒号(;) modelName 是 输入的聚类模型。 无 outputTableName 是 输出表。 无 lifecycle 否 输出表的生命周期。 无
评估指标Calinski-Harabasz又称VRC(Variance Ratio Criterion),其计算公式如下。

参数 | 描述 |
---|---|
SSB | 聚类之间的方差,定义如下。![]()
|
SSW | 聚类内的方差,定义如下。![]()
|
N | 记录的总数量。 |
k | 聚类中心点的数量。 |
聚类模型评估示例
- 使用SQL语句,生成测试数据。
create table if not exists pai_cluster_evaluation_test_input as select * from ( select 1 as id, 1 as f0,2 as f3 from dual union all select 2 as id, 1 as f0,3 as f3 from dual union all select 3 as id, 1 as f0,4 as f3 from dual union all select 4 as id, 0 as f0,3 as f3 from dual union all select 5 as id, 0 as f0,4 as f3 from dual )tmp;
- 使用PAI命令,构建聚类模型(以K均值聚类为例)。
PAI -name kmeans -project algo_public -DinputTableName=pai_cluster_evaluation_test_input -DselectedColNames=f0,f3 -DcenterCount=3 -Dloop=10 -Daccuracy=0.00001 -DdistanceType=euclidean -DinitCenterMethod=random -Dseed=1 -DmodelName=pai_kmeans_test_model -DidxTableName=pai_kmeans_test_idx
- 使用PAI命令,提交聚类模型评估组件的参数。
PAI -name cluster_evaluation -project algo_public -DinputTableName=pai_cluster_evaluation_test_input -DselectedColNames=f0,f3 -DmodelName=pai_kmeans_test_model -DoutputTableName=pai_ft_cluster_evaluation_out;
- 查看评估输出表pai_ft_cluster_evaluation_out,其可视化报告如下图所示。
该图表与pai_ft_cluster_evaluation_out表中字段对应关系如下。
表字段 可视化图表 count 总记录数 centerCount 聚类中心数 calinhara Calinski Harabasz指标 clusterCounts 各聚类包含的点数目
混淆矩阵
混淆矩阵(Confusion Matrix)适用于监督学习,与无监督学习中的匹配矩阵对应。在精度评价中,混淆矩阵主要用于比较分类结果和实际测量值,可以将分类结果的精度显示在一个矩阵中。
PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
- 可视化方式
参数 描述 原数据的标签列列名 支持数值类型。 预测结果的标签列列名 如果未配置阈值,则该参数必选。 阈值 大于该参数值的样本为正样本。 预测结果的详细列列名 与预测结果的标签列列名不能共存。如果已配置阈值,则该参数必选。 正样本的标签值 如果已配置阈值,则该参数必选。 - PAI命令方式
- 未指定阈值
pai -name confusionmatrix -project algo_public -DinputTableName=wpbc_pred -DoutputTableName=wpbc_confu -DlabelColName=label -DpredictionColName=prediction_result;
- 指定阈值
pai -name confusionmatrix -project algo_public -DinputTableName=wpbc_pred -DoutputTableName=wpbc_confu -DlabelColName=label -DpredictionDetailColName=prediction_detail -Dthreshold=0.8 -DgoodValue=N;
参数 是否必选 描述 默认值 inputTableName 是 输入表的名称,即预测输出表。 无 inputTablePartition 否 输入表的分区。 全表 outputTableName 是 输出表的名称,用于存储混淆矩阵。 无 labelColName 是 原始标签列的名称。 无 predictionColName 否 预测结果列的名称。如果未配置threshold,则该参数必选。 无 predictionDetailColName 否 预测结果详细列的名称。如果已配置threshold,则该参数必选。 无 threshold 否 划分正样本的阈值。 0.5 goodValue 否 二分类时,指定训练系数对应的标签值。如果已配置threshold,则该参数必选。 无 coreNum 否 计算的核心数量。 系统自动分配 memSizePerCore 否 每个核心的内存,单位为MB。 系统自动分配 lifecycle 否 输出表的生命周期。 无 - 未指定阈值
混淆矩阵示例
- 导入如下测试数据。
id label prediction_result 0 A A 1 A B 2 A A 3 A A 4 B B 5 B B 6 B A 7 B B 8 B A 9 A A - 构建如下实验,详情请参见算法建模。
- 配置混淆矩阵的参数(配置如下表格中的参数,其余参数使用默认值)。
参数 描述 原数据的标签列列名 选择label列。 预测结果的标签列列名 选择prediction_result列。 - 运行实验,查看混淆矩阵组件的输出结果:
- 单击混淆矩阵页签,查看输出的混淆矩阵。
- 单击比例矩阵页签,查看比例矩阵。
- 单击统计信息页签,查看模型统计信息。
- 单击混淆矩阵页签,查看输出的混淆矩阵。
多分类评估
多分类评估是指基于分类模型的预测结果和原始结果,评估多分类算法模型的优劣性,从而输出评估指标(例如Accuracy、Kappa及F1-Score)。
PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
- 可视化方式
页签 参数 描述 字段设置 原分类结果列 可以选择原始标签列,分类数量不能大于1000。 预测分类结果列 预测分类列,通常为prediction_result列。 高级选项 如果选中高级选项复选框,则预测结果概率列参数生效。 预测结果概率列 用于计算模型的Logloss,通常为prediction_detail列,且仅对随机森林模型有效。如果对其他模型设置该参数,则系统可能报错。 执行调优 核心数 与核内存分配搭配使用,默认为系统自动分配。 核内存分配 每个核心的内存,单位为MB,默认为系统自动分配。 - PAI命令方式
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]]}
- 单击总览页签,查看总览信息。
在文档使用中是否遇到以下问题
更多建议
匿名提交