SVM入門 手寫數字識別

2021-10-23 22:06:10 字數 3419 閱讀 7712

svm是乙個constrained optimization problem(約束最優化問題),其中constrain是分指類,optimization是指使得margin最大

scikit-learn是用於python程式語言的免費軟體機器學習庫。它具有各種分類,回歸和聚類演算法,包括支援向量機,隨機森林,梯度提公升,k均值和dbscan,旨在與python數值和科學庫numpy和scipy進行互操作。

import matplotlib.pyplot as plt

from sklearn import datasets

from sklearn import svm

numbers = datasets.load_digits()

#numbers are features

print(numbers)

print(len(numbers.data))

#size of data = 1797

print(numbers.target)

# numbers.target cotains all lables([0 1 2 ... 8 9 8])

black_box = svm.svc(gamma=0.001, c=10000)

#svc = support vector classifier

x,y = numbers.data[:-888], numbers.target[:-888]

#x represents feature, 1797-888 as train dat, last 888 as test data

#numbers.data and numbers.target need one to one correspondence

black_box.fit(x,y)

#feed (x,y) to black_box to train

print(black_box.predict([numbers.data[-145]]))

#predict the last 145 digital

plt.imshow(numbers.images[-145])

plt.show()

識別結果:[4] 和對應的數字影象: 

SVM手寫數字識別

準備資料 基於二值影象構造資料 分析資料 對影象向量進行目測 訓練演算法 採用三種不同的方法,不同的引數 線性分類器 二次多項式核函式 徑向基核函式 測試並計算錯誤率 本實驗使用的訓練資料如下圖所示,為若干個手寫的 0 和 9 的數字影象。本實驗使用的測試資料如下圖所示,為若干個手寫的 0 和 9 ...

SVM手寫數字的識別 python

svm手寫數字的識別 python 1 svm手寫數字識別 識別步驟 1 樣本影象的準備。2 影象尺寸標準化 將影象大小都標準化為8 8大小。3 讀取未知樣本影象,提取影象特徵,生成影象特徵組。4 將未知測試樣本影象特徵組送入svm進行測試,將測試的結果輸出。識別 usr bin env pytho...

手寫數字識別

這幾天在想這做字元識別方面的程式,看了很多 但是發現 上的幾乎用處都不是特別的大,理論一大堆,但是用在程式裡面則很難實現,看到有些 上說用連碼法,但是連碼法對結構的變化太敏感了,但是也從一些 裡獲得了一些靈感,我採用的是網格匹配法,準備工作採集樣本,得到了樣本的網格資訊用於接下來的識別,當然也可 一...