支援向量機中SVM演算法 sklearn庫的實現

2021-10-24 22:05:16 字數 1514 閱讀 9397

直接上**了:

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 支援...