#06:特徴量に明度のヒストグラムを利用しよう
ここでは、機械学習の入力として、画像のピクセル値のヒストグラムを利用してみましょう。
前のチャプターと比べて、分類結果の精度がどのように変わるか比較してみましょう。
img = cv2.imread(画像ファイル, cv2.IMREAD_GRAYSCALE)
hist = np.histogram(img.ravel(), 256, [0,256])
import sklearn
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# 教師データとテストデータ、教師データの答え、テストデータの答えに分割する
X_train, X_test, y_train, y_test = train_test_split(images_data, targets_data['Kirishima'], random_state=0)
# 分割結果を確認する
print(X_train.shape)
print(X_test.shape)
print(y_train.shape)
print(y_test.shape)
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)
print(knn.predict(np.array([X_test[0]])))
print(knn.predict(np.array([X_test[0], X_test[1], X_test[2], X_test[3]])))
print(knn.predict(X_test))
y_pred = knn.predict(X_test)
print(np.mean(y_pred == y_test))