Как я могу значительно улучшить отчет о классификации одного класса с помощью ансамблевой модели?

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

{0: 6624, 1: 75} 0 для предложений ненаблюдения и 1 для предложений наблюдения. (в основном я аннотирую свои предложения, используя распознавание именованных сущностей, если есть конкретная сущность, такая как ДАННЫЕ, ВРЕМЯ, ДЛИННАЯ (координата), я помещаю метку 1)

Теперь я хочу создать модель для их классификации, лучшая модель (CV =3 ДЛЯ ВСЕХ), которую я сделал, - это модель ансамбля

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]]

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

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

что вы рекомендуете для улучшения TP для первого класса (f1 score, вспомните для класса 1? Как правило, вы имеете какое-нибудь представление о моем рабочем процессе?

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

0 ответов

Другие вопросы по тегам