2016-11-03 6 views
2

私はscikit-learnで学習しています。「Raich GarretaによるPythonの機械学習」で学習しています。ValueError:図のAxesインスタンス引数が見つかりませんでした。

jupyter Notebookでは、コードIn[1]からIn[7]までです。しかしIn[8]コードが動作しません。どちらが間違っていますか?

# In[1]: 
from sklearn import datasets 
iris = datasets.load_iris() 
X_iris, y_iris = iris.data, iris.target 
print X_iris.shape, y_iris.shape 

# In[2]: 
from sklearn.cross_validation import train_test_split 
from sklearn import preprocessing 
X, y = X_iris[:, :2], y_iris 
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=33) 
print X_train.shape, y_train.shape 

# In[3]: 
scaler = preprocessing.StandardScaler().fit(X_train) 
X_train = scaler.transform(X_train) 
X_test = scaler.transform(X_test) 

# In[4]: 
get_ipython().magic(u'matplotlib inline') 
import matplotlib 
from matplotlib import pylab 
import numpy as np 
import matplotlib.pyplot as plt 
colors = ['red', 'greenyellow', 'blue'] 
for i in xrange(len(colors)): 
    xs = X_train[:,0][y_train == i] 
    ys = X_train[:,1][y_train == i] 
    plt.scatter(xs, ys, c=colors[i]) 
plt.legend(iris.target_names) 
plt.xlabel('Sepal length') 
plt.ylabel('Sepal width') 

# In[5]: 
from sklearn.linear_model import SGDClassifier 
clf = SGDClassifier() 
clf.fit(X_train, y_train) 

# In[6]: 
print clf.coef_ 

# In[7]: 
print clf.intercept_ 

In [8]のコードは機能しません。

# In[8]: 
x_min, x_max = X_train[:,0].min() - .5, X_train[:,0].max() +.5 
y_min, y_max = X_train[:,1].min() - .5, X_train[:,1].max() +.5 
xs = np.arange(x_min, x_max, 0.5) 
fig, axes = plt.subplots(1,3) 
fig.set_size_inches(10, 6) 
for i in [0, 1, 2]: 
    axes[i].set_aspect('equal') 
    axes[i].set_title('Class '+ str(i) + ' versus the rest') 
    axes[i].set_xlabel('Sepal length') 
    axes[i].set_ylabel('Sepal width') 
    axes[i].set_xlim(x_min, x_max) 
    axes[i].set_ylim(y_min, y_max) 
    pylab.sca(axes[i]) 
    plt.scatter(X_train[:,0], X_train[:, 1], c=y_train, cmap=plt.cm.prism) 
    ys = (-clf.intercept_[i] - xs * clf.coef_[i, 0])/clf.coef_[i, 1] 
    plt.plot(xs, ys, hold=True) 
    plt.show() 

実行中に以下のエラーメッセージが表示されます。

enter image description here

答えて

0

plt.sca

+0

OKでしょう(軸[i])と

は、あなたの答えに、いくつかの説明を追加してください。 – MrLeeh

+0

import matplotlib.pyplotとしてplt pltにはメソッドscaがあり、pylabにはありません。 – user8124646

関連する問題