即使在sklearn中使用交叉验证,逻辑回归也会过度使用?

时间:2017-04-17 19:08:57

标签: python-3.x machine-learning scikit-learn nlp logistic-regression

我正在使用sklearn实现一个逻辑回归模型,用于Kaggle的文本分类竞赛。

  1. 当我使用unigram时,有23,617个功能。最好的mean_test_score交叉验证搜索(sklearn的GridSearchCV)给了我类似于我从Kaggle获得的分数,使用最好的模型。

  2. 如果我使用bigram,有1,046,524个功能。与unigram相比,GridSearchCV给了我一个更好的mean_test_score,但是使用这个新模型我在Kaggle得分低得多。

  3. 我想原因可能是过度拟合,因为我的功能太多了。我试图将GridSearchCV设置为5倍甚至2倍,但分数仍然不一致。

    它是否真的表明我的第二个模型过度拟合,即使在验证阶段?如果是这样,我如何使用sklearn调整逻辑模型的正则化项?任何建议都表示赞赏!

1 个答案:

答案 0 :(得分:1)

假设您正在使用sklearn。您可以尝试使用调整参数max_dfmin_dfmax_features。将这些投入GridSearch可能需要很长时间,但您可能会得到一些有趣的结果。我知道这些功能是在sklearn.feature_extraction.text.TfidfVectorizer中实现的,但我相信他们也会在其他地方使用它们。基本上这个想法是,包括太多的克可能导致过度拟合,同样的事情是具有太多克具有低或高文档频率。

相关问题