3

嗨,我是这里的 scikit 新手。我正在尝试训练在 3 个类之间给出一系列浮点数的计算机。我将这些类分类为 0、0.5 和 1。我还尝试了 0、1.0 和 2.0。我仍然收到以下错误:

File "/Library/Python/2.7/site-packages/sklearn/utils/multiclass.py", line 85, in     unique_labels
raise ValueError("Mix type of y not allowed, got types %s" % ys_types)
ValueError: Mix type of y not allowed, got types set(['continuous', 'multiclass'])

我不知道那个错误是什么意思

4

2 回答 2

6

尝试对目标标签使用整数类型。['a', 'b', 'c']或者,也许更好的是,使用类似但具有更多描述性名称的字符串标签。

如果您检查此文件的代码multiclass.py代码在此处)并查找该函数type_of_target,您会发现它已针对这种情况进行了详细记录。

因为某些数据被视为float类型(何时0.5包含在内),它会认为您已经获得了连续值输出,这不适用于多类离散分类。

另一方面,它看起来[0, 1.0, 2.0]像是一个整数和两个floats,这就是为什么你得到两个continuousmulticlass。将最后一个示例切换为[0, 1, 2]应该可以工作。该文档还使听起来切换到[0.0, 1.0. 2.0]也可以,但要小心并首先进行测试。

于 2013-09-30T21:18:03.583 回答
0

没有代码很难确定,但我猜你的 y 数据的形状不是预期的。

例如,当我的代码抛出此错误时,这是​​因为我试图将 y 数据以 (60000, 10, 2) 的形状传递给分类报告,而它期望它的形状为 (60000, 10)

我正在重新运行我多次调用 to_categorical(y_test) 的单元格...当我将代码加载到正确的脚本中并运行它时,它运行良好:)

于 2018-12-07T16:11:49.880 回答