Scikit-learn 教程给我一个折旧错误,如何更新?
Scikit-learn tutorial gives me a depreciation error, how to update?
我获得了一份 Mastering Machine Learning with 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()
运行就好了。但是,当我转到第二个时:
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: .68
有办法解决这个问题吗?
尝试以下操作:
print ("A 12-inch pizza should cost: $%.2f" % model.predict(np.array([12]).reshape(1, -1)[0]))
我使用 reshape(1,-1)
将二维数组传递给 predict
函数。
代码如下:
print('A ' + diameter + ' inch pizza should cost: $%.2f' % model.predict([d] [0]))
documentation pages 提供了有关 predict
方法的更多详细信息:
sklearn.svm.libsvm.predict()
参数:
X : array-like, dtype=float, size=[n_samples, n_features]
我获得了一份 Mastering Machine Learning with 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()
运行就好了。但是,当我转到第二个时:
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: .68
有办法解决这个问题吗?
尝试以下操作:
print ("A 12-inch pizza should cost: $%.2f" % model.predict(np.array([12]).reshape(1, -1)[0]))
我使用 reshape(1,-1)
将二维数组传递给 predict
函数。
代码如下:
print('A ' + diameter + ' inch pizza should cost: $%.2f' % model.predict([d] [0]))
documentation pages 提供了有关 predict
方法的更多详细信息:
sklearn.svm.libsvm.predict()
参数:
X : array-like, dtype=float, size=[n_samples, n_features]