2 1 1 2 支援向量機(分類)(手寫體識別)

2021-09-11 17:27:12 字數 1027 閱讀 8406

import pandas as pd

import numpy as np

#匯入手寫體數字載入器

from sklearn.datasets import load_digits

#獲得手寫體數字的數碼影象資料,儲存在digits變數中

digits=load_digits()

digits.data.shape

#共有1797條,每幅由8*8=64的畫素矩陣表示

from sklearn.cross_validation import train_test_split

x_train,x_test,y_train,y_test=train_test_split(digits.data,digits.target,test_size=0.25,random_state=33)

y_train.shape

y_test.shape

from sklearn.preprocessing import standardscaler

#匯入基於線性假設的支援向量機分類器

from sklearn.svm import linearsvc

#特徵標準化

ss=standardscaler()

x_train=ss.fit_transform(x_train)

x_test=ss.fit_transform(x_test)

lsvc=linearsvc()

lsvc.fit(x_train,y_train)

y_predict=lsvc.predict(x_test)

#accuracy

print(lsvc.score(x_test,y_test))

from sklearn.metrics import classification_report

print(classification_report(y_test,y_predict,target_names=digits.target_names.astype(str)))

#將數字型別轉換為文字型

3 支援向量機

3.1 本質 基本模型是定義在特徵空間上的間隔最大的線性分類器。核技巧使之成為實質上的非線性分類器。學習策略是間隔最大化,可形式化為求解凸二次優化問題。等價於正則化的合頁損失函式的最小化問題。學習演算法是求解凸二次規劃的最優化演算法。理解支援向量機可以從簡至繁推進 線性可分支援向量機 硬間隔svm ...

02 37 支援向量機總結

目錄更新 更全的 機器學習 的更新 更有python go 資料結構與演算法 爬蟲 人工智慧教學等著你 支援向量機中有線性可分支援向量機 線性支援向量機 非線性支援向量機 線性支援回歸等演算法,算是前期比較繁瑣的乙個內容,如果感覺自己還是對間隔最大化 支援向量等知識點不太了解的,可以對著簡單的感知機...

6 3 支援向量機演算法 下)

svm演算法特性 1.1 訓練好的模型的演算法複雜度是由支援向量的個數決定的,而不是由資料的維度決定的。所以svm不太容易產生overfitting 1.2 svm訓練出來的模型完全依賴於支援向量 support vectors 即使訓練集裡面所有非支援向量的點都被去除,重複訓練過程,結果仍然會得到...