Python 機械学習による手書き文字認識
データの表示
読み込み
from sklearn import datasets
digits = datasets.load_digits()
# 画像数
len(digits.images)
# 画像配列
digits.images[0]
画像表示
import matplotlib.pyplot as plt
plt.imshow(digits.images[0])
plt.show()
最初の15個表示
for i in range(15):
plt.subplot(3,5,i+1)
plt.axis("off")
plt.title(str(digits.target[i]))
plt.imshow(digits.images[i],cmap="gray")
学習
digits = datasets.load_digits()
x = digits.images
y = digits.target
x = x.reshape((-1, 64)) # 二次元配列を一次元配列に変換
# 学習用とテスト用に分割
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
# 学習
from sklearn.svm import SVC
model = SVC(C=100.,gamma=0.001)
model.fit(x_train, y_train)
テスト
# 画像
plt.imshow(x_test[0].reshape(8,8))
plt.show()
# 予測
model.predict([x_test[0]])
# 正解
y_test[0]
# 正解率
model.score(x_test,y_test)