【问题标题】:ValueError: Unknown label type: array while using Decision Tree Classifier and using a custom datasetValueError:未知标签类型:使用决策树分类器和使用自定义数据集时的数组
【发布时间】:2017-03-06 01:25:09
【问题描述】:

下面是我的代码

dataset = np.genfromtxt('train_py.csv', dtype=float, delimiter=",")
X_train, X_test, y_train, y_test = train_test_split(dataset[:,:-1],dataset[:,-1], test_size=0.2,random_state=0)
model = tree.DecisionTreeClassifier(criterion='gini')
#y_train = y_train.tolist()
#X_train = X_train.tolist()
model.fit(X_train, y_train)
model.score(X_train, y_train)
predicted= model.predict(x_test)

我正在尝试对使用 numpy 库导入的自定义数据集使用决策树分类器。但是当我尝试拟合模型时,我得到了一个 ValueError,它在下面给出。我尝试同时使用 numpy 数组和非 numpy 数组(例如列表),但似乎仍然不知道是什么导致了错误。任何帮助表示赞赏。

    Traceback (most recent call last):
  File "tree.py", line 19, in <module>
    model.fit(X_train, y_train)
  File "/usr/local/lib/python2.7/dist-packages/sklearn/tree/tree.py", line 177, in fit
    check_classification_targets(y)
  File "/usr/local/lib/python2.7/dist-packages/sklearn/utils/multiclass.py", line 173, in check_classification_targets
    raise ValueError("Unknown label type: %r" % y)

ValueError: Unknown label type: array([[ 252.3352],....<until end of array>

【问题讨论】:

    标签: python numpy scikit-learn decision-tree


    【解决方案1】:

    python (scikit-learn) 希望你传递类似标签的东西,因此:整数、字符串等。浮点数不是有限空间的典型编码形式,它们用于回归。

    文档: fitX_train 训练输入样本。在内部,它将被转换为 dtype=np.float32 并且如果将稀疏矩阵提供给稀疏 csc_matrix。

    【讨论】:

    • 谢谢。传递 Y_train.astype(int)X_train.astype(int) 成功了
    猜你喜欢
    • 2016-09-06
    • 2017-06-06
    • 2019-04-20
    • 2019-06-04
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    • 2021-09-23
    • 2020-07-17
    相关资源
    最近更新 更多