最近在学习机器学习的一些算法,在弄决策树的时候报了错
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的类型,并不存在类型不一致的问题呀
1个回答
classification_report(y,answer,target_names=['up','down'])中y必须是整数型,answer也必须是整数型,估计你里面有小数。
你可以这样试试
>>> y = list(map(lambda x: int(x), y))
>>> answer = list(map(lambda x: int(x), answer))
>>> print(classification_report(y,answer,target_names=['up','down']))
SofaSofa数据科学社区DS面试题库 DS面经
感谢,确实可以了,确实不清楚必须要整数型,因为在前面的一个练习里面是没有问题的,刚刚看了他的数据类型也是float64的,不懂是不是他数据量才10个的原因,我自己这个例子的数据量是30万,然后就出错了,我将y转换为np.int64也不行,用你的方法可以了,非常感谢
-
莫斯
2017-05-13 22:53
相关讨论
sklearn cross_val_score中的参数pre_dispatch
sklearn GridSearchCV中的refit是什么意思
sklearn.model_selection.cross_val_predict怎么固定random_state?
sklearn cross_val_score怎么同时对多个scoring进行验证
怎么自定义sklearn GridSearchCV中评估函数的阈值
关于sklearn.model_selection.PredefinedSplit的用法
随便看看
python(matplotlib)中如何把折线图和柱状图画在一起?
keras里sparse_categorical_crossentropy和categorical_crossentropy什么不同?