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