SVR支援向量機的Demo實現

2021-10-03 21:29:19 字數 1632 閱讀 5130

簡單介紹:svr全稱是support vector regression,是svm(支援向量機support vector machine)對回歸問題的一種運用。

資料來源:(a.xlsx)

**實現:(需要安裝sklearn模組) 矩陣注釋部分是中間輸出,可以方便理解原理

import numpy as np 

import matplotlib.pyplot as plt

import pandas as pd

from sklearn.preprocessing import standardscaler

from sklearn.svm import svr

#讀取資料

dataset=pd.read_excel("a.xlsx")

x=dataset.iloc[:,1:2].values #輸出為n*1(1列)

y=dataset.iloc[:,2:3].values #輸出為1*n

#下面處理資料 標準化

sc_x=standardscaler()

sc_y=standardscaler()

x=sc_x.fit_transform(x)

y=sc_y.fit_transform(y)

print(x)

"""[[-1.5666989 ]

[-1.21854359]

[-0.87038828]

[-0.52223297]

[-0.17407766]

[ 0.17407766]

[ 0.52223297]

[ 0.87038828]

[ 1.21854359]

[ 1.5666989 ]]

"""#開始svr回歸

regressor = svr(kernel = 'rbf')

regressor.fit(x,y)

y_pred=regressor.predict(sc_x.transform(np.array([[0.1]])))

#print(y_pred) [-0.52548721]

#將y_pred轉換為正常值

y_pred=sc_y.inverse_transform(y_pred)

#print(y_pred) [100255.85072346]

#影象中顯示

plt.scatter(x,y,color = 'blue')

plt.plot(x,regressor.predict(x),color='yellow')

plt.title("svr**曲線")

plt.xlabel("position level")

plt.ylabel("salary")

plt.show()

輸出截圖:

that's all

回歸 支援向量機回歸 SVR

支援向量機回歸 svr 是支援向量機在回歸問題上的應用模型。支援向量機回歸模型基於不同的損失函式產生了很多變種。本文僅介紹基於 epsilon 不敏感損失函式的svr模型。找到乙個分離超平面 超曲面 使得期望風險最小。epsilon 損失函式,就是當誤差小於 epsilon 時,該誤差可忽略。反之,...

支援向量機(SVM) 支援向量回歸(SVR)

1 支援向量機 svm 是一種比較好的實現了結構風險最小化思想的方法。它的機器學習策略是結構風險最小化原則 為了最小化期望風險,應同時最小化經驗風險和置信範圍 支援向量機方法的基本思想 1 它是專門針對有限樣本情況的學習機器,實現的是結構風險最小化 在對給定的資料逼近的精度與逼近函式的複雜性之間尋求...

SVR支援向量回歸例子

svr軟體包的安裝 使用svr模型,得到輸入向量x x包含3個變數x1,x2,x3 到輸出向量y y只包含乙個變數 之間的對映關係,也就是計算y f x1,x2,x3 函式的f x1,x2,x3時簡單的加法運算 y x1 x2 x3 訓練個數 訓練需要的時間 秒 誤差 相關係數 100 0.0028...