嗨,我在这里是一个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'])
我不知道那个错误意味着什么
答案 0 :(得分:6)
尝试为目标标签使用整数类型。或者,或许更好,使用['a', 'b', 'c']
之类的字符串标签,但使用更具描述性的名称。
如果您检查此文件的代码multiclass.py
(code is here)并查找函数type_of_target
,您会发现此案例已有详细记录。
由于某些数据被视为float
类型(当包含0.5
时),因此它会相信您有连续值输出,这对于多类离散分类无效。
另一方面,它会看[0, 1.0, 2.0]
,就像它是一个整数和两个floats
,这就是为什么你同时得到continuous
和multiclass
的原因。将最后一个示例切换为[0, 1, 2]
应该有效。文档也让人觉得切换到[0.0, 1.0. 2.0]
也会起作用,但要小心并先测试一下。
答案 1 :(得分:0)
没有代码很难确定,但是我的猜测是您y数据的形状不是预期的。
例如,当我的代码引发此错误时,这是因为我试图将y数据期望以(60000,10)的形式传递给分类为(60000,10,2)的数据
我正在重新运行不止一次调用to_categorical(y_test)的单元...当我将代码加载到适当的脚本中并运行它时,它可以正常工作:)