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:未知标签类型:使用 cross_validation 时
将 PermutationImportance 与 LGBMClassifier 一起使用会导致 ValueError:未知标签类型:“连续”