大家好,我有以下代码来寻找最优算法:
models = []models.append(('LR', LogisticRegression(solver='liblinear', multi_class='ovr')))models.append(('LDA', LinearDiscriminantAnalysis()))models.append(('KNN', KNeighborsClassifier()))models.append(('CART', DecisionTreeClassifier()))models.append(('NB', GaussianNB()))models.append(('SVM', SVC(gamma='auto')))results = []names = []for name, model in models: kfold = StratifiedKFold(n_splits=10, random_state=1, shuffle=True) print(kfold) cv_results = cross_val_score(model, X_train, Y_train, cv=kfold, scoring='accuracy') print("asd") results.append(cv_results) names.append(name) print('%s: %f (%f)' % (name, cv_results.mean(), cv_results.std()))
其中我的X和y是:
X = dataset[['Twf', 'Depth']].values[:17655]y = dataset['fr1'].values[:17655]
我将它们分成训练集和验证集如下:
X_train, X_validation, Y_train, Y_validation = train_test_split(X, y, test_size=0.20, random_state=1)
然而我得到了以下错误:
ValueError: Supported target types are: ('binary', 'multiclass'). Got 'continuous' instead.
问题是什么,如何解决?
回答:
像LogisticRegression这样的模型是分类模型,它们要求目标特征由类别或标签组成,比如[0,1,2 ..]或[a,b,c ..]。
如果你的目标特征是连续数据,比如[1.236, 1.451, 2.213..],你会得到上述错误。
确保目标特征具有类别(可以是二元或多类)。