0

私はのマスターを取得しました。scikit-learnを学んで学習しました。しかし、コードの良さは時代遅れになっているようです。Scikit-learnチュートリアルでは、減価償却のエラーが表示されます。

本の最初のコードスニペット、

import matplotlib.pyplot as plt 
X = [[6], [8], [10], [14], [18]] 
y = [[7], [9], [13], [17.5], [18]] 
plt.figure() 
plt.title('Pizza price plotted against diameter') 
plt.xlabel('Diameter in inches') 
plt.ylabel('Price in dollars') 
plt.plot(X, y, 'k.') 
plt.axis([0, 25, 0, 25]) 
plt.grid(True) 
plt.show() 

はうまく走りました。私は2番目のものに移動したときただし、:

from sklearn.linear_model import LinearRegression 
# Training data 
X = [[6], [8], [10], [14], [18]] 
y = [[7], [9], [13], [17.5], [18]] 
# Create and fit the model 
model = LinearRegression() 
model.fit(X, y) 
print 'A 12" pizza should cost: $%.2f' % model.predict([12])[0] 

をそれは私にエラーを与えた:

A 12-inch pizza should cost: $%.2f 
/home/dave/anaconda3/lib/python3.5/site-packages/sklearn/utils/validation.py:386: DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and willraise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample. 
    DeprecationWarning) 
Traceback (most recent call last): 
    File "002----Chapter2-B.py", line 11, in <module> 
    print ("A 12-inch pizza should cost: $%.2f") % model.predict([12])[0] 
TypeError: unsupported operand type(s) for %: 'NoneType' and 'float' 

それは私にこれを与えている必要がありますとき:

A 12" pizza should cost: $13.68 

がありますとにかくこれを修正するには?

+0

確かに、教科書はscikitのバージョンを指定する必要があります。 – joeln

+0

私はAnacondaを使用していますが、バージョンを変更することはできません。 – Rich

答えて

1

は、以下のことを試してみてください。

print ("A 12-inch pizza should cost: $%.2f" % model.predict(np.array([12]).reshape(1, -1)[0])) 

私はpredict関数に2次元配列を渡すためreshape(1,-1)を使用しました。

+0

それは私に 'SyntaxError:予期しないEOFの解析中'エラーを与えました。 – Rich

+0

申し訳ありませんが、私は ')'最後に –

+0

ファイルのfisrt行に '輸入numpyとしてnp'を書く –

関連する問題