今天學(xué)習(xí)了SVM的基本思想
通過(guò)代碼實(shí)現(xiàn)認(rèn)識(shí)了SVM,并舉例用sklearn中的SVC庫(kù)函數(shù)來(lái)實(shí)現(xiàn)人臉識(shí)別,用SVR預(yù)測(cè)波士頓地區(qū)的房?jī)r(jià)。
代碼實(shí)現(xiàn)鏈接如下:SVM算法思想
其中用SVR預(yù)測(cè)波士頓地區(qū)房?jī)r(jià)的代碼如下:
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVR
from sklearn.metrics import r2_score,mean_squared_error,mean_absolute_error
import numpy as np
boston =load_boston()
#print(boston.DESCR)
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=42)
#訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)標(biāo)準(zhǔn)化
scale =StandardScaler()
x_train =scale.fit_transform(x_train)
x_test =scale.transform(x_test)
y_train =scale.fit_transform(y_train.reshape(-1,1))
y_test =scale.transform(y_test.reshape(-1,1))
#線性核函數(shù)配置支持向量機(jī)
linear_svr =SVR(kernel ='linear')
#訓(xùn)練
linear_svr.fit(x_train,y_train.ravel())
#預(yù)測(cè),保存預(yù)測(cè)結(jié)果
linearpredict =linear_svr.predict(x_test)
#模型評(píng)估
print("默認(rèn)評(píng)估值為:",linear_svr.score(x_test,y_test))
print("R_squared值為:",r2_score(y_test,linear_svr_v_predict))
print("均方誤差為:",mean_squared_error(scale.inverse_transform(y_test),scale.inverse_transform(linear_svr_v_predict)))
print("平均絕對(duì)誤差為:",mean_absolute_error(scale.inverse_transform(y_test),scale.inverse_transform(linearpredict)))