【问题标题】:ValueError: Unknown label type: while using cross_validationValueError:未知标签类型:使用 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

标签: python python-3.x machine-learning cross-validation


【解决方案1】:

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

【讨论】:

  • 我尝试使用 KNeighborsRegressor..但它仍然给出同样的错误
  • 实际上你会得到一个不同的错误,说不支持连续。那是因为您说 score="accuracy" 对回归没有意义。您无法设置评分,它将使用默认值 rsquared。
  • 成功了!!。非常感谢,是的,您对“不支持连续”错误是正确的。我没有检查过它...我删除了 score="accuracy" 并且效果很好。再次感谢
猜你喜欢
  • 2019-11-10
  • 2018-01-02
  • 2018-12-16
  • 2021-05-11
  • 2021-08-17
  • 2020-05-14
  • 2018-03-16
  • 2017-08-29
  • 2018-12-10
相关资源
最近更新 更多