GridSearchCV 和 LogisticRegression 引发 ValueError:无法处理连续和二进制的混合

Posted

技术标签:

【中文标题】GridSearchCV 和 LogisticRegression 引发 ValueError:无法处理连续和二进制的混合【英文标题】:GridSearchCV and LogisticRegression raise ValueError: Can't handle mix of continuous and binary 【发布时间】:2014-07-26 12:22:14 【问题描述】:

我正在尝试使用 LogisticRegression 运行 gridsearch,并得到 ​​p>

ValueError: Can't handle mix of continuous and binary

我已将此错误追溯到metrics.accuracy_score。显然预测不太顺利,虽然 y_true 是连续的(与其余数据一样),但 y_pred 全部为零,因此被归类为二进制。

有什么办法可以避免这个错误吗? y_pred 的性质是否意味着我根本没有使用逻辑回归的业务,或者这可能是使用的参数的结果?

谢谢

【问题讨论】:

【参考方案1】:

有点令人困惑的逻辑回归实际上是一种分类算法(请参阅http://scikit-learn.org/stable/modules/linear_model.html#logistic-regression)。因此,您提供的目标(“y_true”)数据应该是二进制的。如果您实际上是在尝试解决回归问题,您应该选择不同的算法,例如LinearRegression、SVR、RandomForestRegressor等

【讨论】:

如果标签数量固定,可以使用LogisticRegression 尽管有上述评论,但这当然是正确答案。感觉很蠢,谢谢。 @AbishekThakur,是的,这是一个很好的观点,但请注意,对于多类 LR,scikit-learn 在二进制 LR 算法周围使用一对多的包装器。 仍然在 API 方面,LogisticRegression 对象需要类标签,不一定是 [0,1] 向量。

以上是关于GridSearchCV 和 LogisticRegression 引发 ValueError:无法处理连续和二进制的混合的主要内容,如果未能解决你的问题,请参考以下文章

GridSearchCV 是用 rbf 内核和不同程度计算 SVC 吗?

管道和 GridSearchCV 的问题

Gridsearchcv:内部逻辑

包括 Scaling 和 PCA 作为 GridSearchCV 的参数

如何使用 Pipeline 和 GridSearchCV 找到线性回归问题的系数

如何公平地比较基线和 GridSearchCV 结果?