Support Vector Machine

Pythonの機械学習ライブラリscikit-lern(http://scikit-learn.org)を使って、簡単な画像認識をやってみました。

sk_digit01

テストには、ライブラりの手書きサンプルデータを利用します。上のように1797セットのデータがありdata、imagesが学習用ビットマップデータ、targetが教師用データになります。dataとimagesは共用体(?)になっているようです。imagesは表示用に使います。
data[1]には、下のような数字「1」のイメージがはいっています。
sk_digit02

sk_digit04
SVMという線形分類機を使い学習(fit)し、予測(predict)しました。
data[1]を予測すると、array([1]) つまり1と判定しました。
次にちょっと意地悪してデータimagesデータを加工してみました。すると4と判定しました。
下がそのビットマップデータです。

sk_digit03

次は、学習する回数によって、結果の精度がどれだけ変わるか簡単なテストをしてみました。

sk_digit05

10回学習したとき(fit1)と、500回学習したとき(fit2)、それぞれdata[1000]から100件分判定しました。
fit1では37か所、fit2では4か所間違いがありました。

これは、とても便利なライブラリです。

About

Categories: 未分類 タグ: ,