У меня проблема с переоснащением моей классификации текста? - PullRequest
0 голосов
/ 19 мая 2019

Я делаю текстовую классификацию диалектов с 4 диалектами.Я разделил набор данных (размером 20К) на 75% обучения и 25% тестирования.Когда я тренировал их с наивными байесами и тестировал на тестовом наборе данных, я получил точность 90%.Но когда я сделал проверку с новым набором данных размером 400 твитов, я получил точность 63%.Вы думаете, что падение вызвано переоснащением?Если вам нужна другая информация, пожалуйста, сообщите мне.

Это мой код:

from sklearn.pipeline import Pipeline
text_clf = Pipeline([
    ('vect', CountVectorizer()),
    ('clf', MultinomialNB())])

text_clf.fit(X_train, y_train)

pred=text_clf.predict(validate['tweets'])

accuracy_score(validate['dialect'],pred)

0.63

Это мои настройки для наивных байесов и countVectorizer.Я не добавил никаких гиперпараметров для наивного байеса.Я не уверен, что добавить, или это будет иметь какое-то заметное значение.

это матрица путаницы:

array([[150,   4,  44,   1],
       [  7,  67, 105,   3],
       [ 12,  10, 110,   0],
       [  0,   0,   0,   0]], dtype=int64)

Отчеты

для обучения

                precision    recall  f1-score   support

       Egypt       0.96      0.98      0.97      4039
        Gulf       0.99      0.97      0.98      4456
      Hijazi       0.95      0.97      0.96      4905
    Maghribi       1.00      0.97      0.98      3014

   micro avg       0.97      0.97      0.97     16414
   macro avg       0.97      0.97      0.97     16414
weighted avg       0.97      0.97      0.97     16414

accuracy: 0.97

для тестирования

                 precision    recall  f1-score   support

       Egypt       0.90      0.92      0.91      1321
        Gulf       0.92      0.88      0.90      1533
      Hijazi       0.84      0.92      0.88      1603
    Maghribi       0.98      0.87      0.92      1015

   micro avg       0.90      0.90      0.90      5472
   macro avg       0.91      0.90      0.90      5472
weighted avg       0.90      0.90      0.90      5472

accuracy: 0.89

для новых данных

                 precision    recall  f1-score   support

       Egypt       0.89      0.75      0.82       199
        Gulf       0.83      0.37      0.51       182
      Hijazi       0.42      0.83      0.56       132
    Maghribi       0.00      0.00      0.00         0

   micro avg       0.64      0.64      0.64       513
   macro avg       0.53      0.49      0.47       513
weighted avg       0.75      0.64      0.64       513

accuracy: 0.63

Важные примечания :

  1. образцымоя модель терпит неудачу, это новые твиты из твиттера.
  2. Набор данных Египта, Персидского залива и Магриби был аннотирован вручную.
  3. Набор данных хиджази был получен из твиттера с помощью Twitter API при следующих условиях: геолокация, user_location и ключевые слова (специфичные для диалекта хиджази).Я сделал это, чтобы максимально уменьшить шум, потому что эти твиты не помечены вручную.
...