支援向量:真正幫助決策最優線性分類模型的資料點(注意是點)。何為支援向量,說白了就是一大堆決策之中最靠譜的那個!
使用支援向量機(分類)對手寫體數字影象進行識別:
# -*- coding: utf-8 -*-
#1、手寫體資料讀取**樣例
#從sklearn.datasets裡面匯入手寫體數字載入器
from sklearn.datasets import load_digits
#從通過資料載入器獲得手寫體數字的數碼影象資料並儲存在digits變數中
digits=load_digits()
print digits.data.shape
#2、手寫體資料分割樣例
#從sklearn.cross_validation import train_test_split
#2、從sklearn.model_selection import train_test_split
from sklearn.model_selection import train_test_split
#隨機選取75%\25%的資料作為訓練和測試的樣本資料
x_train,x_test,y_train,y_test = train_test_split(digits.data,digits.target,test_size=0.25,random_state=33)
#分別檢視訓練與測試資料規模
print y_train.shape
print y_test.shape
#3、使用支援向量機分類對手寫體數字影象進行識別
#從sklearn.preprocessing裡面匯入資料標準化模組sdandardscaler
from sklearn.preprocessing import standardscaler
#從sklearn.svm裡面匯入基於線性假設的支援向量機分類器linearsvc
from sklearn.svm import linearsvc
#仍然需要對訓練和測試的特徵資料進行標準化
ss =standardscaler()
x_train=ss.fit_transform(x_train)
x_test=ss.transform(x_test)
#初始化線性假設的支援向量機分類器linearsvc
lsvc=linearsvc()
#進行模型訓練
lsvc.fit(x_train,y_train)
#利用訓練好的模型對測試樣本的數字類別進行**,**結果儲存在變數y_predict中
y_predict=lsvc.predict(x_test)
print y_predict
#4、在支援向量機模型分類的對手寫體數碼影象識別能力的評估
#使用模型自帶的評估函式進行準確性評測
print 'the accuracy of linearsvc is :',lsvc.score(x_test,y_test)
#依然使用sklearn.metric裡面的classification_report
from sklearn.metrics import classification_report
print classification_report(y_test,y_predict,target_names=digits.target_names.astype(str))
鳴謝:《機器學習及實戰》編者
機器學習實戰 機器學習實戰 支援向量機(一)
從分類效力來講,svm在無論線性還是非線性分類中,都十分出色 現在桌子上有一些雜亂的 小球 我們想要將他們分開 我們可以放一根棒棒上去 是不是看起來還行,小棍將藍色球和紅色球分開。但這時,又有個人把一顆紅色的小球放在了棍子的另一邊,這樣就有乙個球似乎落在了錯誤的一側,我們可能需要調整棒棒 所謂,sv...
機器學習實戰 支援向量機
有些人認為svm是最好的現成的分類器,這裡說的現成值得是分類器不加修改即可直接使用。同時,這意味著在資料上應用基本形式的svm分類器就可以得到低錯誤率的結果。svm能夠對訓練集之外的資料點作出很好的分類決策。svm有很多實現,本章只關注其中最流行的一種實現,即序列最小優化 smo 演算法。優點 泛化...
機器學習實戰之KMeans
from numpy import def loaddataset filename datamat fr open filename for line in fr.readlines curline line.strip split t fltline map float,curline retu...