Классификатор, обученный с использованием техники встраивания слов (doc2vec) и логистической регрессии, неправильно классифицирует данные - PullRequest
0 голосов
/ 28 января 2019

У меня проблема с классификацией текста, в которой набор данных состоит из 16 миллионов записей.Данные сильно разбалансированы и состоят из почти 500 классов.Я применил подход к встраиванию слов, а затем использовал Логистическую регрессию для построения модели, в которой входной сигнал представляет собой матрицу doc2vec, точность, которую я достиг, составила 88%, но при этом показатель отзыва и показатель F1 близки к 84%, но при работе над тестированиемНапример, данные классификатора не очень хорошо работают, например, если текстовые детали похожи на те, что мне нравятся путешествия, они классифицируются как «Метка путешествия», но если они встречаются с текстом снова, модель классифицирует его как некоторую другую категорию, например «неизвестно».Это необычное поведение, с которым я столкнулся в модели.

Код:

Y = " Love travelling"
tokens = cleanText(Y)
vector = model.infer_vector(tokens.split())
predict = logreg.predict(vector.reshape(1,-1))
print(predict)

Ожидаемый результат: Путешествие

Фактический результат: Unmapped

Код регрессора:

class_weight = class_weight.compute_class_weight («сбалансированный», np.unique (y_train), y_train)

logreg = LogisticRegression (multi_class= 'многочлен', solver = 'lbfgs', class_weight = "сбалансированный")

logreg.fit (train_vectors_dbow, y_train)

Ожидаемый результат:

   Text                 Label
1. I like to travel     Travel
2. I love to travel     Travel

Фактический

   Text                 Label
1. I like to travel     Travel
2. I love to travel     Unmapped
...