pythonではじめる機械学習の勉強 p39のIn[16]について

fig,axes=plt.subplots(1,3,figsize=(10,3))
figが描画の領域全部のことでaxesが1つ1つの図を意味する。また引数は描画の領域が1つ、図が3つ、figsize(10,3)は描画の領域のサイズが横縦、10:3の比率を表す。

 

for n_neighbors,ax in zip([1,3,9],axes):
n_neighborsが1のときは1つ目の図、n_neighborsが2のときは2つ目の図、、、となる。

 

mglearn.plots.plot_2d_separator(clf,X,fill=True,eps=0.5,ax=ax,alpha=.4)
グラフを2つに分ける。第1引数は使うモデル、第2引数は分けたいデータ、fill=Trueでグラフの背景に色がつく、epsはどれぐらい拡大するか?(これは微妙) 、alphaは0から1までの値を取り1に近づくほどグラフの背景の色が濃くなる。

 

mglearn.discrete_scatter(X[:,0],X[:,1],y,ax=ax)
X[:,0]がXの1列目のデータ全てのこと、X[:1]がXの2列のデータ全て。第一引数がx軸、第2引数がy軸、第3引数がラベル(0か1)で実際にプロットする。

 

ax.set_title(f"{n_neighbors}neighbor(s)")  #タイトル。
ax.set_xlabel("feature0")  #x軸の名前
ax.set_ylabel("feature1")  #y軸の名前
補足としてf""はformat()と同じである。

 

axes[0].legend(loc=3)  
1つ目の図(axes[0])に対して凡例をつける。loc=3で左下に。
補足でloc=1で右上、loc=2で左上、loc=4で右下、loc='best'で自動的に良いところに凡例が置かれる。