Метрики, чтобы рассмотреть для сильно несбалансированного набора данных - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь обучить модель GradientBoosting на сильно несбалансированных данных в Python. Распределение классов подобно 0.96 : 0.04 для класса 0 и класса 1 соответственно.

После некоторой настройки параметров с учетом баллов recall и precision я выбрал хорошую модель. Различные показатели метрик, как указано ниже для набора проверки. Кроме того, он близок к перекрестным оценкам.

recall : 0.928777 precision : 0.974747 auc : 0.9636 kappa : 0.948455 f1 weighted : 0.994728

Если я хочу настроить модель дальше, какие показатели мне следует рассмотреть, чтобы увеличить.? В моей проблеме ошибочное определение 1 как 0 более проблематично, чем неправильное прогнозирование 0 как 1.

1 Ответ

0 голосов
/ 02 июля 2018

Существуют различные методы, с которыми нужно работать при решении проблемы дисбаланса классов. Мало, как указано ниже:

(ссылки включают питонов imblearn пакет и costcla пакет )

  1. Resample:

  2. Техника ансамбля:

  3. Обучение с учетом затрат : Вы должны обязательно изучить это, так как упомянули:

В моей задаче ошибочное определение 1 как 0 более проблематично, чем прогнозирование 0 как 1.

При обучении с учетом затрат с использованием пакета costcla вы должны попробовать , следуя подходу, сохраняя свой базовый классификатор GradientBoostingRegressor:

costcla.sampling.cost_sampling(X, y, cost_mat, method='RejectionSampling', oversampling_norm=0.1, max_wc=97.5)

Здесь вы можете загрузить cost_mat [C_FP, C_FN, C_TP, C_TN] для каждой точки данных в поезде и тесте. C_FP и C_FN основаны на стоимости ошибочной классификации, которую вы хотите установить для классов положительных и отрицательных значений. Обратитесь к полному учебнику по данным кредитного рейтинга здесь .

...