Как избежать переобучения сущностями в краткой классификации текста? - PullRequest
1 голос
/ 20 мая 2019

Я бинарные классифицирующие заголовки.Это заголовки от 1 до 7 слов, и иногда включают в себя имя человека, который их создал, или места.Я могу классифицировать с точностью до 81%, но когда я изучаю признаки (слова), которые влияют на каждую классификационную группу, я замечаю, что многие имена лучше всего классифицируют конкретную группу, потому что они случайным образом присутствовали только в 1 группе.

Я думаю о 2 решениях: 1. Использование NER для фильтрации сущностей 2. Увеличение регуляризации (пока что это не удалось)

Каков наилучший способ справиться с этим переоснащением?И если увеличение лямбда-значения является ответом, то как это сделать с помощью 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...