首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LogisticRegression() vs LogisticRegressionCV()及其Cs超参数

LogisticRegression() vs LogisticRegressionCV()及其Cs超参数
EN

Stack Overflow用户
提问于 2022-06-27 22:59:26
回答 1查看 293关注 0票数 0

我使用LogisticRegression()建立了一个模型,经过网格搜索,数据显示了正则化强度的逆值,C = .0000001是进行预测的“最佳”值。

这个参数对于LogisticRegression()很好,但是当我想要交叉验证时,我决定使用LogisticRegressionCV(),这里的等效c参数被表示为Cs,但是当我试图传递相同的变量Cs = .0000001时,我会得到一个错误:

代码语言:javascript
运行
复制
    797     warm_start_sag = {"coef": np.expand_dims(w0, axis=1)}
    799 coefs = list()
--> 800 n_iter = np.zeros(len(Cs), dtype=np.int32)
    801 for i, C in enumerate(Cs):
    802     if solver == "lbfgs":

TypeError: object of type 'float' has no len()

当提到文档时,似乎对于LogisticRegressionCV()来说

如果Cs作为int,则在1e-4和1e4之间以对数标度选择Cs值的网格。

那么,我如何仍然输入一个Cs = .0000001的值?我不知道该怎么做。

EN

Stack Overflow用户

回答已采纳

发布于 2022-06-28 12:52:29

LogisticRegressionCV不仅仅是交叉验证-得分logistic回归;它是一个超参数调优(通过交叉验证)逻辑回归。也就是说,它尝试了几种不同的正则化优势,并使用交叉验证分数来选择最好的一个(然后使用最佳的C在整个训练集上重新构建一个模型)。Cs可以是一个用于C的值列表,也可以是一个整数,让sklearn为您创建一个列表(如引用的文档中所示)。

如果您只想用固定的C评分您的模型,请使用cross_val_scorecross_validate

(您可能可以使用LogisticRegressionCV,设置Cs=[0.0000001],但这不是正确的语义用法。)

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72779092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档