apple_51770410 2023-01-10 11:15 采纳率: 100%
浏览 16
已结题

Statsmodels.api 训练模型如何解决过拟合的问题?

如下,我在用Statsmodels训练logit回归模型时如何解决过拟合问题?是需要手动划分训练集并添加正则项吗?

即,我的问题实际是Statsmodels.formula.logit()是否已解决这个问题?


import statsmodels.api as sm
import statsmosels.formula.api as smf

formula = 'target ~ sex + grade'
lg = smf.logit(formula = formula, data = data).fit
  • 写回答

2条回答 默认 最新

  • ShowMeAI 2023-01-10 11:45
    关注

    你说的方式都可以缓解过拟合问题。


    使用 L1 正则化项来解决过拟合问题(使用 statsmodels.formula.logit 函数中的 L1_wt 参数来设置 L1 正则化项,或者使用 L2_wt 参数来设置 L2 正则化项。):

    import statsmodels.api as sm
    import statsmosels.formula.api as smf
    
    formula = 'target ~ sex + grade'
    lg = smf.logit(formula = formula, data = data, L1_wt = 0.5).fit()
    

    划分训练集并训练模型(使用 statsmodels.formula.logit 函数中的 data 参数指定训练数据,然后使用 fit 方法来训练模型):

    import statsmodels.api as sm
    import statsmosels.formula.api as smf
    
    formula = 'target ~ sex + grade'
    train_data = data[:800]
    test_data = data[800:]
    lg = smf.logit(formula = formula, data = train_data).fit()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月18日
  • 已采纳回答 1月10日
  • 修改了问题 1月10日
  • 创建了问题 1月10日