『Pythonではじめる機械学習(2.3.2.2 KNeighborsClassifierの解析)』のサンプルコードについてです。
以下のコードを打つとグラフが3つ表示されるはずなのですが、代わりにオブジェクトが返って来てしまいます。
何が問題でしょうか?
python
1for n_neighbors, ax in zip([1,3,9], axes): 2 clf = KNeighborsClassifier(n_neighbors=n_neighbors).fit(X, y) 3 mglearn.plots.plot_2d_separator(clf, X, fill=True, eps=0.5, ax=ax, alpha=.4) 4 mglearn.discrete_scatter(X[:, 0], X[:, 1], y, ax=ax) 5 ax.set_title("{} neighbor(s)".format(n_neighbors)) 6 ax.set_xlabel("feature 0") 7 ax.set_ylabel("feature 1") 8axes[0].legend(loc=3)
Python
1<matplotlib.legend.Legend at 0x1247fc2b0>
どんな環境(方法)でコードを実行していますか? Jupyterやターミナル、IDEなどいろいろあるはずです。そのコードでグラフが表示されるのは限られた環境だけです(Jupyterならいけるはず)。
ご回答ありがとうございます。
環境はJupyterです。
他のサンプルコード(Ex. mglearn.plots.plot_knn_classification(n_neighbors=1))
ではグラフを描画できるのですが、このコードだけ出来ないです。。
解決しました。
fig, axes = plt.subplots(1, 3, figsize=(10,3))
と、
for n_neighbors, ax in zip([1,3,9], axes):
clf = 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("{} neighbors(s)".format(n_neighbors))
ax.set_xlabel("feature 0")
ax.set_ylabel("feature 1")
axes[0].legend(loc=3)
を別々のタブ?に記入していたのが原因のようです。
(fig, axes = plt.subplots(1, 3, figsize=(10,3)))で一回実行したため、空のグラフが描画されてしまった)
ご回答ありがとうございました。
ご報告ありがとうございます。そこまで思い浮かばなかったですが、言われてみればなるほどです。
回答1件
あなたの回答
tips
プレビュー