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