У меня проблема с классификацией текста, в которой набор данных состоит из 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