我正在尝试使用python做一个小机器学习示例,我正在绘制几个坐标,然后预测位置如下:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style
style.use("ggplot")
from sklearn import svm
x = [1, 5, 2, 8, 3, 9]
y = [2, 8, 3, 8, 4, 11]
plt.scatter(x,y)
plt.show()
X = np.array([[1,2],[5,8],[2,3],[8,8],[3,4],[9,11]])
print(X)
y = [0,1,0,1,0,1]
clf = svm.SVC(kernel='linear', C = 1.0)
clf.fit(X,y)
print(clf.predict([10,10]))
当我运行它时会出现此错误:
C:\anaconda\python36\win64\431\lib\site-packages\sklearn\utils\validation.py:395: DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise 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)
我是机器学习的新手,很难从这里搬走。
答案 0 :(得分:2)
您没有收到错误,这是一个警告。预警仍将在警告信息后立即打印。
解决方案也列在警告中:
如果您的数据有,则使用X.reshape(-1,1)重塑数据 单个特征或X.reshape(1,-1),如果它包含单个样本。
它摆脱了所承诺的警告:
>> print(clf.predict(np.array([10,10]).reshape(1,-1)))
[1]