【发布时间】:2016-11-16 20:20:47
【问题描述】:
我有类似的事情:
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.
阅读v16 和v17 的文档我没有发现任何不同之处。唯一可疑的是:
逻辑回归(又名 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)
【问题讨论】:
-
您能否提供一个可运行的、独立的示例来演示该问题?
-
@BrenBarn 我已经删除了所有不需要的东西。我将整个问题简化为基本上一行,并且还部分包含了它失败的输入。不确定它的可运行性和独立性如何。无论如何,这里有 3 行说明问题。
-
你希望你的模型做什么?逻辑回归预测二进制输出变量,因此像 4.865146 这样的值作为 Y 值没有意义。可能是早期版本的 scikit 错误地接受了这样的 Y 值并对它们做错了什么,并且他们修复了它,因为这些值没有意义。
标签: python machine-learning scikit-learn