質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

766閲覧

scikit-learnでグラフが描画されない

tsuru1

総合スコア14

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/01/22 03:38

以下のコードを実行すると、グラフの描画領域は表示されますが、肝心のグラフと決定境界の可視化がされません。エラーは何も起きず。ライブラリのversionが原因かと思いupdateしましたが解決せず。原因が分からないのでご教示願います。

version
numpy 1.9.5
scikit-learn 0.24.1
matplotlib 3.3.3イメージ説明

from sklearn.svm import SVC
import numpy as np
import matplotlib.pyplot as plt

#学習、および決定境界線、マージン、サポートマージンを可視化する関数
def plot_boundary_margin_sv(X0, y0, X1, y1, kernel, C, xmin=-1, xmax=1, ymin=-1, ymax=1 ):
#サポートベクタのインスタンス化
svc = SVC(kernel=kernel, C=C)
# 学習
svc.fit(np.vstack((X0, X1)), np.hstack((y0, y1)))

fig, plt.subplots() ax.scatter(X0[:, 0], X0[:, 1], marker='o', label='class 0') ax.scatter(X1[:, 0], X1[:, 1], marker='x', label='class 1') #決定境界とマージンをプロット xx, yy = np.meshgrid(np.linspace(xmin, xmax, 100), np.linspace(ymin, ymax, 100)) xy = np.vstack([xx.ravel(), yy.ravel()]).T p = svc.decision_function(xy).reshape((100, 100)) ax.contour(xx, yy, p, colors='k', levels=[-1, 0, 1], alpha=0.5, linestyles=['--', '-', '--']) #サポートベクタをプロット ax.scatter(svc.support_vectors_[:, 0], svc.support_vectors_[:, 1], s=250, facecolors='none', edgecolors='black') ax.set_xlabel('x') ax.set_ylabel('y') ax.legend(loc='best')

plt.show()

#決定境界、マージン、サポートベクタをプロット
plot_boundary_margin_sv(X0, y0, X1, y1, kernel='linear', C=1e6)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2021/01/22 05:53

コードは「コードの挿入」で記入してください。 学習自体は上手くできているのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問