回歸學習 支援向量機回歸

2021-08-14 22:51:31 字數 2772 閱讀 4339

#匯入資料

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的間隔帶上就是 正確的。我們去用乙個...