【问题标题】:sklearn.LogisticRegression ValueError: Unknown label type: 'continuous'sklearn.LogisticRegression ValueError:未知标签类型:“连续”
【发布时间】:2021-07-17 14:17:11
【问题描述】:

我收到此错误:

ValueError: Unknown label type: 'continuous'

这是我的代码:

data=data.dropna()
array = data.values
X = array[:,0:]
y = array[:,-1]
X_train, X_validation, y_train, y_validation = train_test_split(X, Y, test_size=0.20, random_state=1)

models = []
models.append(('LR', LogisticRegression(solver='liblinear', multi_class='ovr')))
models.append(('LDA', LinearDiscriminantAnalysis()))
models.append(('KNN', KNeighborsClassifier()))
# Evaluate each model in turn
results = []
names = []
for name, model in models:
    # TimeSeries Cross validation
    tscv = TimeSeriesSplit(n_splits=10)
    cv_results = cross_val_score(model, X_train, y_train, cv=tscv, scoring='r2')
    results.append(cv_results)
    names.append(name)
    print('%s: %f (%f)' % (name, cv_results.mean(), cv_results.std()))
    
# Compare Algorithms
plt.boxplot(results, labels=names)
plt.title('Algorithm Comparison')
plt.show()

我发现另一个有类似问题的帖子,但是当我尝试解决问题时:

from sklearn import utils

lab_enc = preprocessing.LabelEncoder()
encoded = lab_enc.fit_transform(y_train)

LogisticRegression 和 KNeighborsClassifier 有效,但 LinearDiscriminantAnalysis 返回 nas 和错误:

ValueError: The number of samples must be more than the number of classes.

那时我并不真正了解自己在做什么,文档对我帮助不大。

有人可以向我解释这些错误吗?

【问题讨论】:

  • 您的 y 值或因变量是连续的,这意味着它不是 0/1 或离散的 0/1/2/3

标签: python scikit-learn


【解决方案1】:

您已经在连续输出上使用了分类模型。

对于您使用的模型,输出必须是 0/1(二进制)和 0/1/2/3(对于多类)的形式。

您可以对时间序列数据使用线性/多项式/岭/套索回归。

您还使用了 X = array[:,0:]。这也将包括输出列以及特征(即 X)。

请改用 X = array[:,0:-1]。这将在您获取特征时排除最后一列。

【讨论】:

    猜你喜欢
    • 2017-08-29
    • 2018-12-10
    • 2018-02-15
    • 2020-05-11
    • 2018-07-22
    • 2021-04-04
    • 2018-12-05
    • 2020-05-01
    • 2021-06-05
    相关资源
    最近更新 更多