我有类似的东西:

linear_model.LogisticRegression(penalty='l2').fit(X_train, y_train)


其中X_train

array([[  2500. ,   5000. ,   5000. , ...,   4697.2,      3. ,  10600. ],
       ...,
       [  2500. ,   3500. ,   3500. , ...,   3072. ,      3. ,  12800. ]])


和y_train:

array([  4.865146,  12.309128,   1.469881, ...,   5.248941,  11.84231 ,
         2.178483])


这在v.0.16.1中没有任何错误或警告地起作用,但是升级到v.0.17.1后,它失败并显示错误:

ValueError: Unknown label type: my y_train array.


在阅读v16v17的文档时,我没有发现任何不同。唯一可疑的是:


  Logistic回归(又名logit,MaxEnt)分类器。


哪种建议实际上不是回归模型,而是分类模型,所以y_train应该是类别(但v16中有相同的解释,所以我不确定是否是这种情况)。

无论如何,我想知道为什么会发生这种情况以及如何使它起作用。



一个可运行的,独立的示例演示了该问题

X_train_1 = np.array([[ 2500.,  5000.], [ 4500.,  4500.]])
y_train_1 = np.array([  4.865146,  12.309128])
linear_model.LogisticRegression(penalty='l2').fit(X_train_1, y_train_1)

最佳答案

我认为您想要一个LinearRegression; Logistic回归实际上是一个分类模型(尽管名称具有误导性)。不知道您的代码在以前的版本中是做什么的,也许是将每个float值都视为一个标签?

关于python - 更新到v.0.17后,逻辑回归不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38365341/

10-13 00:08