ValueError:未知标签类型:使用 cross_validation 时

Posted

技术标签:

【中文标题】ValueError:未知标签类型:使用 cross_validation 时【英文标题】:ValueError: Unknown label type: while using cross_validation 【发布时间】:2017-06-06 08:23:04 【问题描述】:

代码如下:

import pandas as pd
import numpy as np
from sklearn.cross_validation import cross_val_score
from sklearn.neighbors import KNeighborsClassifier
data = pd.read_csv('http://www-bcf.usc.edu/~gareth/ISL/Advertising.csv',index_col = 0)
X = data[['TV','Radio','Newspaper']]
y = data[['Sales']]
y = np.asarray(y)
y = np.ravel(y)
knn = KNeighborsClassifier(n_neighbors = 5)
scores = cross_val_score(knn,X,y,cv=10,scoring = 'accuracy')
print(scores)

我收到以下错误

C:\Users\Kunal Desai\Anaconda3\lib\site-packages\sklearn\utils\multiclass.py in check_classification_targets(y)
171     if y_type not in ['binary', 'multiclass', 'multiclass-multioutput', 
172             'multilabel-indicator', 'multilabel-sequences']:
--> 173         raise ValueError("Unknown label type: %r" % y)
174 
175 

ValueError: Unknown label type:

我是 cross_validation 和 scikit-learn 的新手

谁能帮帮我?

【问题讨论】:

我得到了这样的东西,它是 b/c 我的 pd.Series 是一个对象而不是一个 int 【参考方案1】:

如果你想预测一个连续变量,你需要回归而不是分类。 KNeighborsRegressor 与 KNeighborsClassifier。

【讨论】:

我尝试使用 KNeighborsRegressor..但它仍然给出同样的错误 实际上你会得到一个不同的错误,说不支持连续。那是因为您说 score="accuracy" 对回归没有意义。您无法设置评分,它将使用默认值 rsquared。 成功了!!。非常感谢,是的,您对“不支持连续”错误是正确的。我没有检查过它...我删除了 score="accuracy" 并且效果很好。再次感谢

以上是关于ValueError:未知标签类型:使用 cross_validation 时的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:未知标签类型:“未知”-标签是数字

ValueError:未知标签类型:使用 cross_validation 时

将 PermutationImportance 与 LGBMClassifier 一起使用会导致 ValueError:未知标签类型:“连续”

ValueError:未知标签类型

ValueError:未知标签类型:同时使用聚类+分类模型时为“连续”

ValueError:未知标签类型:拟合数据时的“连续多输出”