質問編集履歴

1 SVMのコードを全文掲載しました

shibattyo

shibattyo score 10

2019/02/01 16:03  投稿

SVMを可視化に際して表示される複数の境界線の理由について
### 前提・実現したいこと
SVMを用いて領域分類した結果を可視化したいと思っています。
ここに質問の内容を詳しく書いてください。
その際に、機械学習のコードを参考にコーディングをjupyter notebookで行いました。
すると境界線とは別に線が何本か引かれているグラフが表示されてしまいました。
この線は何を表しているのか、どうすれば消えるのかを解決したいです。
### 発生している問題・エラーメッセージ
```
エラーメッセージ
```
### 該当のソースコード
```python
ソースコード
```def plot_decision_regions(X, y, classifier, test_idx=None, resolution=0.02):
AV_df = pd.read_csv("AV1.0~3.0 nomal2.csv")
x = AV_df.iloc[0:75, [0,1]].values
y = AV_df.iloc[0:75, 2].values
model = SVC(kernel = "rbf", random_state = 0, C = 10, gamma = 100 )
model.fit(x, y)
def plot_decision_regions(X, y, classifier, test_idx=None, resolution=0.02):
   markers = ('s','x','o','^','v')
   colors = ('red','blue','lightgreen','gray','cyan')
   cmap = ListedColormap(colors[:len(np.unique(y))])
   
   x1_min, x1_max = X[:, 0].min() -0.015, X[:, 0].max() +0.055
   x2_min, x2_max = X[:, 1].min() -0.02, X[:, 1].max() +0.02
   
   xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution), np.arange(x2_min, x2_max, resolution))
   Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)
   Z = Z.reshape(xx1.shape)
   plt.contourf(xx1,xx2,Z,alpha = 0.4, cmap = cmap)
   plt.xlim(xx1.min(), xx1.max())
   plt.ylim(xx2.min(), xx2.max())
   
   for idx, cl in enumerate(np.unique(y)):
       plt.scatter(x=X[y == cl, 0], y=X[y == cl, 1],alpha = 0.8, c= cmap(idx), marker= markers[idx], label = cl)
       
   if test_idx:
       X_test, y_test = X[test_idx, :], y[test_idx]
       plt.scatter(X_test[:,0], X_test[:,1] ,c='', alpha=1.0, linewidth = 1, marker='o', s =55,label = 'test set')![イメージ説明](752036de8e4c37bb5568dd5da108dc00.jpeg)
       plt.scatter(X_test[:,0], X_test[:,1] ,c='', alpha=1.0, linewidth = 1, marker='o', s =55,label = 'test set')
plot_decision_regions(x, y, classifier = model)
```
### 試したこと
ここに問題に対して試したことを記載してください。
### 補足情報(FW/ツールのバージョンなど)
![イメージ説明](b59c33b4eb9fe742994bf53c61022855.jpeg)
ここにより詳細な情報を記載してください。
  • Python

    22234 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る