#匯入資料
from sklearn.datasets import load_boston
boston = load_boston()
print(boston.descr)
#資料分割
from sklearn.cross_validation import train_test_split
import numpy as np
x = boston.data
y = boston.target
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25, random_state=33)
#分析回歸目標值的差異
print('the max target value is:',np.max(boston.target))
print('the min target value is:',np.min(boston.target))
print('the mean target value is:',np.mean(boston.target))
#資料標準化
from sklearn.preprocessing import standardscaler
ss_x = standardscaler()
ss_y = standardscaler()
x_train = ss_x.fit_transform(x_train)
x_test = ss_x.transform(x_test)
#y_train = ss_y.fit_transform(y_train)
#y_test = ss_y.transform(y_test)
#訓練模型
from sklearn.svm import svr
#使用線性核函式配置的支援向量機進行回歸訓練
linear_svr = svr(kernel='linear')
linear_svr.fit(x_train, y_train)
linear_y_predict = linear_svr.predict(x_test)
#使用多項式核函式配置的支援向量機進行回歸訓練
poly_svr = svr(kernel='poly')
poly_svr.fit(x_train, y_train)
poly_y_predict = poly_svr.predict(x_test)
#使用徑向基核函式配置的支援向量機進行回歸訓練
rbf_svr = svr(kernel='rbf')
rbf_svr.fit(x_train, y_train)
rbf_y_predict = rbf_svr.predict(x_test)
#效能分析
from sklearn.metrics import r2_score,mean_squared_error,mean_absolute_error
print('the value of default measurement of linearsvr is:',linear_svr.score(x_test, y_test)) #自帶的評估模型
print('the value of r-squared of linearsvr is',r2_score(y_test, linear_y_predict)) #
print('the mean_squared_error of linearsvr is',mean_squared_error(y_test, linear_y_predict)) #均方誤差
print('the mean_absolute_error of linearsvr is',mean_absolute_error(y_test, linear_y_predict)) #平均絕對誤差
print('the value of default measurement of polysvr is:',poly_svr.score(x_test, y_test))
print('the value of r-squared of polysvr is',r2_score(y_test, poly_y_predict))
print('the mean_squared_error of polysvr is',mean_squared_error(y_test, poly_y_predict))
print('the mean_absolute_error of polysvr is',mean_absolute_error(y_test, poly_y_predict))
print('the value of default measurement of rbfsvr is:',rbf_svr.score(x_test, y_test))
print('the value of r-squared of rbfsvr is',r2_score(y_test, rbf_y_predict))
print('the mean_squared_error of rbfsvr is',mean_squared_error(y_test, rbf_y_predict))
print('the mean_absolute_error of rbfsvr is',mean_absolute_error(y_test, rbf_y_predict))
輸出:
回歸 支援向量機回歸 SVR
支援向量機回歸 svr 是支援向量機在回歸問題上的應用模型。支援向量機回歸模型基於不同的損失函式產生了很多變種。本文僅介紹基於 epsilon 不敏感損失函式的svr模型。找到乙個分離超平面 超曲面 使得期望風險最小。epsilon 損失函式,就是當誤差小於 epsilon 時,該誤差可忽略。反之,...
支援向量機(SVM) 支援向量回歸(SVR)
1 支援向量機 svm 是一種比較好的實現了結構風險最小化思想的方法。它的機器學習策略是結構風險最小化原則 為了最小化期望風險,應同時最小化經驗風險和置信範圍 支援向量機方法的基本思想 1 它是專門針對有限樣本情況的學習機器,實現的是結構風險最小化 在對給定的資料逼近的精度與逼近函式的複雜性之間尋求...
支援向量回歸
支援向量回歸和傳統的回歸模型的區別 就拿最簡單的線性回歸來講,通過模型輸出的f x 與真實輸出的y值之間的差別來計算損失。而svr假設模型輸出f x 與真實的y值之間可以容忍有eps大小的偏差,也就意味只要樣本的 值落在f x 兩側在y軸方向上絕對值只差小於eps的間隔帶上就是 正確的。我們去用乙個...