Плохая производительность, показанная на моделировании редких событий
-
16-10-2019 - |
Вопрос
Я работаю над редкой проблемой классификации событий. У меня есть 95% данных в качестве класса большинства и 5% данных в качестве класса меньшинств. Я использую алгоритм классификации деревьев. Я измеряю доброта модели, используя матрицу путаницы.
Поскольку у меня есть класс меньшинства всего 5% от общего объема данных, хотя показатели моего прогнозирования класса меньшинств почти 70%, общее количество ошибок высока.
Например, вот моя матрица путаницы. 0 1 0 213812 7008 1 29083 16877
Хотя класс меньшинства (класс 1) правильно предсказал в 16877 раз (70%, а неправильная классификация составляет всего 30%, но абсолютное значение неправильной классификации очень высока (29083) по сравнению с правильно предсказанным классом минотрий (16877). Решение менее полезно для бизнеса.
Есть ли какая -либо идея для решения таких проблем в таком редком моделировании событий.
Весное примечание: я сбалансировал целевую переменную, используя алгоритм удара перед применением дерева классификации.
Решение
Если вы готовы использовать пакет CARET в R и использовать случайные леса, вы можете использовать метод в следующем сообщении в блоге для понижения с несбалансированными наборами данных: http://appliedpredictivemodeling.com/blog/2013/12/8/28rmc2lv96h8fw8700zm4nl50busep
По сути, вы просто добавляете одну строку в свою тренироваться вызов. Вот соответствующая часть:
> rfDownsampled <- train(Class ~ ., data = training,
+ method = "rf",
+ ntree = 1500,
+ tuneLength = 5,
+ metric = "ROC",
+ trControl = ctrl,
+ ## Tell randomForest to sample by strata. Here,
+ ## that means within each class
+ strata = training$Class,
+ ## Now specify that the number of samples selected
+ ## within each class should be the same
+ sampsize = rep(nmin, 2))
Я добился некоторого успеха с таким подходом в вашей ситуации.
Для некоторого контекста, вот глубокий пост об экспериментах с несбалансированными наборами данных: http://www.win-vector.com/blog/2015/02/does-balance-classes-improve-classifier-performance/