邏輯回歸二分類
經(jīng)典邏輯回歸是一個二分類算法,支持稀疏及稠密數(shù)據(jù)格式。
組件配置
您可以使用以下任意一種方式,配置邏輯回歸二分類組件參數(shù)。
方式一:可視化方式
在Designer工作流頁面配置組件參數(shù)。
頁簽 | 參數(shù) | 描述 |
字段設(shè)置 | 訓(xùn)練特征列 | 輸入數(shù)據(jù)源中,用于訓(xùn)練的特征列。支持DOUBLE及BIGINT類型。 說明 特征數(shù)量不能超過兩千萬。 |
目標(biāo)列 | 輸入數(shù)據(jù)源中,目標(biāo)列名稱。 | |
正類值 | 無。 | |
是否稀疏數(shù)據(jù) | 輸入數(shù)據(jù)是否為稀疏格式。 | |
參數(shù)設(shè)置 | 正則項 | 支持None、L1及L2類型。 |
最大迭代次數(shù) | 默認(rèn)值為100。 | |
正則系數(shù) | 如果 正則項為None,則該參數(shù)失效。 | |
最小收斂誤差 | 默認(rèn)值為0.000001。 | |
執(zhí)行調(diào)優(yōu) | 核數(shù)目 | 系統(tǒng)自動分配。 |
每個核內(nèi)存數(shù) | 系統(tǒng)自動分配。 |
方式二:PAI命令方式
使用PAI命令方式,配置該組件參數(shù)。您可以使用SQL腳本組件進(jìn)行PAI命令調(diào)用,詳情請參見SQL腳本。
PAI -name logisticregression_binary
-project algo_public
-DmodelName="xlab_m_logistic_regression_6096"
-DregularizedLevel="1"
-DmaxIter="100"
-DregularizedType="l1"
-Depsilon="0.000001"
-DlabelColName="y"
-DfeatureColNames="pdays,emp_var_rate"
-DgoodValue="1"
-DinputTableName="bank_data"
參數(shù)名稱 | 是否必選 | 參數(shù)描述 | 默認(rèn)值 |
inputTableName | 是 | 輸入表的表名。 | 無 |
featureColNames | 否 | 輸入表中,用于訓(xùn)練的特征列名。 說明 特征數(shù)量不能超過兩千萬。 | 所有數(shù)值列 |
labelColName | 是 | 輸入表的標(biāo)簽列名。 | 無 |
inputTablePartitions | 否 | 輸入表中,參與訓(xùn)練的分區(qū)。系統(tǒng)支持的格式包括:
說明 指定多個分區(qū)時,分區(qū)間使用英文逗號(,)分隔。 | 全表 |
modelName | 是 | 輸出的模型名。 | 無 |
regularizedType | 否 | 正則化類型,取值范圍為{‘l1’,’l2’,’None’}。 | l1 |
regularizedLevel | 否 | 正則化系數(shù)。如果 regularizedType為None,則該參數(shù)失效。 | 1.0 |
maxIter | 否 | L-BFGS的最大迭代次數(shù)。 | 100 |
epsilon | 否 | 收斂誤差。該參數(shù)是L-BFGS算法的終止條件,即兩次迭代的log-likelihood之差小于該值,迭代終止。 | 1.0e-06 |
goodValue | 否 | 目標(biāo)基準(zhǔn)值。二分類時,指定訓(xùn)練系數(shù)針對的 label值。如果為空,則系統(tǒng)隨機(jī)分配。 | 無 |
enableSparse | 否 | 輸入數(shù)據(jù)是否為稀疏格式,取值范圍為{true,false}。 | false |
itemDelimiter | 否 | 輸入表數(shù)據(jù)為稀疏格式時,KV對之間的分隔符。 | 英文逗號(,) |
kvDelimiter | 否 | 輸入表數(shù)據(jù)為稀疏格式時,key和value之間的分隔符。 | 英文冒號(:) |
coreNum | 否 | 核心數(shù)量。 | 系統(tǒng)自動分配 |
memSizePerCore | 否 | 單個核心使用的內(nèi)存數(shù),單位為MB。 | 系統(tǒng)自動分配 |
PAI使用KV格式表示稀疏數(shù)據(jù),如下表所示。其中itemDelimiter表示KV對之間的分隔符,kvDelimiter表示key和value之間的分隔符。
key_value |
1:100,4:200,5:300 |
1:10,2:20,3:30 |
KV格式使用索引(從0開始)表示key。如果使用字符表示key,則系統(tǒng)報錯。
示例
使用SQL語句,生成訓(xùn)練數(shù)據(jù)。
drop table if exists lr_test_input; create table lr_test_input as select * from ( select cast(1 as double) as f0, cast(0 as double) as f1, cast(0 as double) as f2, cast(0 as double) as f3, cast(0 as bigint) as label union all select cast(0 as double) as f0, cast(1 as double) as f1, cast(0 as double) as f2, cast(0 as double) as f3, cast(0 as bigint) as label union all select cast(0 as double) as f0, cast(0 as double) as f1, cast(1 as double) as f2, cast(0 as double) as f3, cast(1 as bigint) as label union all select cast(0 as double) as f0, cast(0 as double) as f1, cast(0 as double) as f2, cast(1 as double) as f3, cast(1 as bigint) as label union all select cast(1 as double) as f0, cast(0 as double) as f1, cast(0 as double) as f2, cast(0 as double) as f3, cast(0 as bigint) as label union all select cast(0 as double) as f0, cast(1 as double) as f1, cast(0 as double) as f2, cast(0 as double) as f3, cast(0 as bigint) as label ) a;
生成的訓(xùn)練數(shù)據(jù)表lr_test_input如下。
f0
f1
f2
f3
label
1.0
0.0
0.0
0.0
0
0.0
0.0
1.0
0.0
1
0.0
0.0
0.0
1.0
1
0.0
1.0
0.0
0.0
0
1.0
0.0
0.0
0.0
0
0.0
1.0
0.0
0.0
0
使用PAI命令,提交邏輯回歸二分類組件的訓(xùn)練參數(shù)。
drop offlinemodel if exists lr_test_model; PAI -name logisticregression_binary -project algo_public -DmodelName="lr_test_model" -DitemDelimiter="," -DregularizedLevel="1" -DmaxIter="100" -DregularizedType="None" -Depsilon="0.000001" -DkvDelimiter=":" -DlabelColName="label" -DfeatureColNames="f0,f1,f2,f3" -DenableSparse="false" -DgoodValue="1" -DinputTableName="lr_test_input";
使用PAI命令,提交預(yù)測組件參數(shù)。更多參數(shù)說明,請參見預(yù)測。
drop table if exists lr_test_prediction_result; PAI -name prediction -project algo_public -DdetailColName="prediction_detail" -DmodelName="lr_test_model" -DitemDelimiter="," -DresultColName="prediction_result" -Dlifecycle="28" -DoutputTableName="lr_test_prediction_result" -DscoreColName="prediction_score" -DkvDelimiter=":" -DinputTableName="lr_test_input" -DenableSparse="false" -DappendColNames="label";
查看預(yù)測結(jié)果表lr_test_prediction_result。
label
prediction_result
prediction_score
prediction_detail
0
0
0.9999998793434426
{“0”: 0.9999998793434426, “1”: 1.206565574533681e-07}
1
1
0.999999799574135
{“0”: 2.004258650156743e-07, “1”: 0.999999799574135}
1
1
0.999999799574135
{“0”: 2.004258650156743e-07, “1”: 0.999999799574135}
0
0
0.9999998793434426
{“0”: 0.9999998793434426, “1”: 1.206565574533681e-07}
0
0
0.9999998793434426
{“0”: 0.9999998793434426, “1”: 1.206565574533681e-07}
0
0
0.9999998793434426
{“0”: 0.9999998793434426, “1”: 1.206565574533681e-07}