ValueError:未知标签类型:使用决策树分类器和使用自定义数据集

时间:2016-10-24 09:58:09

标签: python numpy scikit-learn decision-tree

以下是我的代码

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>

1 个答案:

答案 0 :(得分:3)

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

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