调用sklearn中的classification_report,ValueError: Mix type of y not allowed, got types set(['binary', 'continuous'])

  统计/机器学习 模型验证 Python    浏览次数: 2502
0

最近在学习机器学习的一些算法,在弄决策树的时候报了错

print classification_report(y,answer,target_names=['up','down'])


 File "G:\Anaconda2\lib\site-packages\sklearn\metrics\classification.py", line 1391, in classification_report

    labels = unique_labels(y_true, y_pred)

  File "G:\Anaconda2\lib\site-packages\sklearn\utils\multiclass.py", line 84, 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(['binary', 'continuous'])


我google一下,发现是说y的元素值类型都要一致才可以,但是我遍历了y,所有的元素都是

np.float64的类型,并不存在类型不一致的问题呀

 

莫斯   2017-05-13 20:05



   1个回答 
2

classification_report(y,answer,target_names=['up','down'])中y必须是整数型,answer也必须是整数型,估计你里面有小数。

你可以这样试试


>>> y = map(lambda x: int(x), y)

>>> answer = map(lambda x: int(x), answer)

>>> print classification_report(y,answer,target_names=['up','down'])



派大星   2017-05-13 21:41

感谢,确实可以了,确实不清楚必须要整数型,因为在前面的一个练习里面是没有问题的,刚刚看了他的数据类型也是float64的,不懂是不是他数据量才10个的原因,我自己这个例子的数据量是30万,然后就出错了,我将y转换为np.int64也不行,用你的方法可以了,非常感谢 - 莫斯   2017-05-13 22:53


  相关主题

sklearn GridSearchCV中的refit是什么意思   1回答

sklearn cross_val_score中的参数pre_dispatch   1回答

sklearn计算MAPE   1回答

sklearn cross_val_score怎么同时对多个scoring进行验证   2回答

sklearn classification_report里的support是什么意思   1回答

关于sklearn.model_selection.PredefinedSplit的用法   1回答

sklearn里LogisticRegressionCV中的参量Cs什么意思   1回答

python sklearn模型中random_state参数的意义   2回答

sklearn的模型如何保存下来?   2回答

sklearn训练classifier的时候报错Unknown label type   1回答

查看sklearn版本   1回答

sklearn.linear_model.SGDClassifier中的参数n_iter设置问题   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!