【问题标题】:Sklearn: .predict returns an error PythonSklearn:.predict 返回错误 Python
【发布时间】:2018-05-20 17:27:53
【问题描述】:

我用 pip 安装了 sklearn,当我使用 .predict 函数时,它返回了这个错误:

Traceback (most recent call last):
   File "C:/Users/Roberto/PycharmProjects/AI projects/New.py", line 8, in <module>
print(clf.predict([150, 0]))
File "C:\Users\Roberto\AppData\Local\Programs\Python\Python36-32\lib\site-packages\sklearn\tree\tree.py", line 412, in predict
X = self._validate_X_predict(X, check_input)
File "C:\Users\Roberto\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\sklearn\tree\tree.py", line 373, in _validate_X_predict
X = check_array(X, dtype=DTYPE, accept_sparse="csr")
File "C:\Users\Roberto\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\sklearn\utils\validation.py", line 441, in check_array
"if it contains a single sample.".format(array))
ValueError: Expected 2D array, got 1D array instead:
array=[ 150.    0.].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

我的代码是:

from sklearn import tree
features = [[140, 1], [130, 1], [150, 0], [170, 0]]
labels = [0, 0, 1, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(features, labels)
print(clf.predict([150, 0]))

这是怎么回事?

【问题讨论】:

  • 您是否阅读了错误消息并尝试按照他们告诉您的操作?

标签: python scikit-learn


【解决方案1】:

使用此代码:

print(clf.predict([[150, 0]]))

【讨论】:

    【解决方案2】:

    提示在错误消息中:“...如果它包含单个样本。” 问题在于,通常需要预测的样本列表而不仅仅是一个。传递给predict 的数据应与传递给fitfeatures 格式相同,即二维数组。试试

    clf.predict([[150, 0]])
    

    【讨论】:

      【解决方案3】:

      问题是你传递的是单个样本,如果你传递[[150,0]]就没有问题,像这样:

      print(clf.predict([[150, 0]]))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-25
        • 1970-01-01
        • 2017-10-13
        • 2022-11-30
        • 2015-06-28
        • 1970-01-01
        • 2023-01-19
        相关资源
        最近更新 更多