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

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


使用 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()