关于sklearn Logistic回归中使用的正则化

时间:2020-06-28 03:39:42

标签: machine-learning scikit-learn nlp logistic-regression

我正在使用sklearn logistic回归函数对文本执行二进制分类任务。

我使用三种不同的方法来完成任务:单词袋,TF-IDF,Doc2vec。

输入是:CountVectorizer代表单词袋,TfidfVectorizer代表TF-IDF,fixed-length numeric document embedding代表Doc2vec。

我发现我使用的正则化术语很奇怪。

C: float, default=1.0
Inverse of regularization strength; must be a positive float. Like in support vector machines, smaller values specify stronger regularization.

我使用1、5、10、30作为C值来进行每种方法的实验。 对于Bag-Of-Words,随着C值的增加,测试集上模型的性能会降低,这就是我的期望。

但是,对于TF-IDFDoc2vec方法,情况并非如此,随着C值的增加,测试集上模型的性能不会降低。

例如,对于TF-IDF方法,结果如下

C = 1
accuracy: 0.9160459183673471
f1: 0.9146393123068315
    
C = 5
accuracy: 0.924234693877551
f1: 0.9231332586487735
    
C = 10
accuracy: 0.9234948979591836
f1: 0.9224169897397203

C = 30    
accuracy: 0.921045918367347
f1: 0.919948362201867

为什么会这样?

简而言之,为什么更强的正则化功能不能提高TF-IDF和Doc2vec的测试性能,却可以提高Bag-Of-Words的性能?

0 个答案:

没有答案