本文為您介紹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:所有可能的結果和其對應的預測概率值詳情。