全部產品
Search
文件中心

PolarDB:支援向量迴歸演算法(SVR)

更新時間:Jul 06, 2024

本文介紹了支援向量迴歸演算法(Support Vector Regression,以下簡稱SVR)的相關內容。

簡介

SVR是支援向量機(SVM)的重要套用分支。通過SVR演算法,可以找到一個迴歸平面並使得一個集合中的所有資料距離該平面的距離最短。

使用情境

SVR是一個迴歸模型,主要是用於擬合數值,一般應用於特徵較為稀疏且特徵數較少的情境。

例如,可以使用SVR迴歸模型來預測某個城市的溫度。輸入特徵有很多,例如這個城市某個時期的平均溫度、綠化程度、湖泊數量以及日期等。訓練資料可以是一段時間內的城市溫度。

參數說明

下表中的參數為建立模型CREATE MODEL文法中model_parameter參數的取值,您可以根據當前需求選擇對應的參數。

參數

說明

kernel

核函數,用於將低維資料對應到高維空間。取值如下:

  • rbf(預設):高斯徑向基核函數。可以將一個樣本映射到一個更高維的空間內。

  • linear:線性核。主要用於線性可分的情況。特徵空間到輸入空間的維度一樣,其參數少、速度快。

  • poly:多項式核函數。可以實現將低維的輸入空間映射到高維的特徵空間,其參數較多。

  • sigmoid:使用該函數作為核函數時,效果類似多層神經網路。

c

鬆弛係數的懲罰項係數。取值為大於0的浮點數,可不填。預設值為1。

說明

如果資料品質較差,可以適當降低懲罰項c的值。

epsilon

SVR損失函數的閾值。當預測值與實際值的差值等於該閾值時,需要計算該樣本的損失。預設值為0.1。

max_iter

最大迭代次數。取值為正整數或-1,預設值為-1。

說明

如果設定為-1,則表示不限制迭代次數,直到收斂到epsilon內為止。

樣本

建立模型與模型離線訓練

/*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_colsy_cols中的列資料類型必須是浮點型或整型。