SVR,時間序列分析的評價指標,python資料標準化
阿新 • • 發佈:2018-12-08
知識點
-
SVR
- 參考
- 支援向量機(SVM)是一種分類演算法,但是也可以做迴歸,根據輸入的資料不同可做不同的模型(若輸入標籤為連續值則做迴歸,若輸入標籤為分類值則用SVC做分類)
- 對於SVM演算法,我們首先匯入sklearn.svm中的SVR模組。SVR()就是SVM演算法來做迴歸用的方法(即輸入標籤是連續值的時候要用的方法),通過以下語句來確定SVR的模式:
from sklearn.svm import SVR svr = SVR(kernel=’rbf’, C=1e3, gamma=
- kernal:核函式型別。一般常用的有‘rbf’,‘linear’,‘poly’,等,發現使用‘rbf’引數時函式模型的擬合效果最好,其他擬合都是線性擬合。
- C:懲罰因子。C表徵你有多麼重視離群點,C越大越重視,越不想丟掉它們。C值大時對誤差分類的懲罰增大,C值小時對誤差分類的懲罰減小。當C越大,趨近無窮的時候,表示不允許分類誤差的存在,margin越小,容易過擬合;當C趨於0時,表示我們不再關注分類是否正確,只要求margin越大,容易欠擬合。
- gamma:是’rbf’,’poly’和’sigmoid’的核係數且gamma的值必須大於0。隨著gamma的增大,存在對於測試集分類效果差而對訓練分類效果好的情況,並且容易泛化誤差出現過擬合。
-
時間序列分析的評價指標
- 均方誤差(MSE)
其中 是真實值, 是預測值 - 均方根誤差(RMSE)
均方根誤差就是均方誤差開方,使誤差的量級和原資料一致,使資料更好描述 - 平均絕對誤差(MAE)
- 對稱平均絕對百分誤差(SMAPE)
- 均方誤差(MSE)
-
資料標準化
[In]: import numpy as np from sklearn.preprocessing import MinMaxScaler # 用最大最小值標準化 scaler = MinMaxScaler(feature_range=(0, 1)) arr = np.array([1,2,3,4,5,6,7]) # 講arr變形為[[1][2][3][4][5][6][7]],因為fit_transform需要2維輸入 arr = arr.reshape(-1, 1) print(arr) # fit_transform(arr)將arr實現標準化 dataset = scaler.fit_transform(arr) # ravel()的作用是將n維矩陣降為1維 dataset = dataset.ravel() print(dataset) [Out]: [[1] [2] [3] [4] [5] [6] [7]] [0. 0.16666667 0.33333333 0.5 0.66666667 0.83333333 1. ]