我在尝试scikit学习库。我导入了iris数据集,并尝试训练knn算法来预测某些结果。代码如下:
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
iris = datasets.load_iris()
knn = KNeighborsClassifier(n_neighbors=1)
X = iris.data
y = iris.target
print X.shape
print y.shape
#training the model
knn.fit(X, y)
knn.predict([3, 4, 5, 2])
但我得到了以下错误:
^{pr2}$我在谷歌上搜索,找到了一些解决办法。我尝试使用X = X.reshape(-1, 1)
和X = X.reshape(1, -1)
,但是我得到了以下错误:
Traceback (most recent call last):
File "E:/Analytics Practice/Social Media Analytics/Python Services/DataAnalysis/sk-learn-dir/test.py", line 13, in <module>
knn.fit(X, y)
File "C:\python-venv-test-2.7.10\lib\site-packages\sklearn\neighbors\base.py", line 778, in fit
X, y = check_X_y(X, y, "csr", multi_output=True)
File "C:\python-venv-test-2.7.10\lib\site-packages\sklearn\utils\validation.py", line 520, in check_X_y
check_consistent_length(X, y)
File "C:\python-venv-test-2.7.10\lib\site-packages\sklearn\utils\validation.py", line 176, in check_consistent_length
"%s" % str(uniques))
ValueError: Found arrays with inconsistent numbers of samples: [150 600]
knn算法需要在scikit-learn中训练的维数的正确格式是什么?在
谢谢@ttthomassss的帮助。我做错了什么:
当我写
[3, 4, 5, 2]
时,python将其解释为一个4X1维数组,但当我编写[[3, 4, 5, 2]]
时,python将其解释为1X4数组。因为它是一个数据点,对于不同的特性有4个不同的值,所以我必须用[[3, 4, 5, 2]]
输入预测模型。下面是帮助我计算出两个数组的维数的代码:输出如下:
^{pr2}$相关问题 更多 >
编程相关推荐