支援向量機SVM(Support Vector Machine)是基於統計學習理論的一種機器學習方法,通過尋求結構風險最小化,提高學習機泛化能力,從而實現經驗風險和置信範圍最小化。本文介紹線性支援向量機演算法組件的配置方法及使用樣本。
背景資訊
本文中的線性支援向量機演算法不通過核函數方式實現,具體實現理論請參見演算法原理中的Trust Region Method for L2-SVM部分。
使用限制
線性支援向量機演算法組件僅支援二分類情境。
組件配置
您可以使用以下任意一種方式,配置線性支援向量機組件參數。
方式一:可視化方式
輸入框
線性支援向量機演算法組件僅一個輸入樁,需要接入讀資料表組件,為必選項。
在工作流程頁面配置組件參數。
頁簽
參數
是否必選
描述
欄位設定
特徵列
是
輸入列,根據輸入資料表的特徵選取特徵列,支援BIGINT和DOUBLE類型的資料。
標籤列
是
根據輸入資料表的特徵選取標籤列,支援BIGINT、DOUBLE及STRING類型。
參數設定
正樣本的標籤值
否
目標基準值。如果未指定,則系統隨機選定。如果正負例樣本差異大,建議手動指定。
正例懲罰因子
否
正例權重值。預設值為1.0,取值範圍為(0, +∞)。
負例懲罰因子
否
負例權重值。預設值為1.0,取值範圍為(0, +∞)。
收斂係數
否
收斂誤差。預設值為0.001,取值範圍為(0, 1)。
執行調優
計算的核心數
否
如果未配置,則系統自動分配。
每個核心的記憶體
否
如果未配置,則系統自動分配。單位為MB。
輸出樁
輸出OfflineModel格式的二分類模型,下遊可以接“預測”組件。
方式二:PAI命令方式
使用PAI命令方式,配置該組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼。
PAI -name LinearSVM -project algo_public
-DinputTableName="bank_data"
-DmodelName="xlab_m_LinearSVM_6143"
-DfeatureColNames="pdays,emp_var_rate,cons_conf_idx"
-DlabelColName="y"
-DpositiveLabel="0"
-DpositiveCost="1.0"
-DnegativeCost="1.0"
-Depsilon="0.001";
PAI命令中的參數詳情如下表所示。
參數名稱 | 是否必選 | 描述 | 預設值 |
inputTableName | 是 | 輸入表的名稱。 | 無 |
inputTableParitions | 否 | 輸入表中,參與訓練的分區。系統支援以下格式:
說明 指定多個分區時,分區之間使用英文逗號(,)分隔。 | 輸入表的所有分區 |
modelName | 是 | 輸出的模型名稱。 | 無 |
featureColNames | 是 | 輸入表中,用於訓練的特徵列名。 | 無 |
labelColName | 是 | 輸入表中,標籤列的名稱。 | 無 |
positiveLabel | 否 | 正例的值。 | 從label取值中,隨機播放一個。 |
positiveCost | 否 | 正例權重值,即正例懲罰因子。取值範圍為(0, +∞)。 | 1.0 |
negativeCost | 否 | 負例權重值,即負例懲罰因子。取值範圍為(0, +∞)。 | 1.0 |
epsilon | 否 | 收斂係數,取值範圍為(0,1)。 | 0.001 |
enableSparse | 否 | 輸入資料是否為稀疏格式,取值為true或false。 | false |
itemDelimiter | 否 | 當輸入表資料為稀疏格式時,KV對之間的分隔字元。 | 英文逗號(,) |
kvDelimiter | 否 | 當輸入表資料為稀疏格式時,key和value之間的分隔字元。 | 英文冒號(:) |
coreNum | 否 | 計算的核心數,取值範圍為正整數。 | 系統自動分配 |
memSizePerCore | 否 | 每個核心的記憶體,取值範圍為1 MB~65536 MB。 | 系統自動分配 |
樣本
匯入如下訓練資料。
id
y
f0
f1
f2
f3
f4
f5
f6
f7
1
-1
-0.294118
0.487437
0.180328
-0.292929
-1
0.00149028
-0.53117
-0.0333333
2
+1
-0.882353
-0.145729
0.0819672
-0.414141
-1
-0.207153
-0.766866
-0.666667
3
-1
-0.0588235
0.839196
0.0491803
-1
-1
-0.305514
-0.492741
-0.633333
4
+1
-0.882353
-0.105528
0.0819672
-0.535354
-0.777778
-0.162444
-0.923997
-1
5
-1
-1
0.376884
-0.344262
-0.292929
-0.602837
0.28465
0.887276
-0.6
6
+1
-0.411765
0.165829
0.213115
-1
-1
-0.23696
-0.894962
-0.7
7
-1
-0.647059
-0.21608
-0.180328
-0.353535
-0.791962
-0.0760059
-0.854825
-0.833333
8
+1
0.176471
0.155779
-1
-1
-1
0.052161
-0.952178
-0.733333
9
-1
-0.764706
0.979899
0.147541
-0.0909091
0.283688
-0.0909091
-0.931682
0.0666667
10
-1
-0.0588235
0.256281
0.57377
-1
-1
-1
-0.868488
0.1
匯入如下測試資料。
id
y
f0
f1
f2
f3
f4
f5
f6
f7
1
+1
-0.882353
0.0854271
0.442623
-0.616162
-1
-0.19225
-0.725021
-0.9
2
+1
-0.294118
-0.0351759
-1
-1
-1
-0.293592
-0.904355
-0.766667
3
+1
-0.882353
0.246231
0.213115
-0.272727
-1
-0.171386
-0.981213
-0.7
4
-1
-0.176471
0.507538
0.278689
-0.414141
-0.702128
0.0491804
-0.475662
0.1
5
-1
-0.529412
0.839196
-1
-1
-1
-0.153502
-0.885568
-0.5
6
+1
-0.882353
0.246231
-0.0163934
-0.353535
-1
0.0670641
-0.627669
-1
7
-1
-0.882353
0.819095
0.278689
-0.151515
-0.307329
0.19225
0.00768574
-0.966667
8
+1
-0.882353
-0.0753769
0.0163934
-0.494949
-0.903073
-0.418778
-0.654996
-0.866667
9
+1
-1
0.527638
0.344262
-0.212121
-0.356974
0.23696
-0.836038
-0.8
10
+1
-0.882353
0.115578
0.0163934
-0.737374
-0.56974
-0.28465
-0.948762
-0.933333
建立如下實驗,詳情請參見演算法建模。
配置線性支援向量機組件的參數(配置如下表格中的參數,其餘參數使用預設值)。
頁簽
參數
描述
欄位設定
特徵列
選擇f0、f1、f2、f3、f4、f5、f6及f7列。
標籤列
選擇y列。
運行實驗,查看預測結果。