首页 > 解决方案 > 如何避免短文本分类中的实体过拟合?

问题描述

我正在对标题进行二元分类。此标题介于 1 到 7 个字之间,有时还包括创建它们的人的姓名或位置。我能够以 81% 的准确率进行分类,但是当我检查影响每个分类组的特征(单词)时,我注意到许多名称对特定组的分类最好,因为它们随机只出现在 1 个组中。

我虽然大约有 2 个解决方案:1. 使用 NER 过滤实体 2. 增加正则化(仍然没有成功)

处理这种过度拟合的最佳方法是什么?如果增加 lambda 值是答案,那么如何使用 sklearn LogisticRegressionCV 完成?

相关代码:

from sklearn.linear_model import LogisticRegressionCV
X_train_stem_u = vectorizer_stem_u.fit_transform(X_train)

X_prepeared_data_train = X_train_stem_u 
selected_vectorizer = vectorizer_stem_u 

clf =  LogisticRegressionCV(cv=5,max_iter=800).fit(X_prepeared_data_train, y_train)#solver='liblinear',penalty='l1',

X_prepeared_data_test = selected_vectorizer.transform(X_test) 



predicted = clf.predict(X_prepeared_data_test)
print(np.mean(predicted == y_test))

import eli5

eli5.show_weights(clf, vec=selected_vectorizer, top=1500,
                  target_names=["group1","group2"])

还有一些 na,es 示例功能:

+7.323  peter
+6.143  ing
+6.033  enabl
+5.918  anand
+5.893  jose 

标签: pythonscikit-learnlogistic-regressioncross-validationtext-classification

解决方案


推荐阅读