raise ValueError("Unknown label type: %s" % repr(ys)) ValueError: Unknown label type: (arr
Posted
技术标签:
【中文标题】raise ValueError("Unknown label type: %s" % repr(ys)) ValueError: Unknown label type: (array【英文标题】: 【发布时间】:2019-03-21 18:23:45 【问题描述】:我正在尝试使用机器学习方法,但遇到了一些问题。这是我的代码:
import sys
import scipy
import numpy
import matplotlib
import pandas
import sklearn
from pandas.plotting import scatter_matrix
import matplotlib.pyplot as plt
from sklearn import model_selection
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
dataset = pandas.read_csv('Libro111.csv')
array = numpy.asarray(dataset,dtype=numpy.float64) #all values are float64
X = array[:,1:49]
Y = array[:,0]
validation_size = 0.2
seed = 7.0
X_train, X_validation, Y_train, Y_validation = model_selection.train_test_split(X, Y, test_size=validation_size, random_state=seed)
scoring = 'accuracy'
models = []
models.append(('LR', LogisticRegression()))
models.append(('LDA', LinearDiscriminantAnalysis()))
models.append(('KNN', KNeighborsClassifier()))
models.append(('CART', DecisionTreeClassifier()))
models.append(('NB', GaussianNB()))
models.append(('SVM', SVC()))
results = []
names = []
for name, model in models:
kfold = model_selection.KFold(n_splits=10, random_state=seed)
cv_results = model_selection.cross_val_score(model, X_train, Y_train, cv=kfold, scoring=scoring)
results.append(cv_results)
names.append(name)
msg = "%s: %f (%f)" % (name, cv_results.mean(), cv_results.std())
print(msg)
然后我得到两个不同的错误。
对于逻辑回归:
File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\multiclass.py", line 172, in check_classification_targets
raise ValueError("Unknown label type: %r" % y_type)
ValueError: Unknown label type: 'continuous'
我找到了一个有同样问题的人,但我还无法解决..
并且(最重要的):
File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\multiclass.py", line 97, in unique_labels
raise ValueError("Unknown label type: %s" % repr(ys))
ValueError: Unknown label type: (array([ 0.5, 0. , 1. , 1. , 0.5, 0.5, 1. , 0.5, 0. , 0.5, 1. ,
0. , 0. , 0. , 1. , 1......
在这两种情况下,当我执行“cv_result”行时都会出现错误......所以,我希望你能帮助我......
【问题讨论】:
【参考方案1】:“ValueError: Unknown label type: 'continuous'”表示您的“Y”值不是数据的类类型(多行共享相同的整数值。每个整数代表一个类)。因此,您不能使用“DecisionTreeClassifier”、“KNeighborsClassifier”、“LogisticRegression”(不要被它的名字所迷惑,LogisticRegression 是一种布尔分类方法)或任何其他分类机器学习方法。实际上,您的“Y”值都是不同的或“连续的”(可能是浮点数),因此您只能使用回归机器学习(即“RandomForestRegressor”)。
这里有两种解决方案:
a) 将 Y 值分组到 bin(类)中。将分类建模应用于您的数据。
b) 如果您希望您的预测有值(浮点数),您需要使用回归机器学习方法来预测 Y 值。
顺便说一下,“scoring = 'accuracy'”评估方法是用于分类建模的。
【讨论】:
以上是关于raise ValueError("Unknown label type: %s" % repr(ys)) ValueError: Unknown label type: (arr的主要内容,如果未能解决你的问题,请参考以下文章
LSTM调用tensorflow提示 raise ValueError("Ambiguous dimension: %s" % value),怎么解决?
python Python:Exception,Raise,ZeroDivisionError,TypeError,ValueError
raise ValueError(“{0} format is not supported“.format(y_type))ValueError: continuous format
raise ValueError(“{0} format is not supported“.format(y_type))ValueError: continuous format
raise ValueError(err) - 在 Python 中使用 concurrent.future 实现多线程