第2章 教師あり学習(36-39)
引き続き、アウトプット用で書きます。
ここらで再度復讐
K-最近傍法=
新しいデータセットを使って予測を行う場合、
訓練データの中から一番近い点を見つけるアルゴリズム。
複数ある場合は投票(確率の高いもの)で決まっていく
%matplotlib inline
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import mglearn
X , y = mglearn.datasets.make_forge()
X_train , X_test , y_train , y_test = train_test_split(X , y , random_state = 0)
clf = KNeighborsClassifier(n_neighbors=3)
#クラスを訓練させる
clf.fit(X_train , y_train)
#予測
clf.predict(X_test)
#モデルの評価
clf.score(X_test , y_test)
評価自体は85%とまずまず。
でも、近傍点を今回3としたけれどほかの点の場合はどうなっているのか?
例に倣って、今回は1,3,9 で試す。
#グラフの書式設定
fig , axes = plt.subplots(1,3,figsize=(10 , 3))
for n_neighbors , ax in zip([1,3,9],axes):
clif = KNeighborsClassifier(n_neighbors=n_neighbors).fit(X , y)
mglearn.plots.plot_2d_separator(clf,X,fill=True , eps=0.5 , ax=ax , alpha=.4)
mglearn.discrete_scatter(X[:,0] , X[:,1],y,ax=ax)
ax.set_title("{}".format(n_neighbors))
axes[0].legend(loc=3)
よしよし、ではやってみよう…
なんでー
ふむ。。。
わからん…
いや、まてよ、いやわからん。
先生!変わらんかったですよ!!