振り返り:ワインの近傍法
CoddyのMachine Learningジャーニー「教師あり学習」セクションの一部。レッスン 10/58。
チャレンジ
簡単この章の最初のマップと同じように、ワインのマップを描きましょう。スターターコードでは、178種類のワイン(2つの特徴、品種は0から2)を分割し、ksを用意して、グラフにラベルを付けています。
- 両方のデータセットをスケーリングし、ワインの訓練データで学習させます。
- テスト精度が最も高いkを出力します(ひとまず、より公平な判定方法は第7章で扱います)。
- そのkを使ってマップを塗りつぶします。
xxとyyのグリッドは100×100で、両軸とも-3から3までとし、予測結果をzzに入れます。 - スケーリングした訓練データのワインをその上に散布図として重ね、
namesからラベルを付けます。凡例も追加します。
アルコールとフラボノイドを使った場合:
Best k: 13 (test accuracy 0.956)Coddyがマップについて説明します。
自分で試してみよう
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
# 3つの栽培品種からなる178種類のワイン、クラスは0、1、2
wine = load_wine()
# 列6と12: flavanoidsとプロリン
X = wine.data[:, [6, 12]]
y = wine.target
names = ["cultivar A", "cultivar B", "cultivar C"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
ks = range(1, 32, 2) # k = 1, 3, 5, ..., 31
fig, ax = plt.subplots()
ax.set_title("Wine Neighbors")
ax.set_xlabel("flavanoids (scaled)")
ax.set_ylabel("proline (scaled)")
# 以下にコードを書いてください
教師あり学習のすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ