Случайный лес: балансирующий тестовый набор? - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь запустить классификатор случайных лесов для несбалансированного набора данных (~ 1: 4).

Я использую метод из imblearn следующим образом:

from imblearn.ensemble import BalancedRandomForestClassifier

rf=BalancedRandomForestClassifier(n_estimators=1000,random_state=42,class_weight='balanced',sampling_strategy='not minority')
rf.fit(train_features,train_labels) 
predictions=rf.predict(test_features)

Разделениев обучении и тестовый набор выполняется в рамках метода перекрестной проверки с использованием RepeatedStratifiedKFold из scikit learn.

Однако мне интересно, нужно ли также сбалансировать набор тестов для получения разумных оценок точности (чувствительности)специфика и т. д.).Я надеюсь, что вы можете помочь мне с этим.

Большое спасибо!

1 Ответ

0 голосов
/ 27 февраля 2019

Из imblearn документы :

Сбалансированный случайный лес случайным образом занижает выборку каждой начальной загрузки, чтобы сбалансировать ее.

Если выХорошо, со случайной заниженной выборкой в ​​качестве метода балансировки, тогда классификатор сделает это за вас "под капотом".На самом деле, в этом и заключается смысл использования imblearn, чтобы справиться с дисбалансом классов.Если бы вы использовали прямой случайный лес, такой как готовая версия от sklearn, я бы больше беспокоился о том, чтобы справиться с дисбалансом классов на переднем конце.

...