本文介紹了支援向量迴歸演算法(Support Vector Regression,以下簡稱SVR)的相關內容。
簡介
SVR是支援向量機(SVM)的重要套用分支。通過SVR演算法,可以找到一個迴歸平面並使得一個集合中的所有資料距離該平面的距離最短。
使用情境
SVR是一個迴歸模型,主要是用於擬合數值,一般應用於特徵較為稀疏且特徵數較少的情境。
例如,可以使用SVR迴歸模型來預測某個城市的溫度。輸入特徵有很多,例如這個城市某個時期的平均溫度、綠化程度、湖泊數量以及日期等。訓練資料可以是一段時間內的城市溫度。
參數說明
下表中的參數為建立模型CREATE MODEL
文法中model_parameter
參數的取值,您可以根據當前需求選擇對應的參數。
參數 | 說明 |
kernel | 核函數,用於將低維資料對應到高維空間。取值如下:
|
c | 鬆弛係數的懲罰項係數。取值為大於0的浮點數,可不填。預設值為1。 說明 如果資料品質較差,可以適當降低懲罰項 |
epsilon | SVR損失函數的閾值。當預測值與實際值的差值等於該閾值時,需要計算該樣本的損失。預設值為0.1。 |
max_iter | 最大迭代次數。取值為正整數或-1,預設值為-1。 說明 如果設定為-1,則表示不限制迭代次數,直到收斂到 |
樣本
建立模型與模型離線訓練
/*polar4ai*/CREATE MODEL svr1 WITH
( model_class = 'svr', x_cols = 'dx1,dx2', y_cols='y',
model_parameter=(kernel='rbf')) AS (SELECT * FROM db4ai.testdata1);
模型評估
/*polar4ai*/SELECT dx1,dx2 FROM EVALUATE(MODEL svr1,
SELECT * FROM db4ai.testdata1 LIMIT 10) WITH
(x_cols = 'dx1,dx2',y_cols='y',metrics='r2_score');
模型預測
/*polar4ai*/SELECT dx1,dx2 FROM
PREDICT(MODEL svr1, SELECT * FROM db4ai.testdata1 LIMIT 10)
WITH (x_cols = 'dx1,dx2');
說明
其中,x_cols
和y_cols
中的列資料類型必須是浮點型或整型。