我正在对标题进行二进制分类。这些标题介于1到7个字之间,有时还会包含创建这些标题的人的姓名或位置。 我能够以81%的精度进行分类,但是当我检查对每个分类组有影响的特征(单词)时,我注意到许多名称对某个特定组的分类最好,因为它们随机地仅出现在一组中。
我虽然有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"])
还有一些示例功能:
+7.323 peter
+6.143 ing
+6.033 enabl
+5.918 anand
+5.893 jose