直接上**了:
import numpy as np
from sklearn.svm import svc
from sklearn.preprocessing import standardscaler
from sklearn.model_selection import train_test_split
defload_data
(filename)
: data = np.genfromtxt(filename, delimiter=
'\t'
) x = data[:,
1:]# 資料特徵
y = data[:,
0].astype(
int)
# 標籤
scaler = standardscaler(
)# 採用標準化形式
x_std = scaler.fit_transform(x)
# 標準化
# 將資料劃分為訓練集和測試集,test_size=.5表示50%的測試集
x_train, x_test, y_train, y_test = train_test_split(x_std, y, test_size=.5)
print
(len
(x_train)
,len
(x_test)
,len
(y_train)
,len
(y_test)
)return x_train, x_test, y_train, y_test
defsvm_c
(x_train, x_test, y_train, y_test)
: predictor = svc(gamma=
'scale'
, c=
1.0, decision_function_shape=
'ovr'
, kernel=
'rbf'
) predictor.fit(x_train, y_train)
# answer = predictor.predict(x_test) **
print
(predictor.score(x_test, y_test)
)# print(predictor.support_vectors_) # 獲取支援向量
# print(predictor.support_) # 獲取支援向量的索引
# print(predictor.n_support_) # 獲取每個類的支援向量數
if __name__ ==
'__main__'
: svm_c(
*load_data(
'txt/10/frame505/all.txt'
))
我的txt資料集中,第一列是標籤,也就是最後的分類結果,後面幾列是特徵,所以load_data()函式中的資料提取具體列大家應該可以看懂了 支援向量機(SVM)演算法
支援向量機 support vector machine 是一種分類演算法,通過尋求結構化風險最小來提高學習機泛化能力,實現經驗風險和置信範圍的最小化,從而達到在統計樣本量較少的情況下,亦能獲得良好統計規律的目的。通俗來講,它是一種二類分類模型,其基本模型定義為特徵空間上的間隔最大的線性分類器,即支...
分類演算法SVM(支援向量機
支援向量機 support vector machine svm 的主要思想是 建立乙個最優決策超平面,使得該平面兩側距離該平面最近的兩類樣本之間的距離最大化,從而對分類問題提供良好的泛化能力。對於乙個多維的樣本集,系統隨機產生乙個超平面並不斷移動,對樣本進行分類,直到訓練樣本中屬於不同類別的樣本點...
SVM 支援向量機演算法概述
對不起,看到好東西忍不住搬過來了推薦大家去這看這裡 一 svm的背景簡介 支援向量機 support vector machine 是cortes和vapnik於1995年首先提出的,它在解決小樣本 非線性及高維模式識別中表現出許多特有的優勢,並能夠推廣應用到函式擬合等其他機器學習問題中 10 支援...