Как я могу значительно улучшить отчет о классификации одного класса, используя модель ансамбля? - PullRequest
0 голосов
/ 07 октября 2019

У меня есть набор данных, включающий

{0: 6624, 1: 75} 0 для ненаблюдающих предложений и 1 для наблюдательных предложений. (в основном, я аннотирую свои предложения с помощью распознавания именованных сущностей, если есть конкретная сущность, такая как DATA, TIME, LONG (координата), я ставлю метку 1)

Теперь я хочу создать модель для их классификации,лучшая модель (CV = 3 FOR ALL), которую я сделал, это ансамблевая модель

clf= SGDClassifier()
trial_05=Pipeline([("vect",vec),("clf",clf)])

, которая имеет:

                  precision    recall  f1-score   support

           0       1.00      1.00      1.00      6624
           1       0.73      0.57      0.64        75

   micro avg       0.99      0.99      0.99      6699
   macro avg       0.86      0.79      0.82      6699
weighted avg       0.99      0.99      0.99      669

[[6611   37]
 [  13   38]]

, и эта модель, которая использовала передискретизированный sgd для классификации

                  precision    recall  f1-score   support

           0       1.00      0.92      0.96      6624
           1       0.13      1.00      0.22        75

   micro avg       0.92      0.92      0.92      6699
   macro avg       0.56      0.96      0.59      6699
weighted avg       0.99      0.92      0.95      6699

[[6104    0]
 [ 520   75]]

Как вы видите, проблема в обоих случаях - это класс 1, но в первом случае мы имеем довольно хорошую точность и результат f1 по сравнению со вторым, у нас очень хороший отзыв

Поэтому я решил использовать ансамблевую модель, используя оба этих способа:

from sklearn.ensemble import VotingClassifier#create a dictionary of our models
estimators=[("trail_05",trial_05), ("resampled", SGD_RESAMPLED_Model)]#create our voting classifier, inputting our models
ensemble = VotingClassifier(estimators, voting='hard')

Теперь у меня есть такой результат:

                precision    recall  f1-score   support

           0       0.99      1.00      1.00      6624
           1       0.75      0.48      0.59        75

   micro avg       0.99      0.99      0.99      6699
   macro avg       0.87      0.74      0.79      6699
weighted avg       0.99      0.99      0.99      6699
[[6612   39]
 [  12   36]]

Поскольку у вас ансамблевая модель лучшеточность в отношении класса 1, но хуже отзыв и f1 socre, что привело к ухудшению матрицы путаницы в отношении классифицированного 1 (36 TP против 38 TP для класса 1)

МОЯ цель - улучшить TP для первого класса (оценка f1,Вспомните для класса 1)

whВы рекомендуете улучшить TP для первого класса (f1score, вспомните для первого класса? В общем, у вас есть идеи относительно моего рабочего процесса?

Я пробовал настройку параметров, но я не улучшил модель sgd.

...