本文为您介绍Designer提供的预测算法。使用Designer中的传统数据挖掘算法得到的模型,如果没有同名配套的预测组件,通常都可以采用这个通用预测组件来做预测。该组件的输入为训练模型和预测数据,输出为预测结果。
组件配置
您可以使用以下任意一种方式,配置预测组件参数。
方式一:可视化方式
在Designer工作流页面配置组件参数。
页签 | 参数 | 描述 |
字段设置 | 特征列 | 参与预测的特征列,默认选择所有列。 |
原样输出列 | 建议添加标签列,便于评估。 | |
输出结果列名 | 输出表的结果列。 | |
输出分数列名 | 输出i表的分数列。 | |
输出详细列名 | 输出表的详细列。 | |
稀疏矩阵 | 使用KV格式表示稀疏数据。 | |
key与value分隔符 | 默认为英文冒号(:)。 | |
kv对间的分隔符 | 默认为英文逗号(,)。 | |
执行调优 | 核心数 | 与参数每个核的内存大小搭配使用,取值范围为正整数。 |
每个核的内存大小 | 与参数核心数搭配使用,单位为MB。 |
方式二:PAI命令方式
使用PAI命令方式,配置该组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见SQL脚本。
pai -name prediction
-DmodelName=nb_model
-DinputTableName=wpbc
-DoutputTableName=wpbc_pred
-DappendColNames=label;
参数 | 是否必选 | 描述 | 默认值 |
inputTableName | 是 | 输入表的名称。 | 无 |
featureColNames | 否 | 输入表中,参与预测的特征列,多个列以英文逗号(,)分隔。 | 所有列 |
appendColNames | 否 | 输入表中,附加至输出表的预测列。 | 无 |
inputTablePartitions | 否 | 输入表中,参与训练的分区。支持以下格式:
说明 如果指定多个分区,则使用英文逗号(,)分隔。 | 全表 |
outputTablePartition | 否 | 结果输出至输出表的分区。 | 无 |
resultColName | 否 | 输出表的预测结果,即所有可能结果中,预测概率最高的结果。 | prediction_result |
scoreColName | 否 | 输出表的预测结果的概率,即预测概率最高结果对应的预测概率值。 | prediction_score |
detailColName | 否 | 输出表的详细列,即所有可能结果及其预测概率详情。 | prediction_detail |
enableSparse | 否 | 输入数据是否为稀疏格式,取值范围为{true,false}。 | false |
itemDelimiter | 否 | 稀疏格式KV对之间的分隔符。 | 英文逗号(,) |
kvDelimiter | 否 | 稀疏格式key和value之间的分隔符。 | 英文冒号(;) |
modelName | 是 | 输入的聚类模型。 | 无 |
outputTableName | 是 | 输出表。 | 无 |
lifecycle | 否 | 输出表的生命周期。 | 无 |
coreNum | 否 | 节点个数。 | 系统自动分配 |
memSizePerCore | 否 | 每个节点的内存,单位为MB。 | 系统自动分配 |
示例
使用SQL语句,生成测试数据。
create table pai_rf_test_input as select * from ( select 1 as f0,2 as f1, "good" as class union all select 1 as f0,3 as f1, "good" as class union all select 1 as f0,4 as f1, "bad" as class union all select 0 as f0,3 as f1, "good" as class union all select 0 as f0,4 as f1, "bad" as class )tmp;
使用PAI命令,构建模型(以随机森林算法为例)。
PAI -name randomforests -project algo_public -DinputTableName="pai_rf_test_input" -DmodelName="pai_rf_test_model" -DforceCategorical="f1" -DlabelColName="class" -DfeatureColNames="f0,f1" -DmaxRecordSize="100000" -DminNumPer="0" -DminNumObj="2" -DtreeNum="3";
使用PAI命令,提交预测组件参数。
PAI -name prediction -project algo_public -DinputTableName=pai_rf_test_input -DmodelName=pai_rf_test_model -DresultColName=prediction_result -DscoreColName=prediction_score -DdetailColName=prediction_detail -DoutputTableName=pai_temp_2283_76333_1
查看输出结果表pai_temp_2283_76333_1。其中:
prediction_result:为所有可能结果中,预测概率最高的结果。
prediction_score:为概率最高结果的具体预测概率值。
当可能的结果包括bad和good时,每次预测的prediction_score值既可能是bad的概率,也可能是good的概率,根据每次预测为bad或good的概率值比较结果为准,prediction_score为概率值最高的结果值。
prediction_detail:所有可能的结果和其对应的预测概率值详情。