У меня есть сильно несбалансированный набор данных с экземплярами целевого класса в следующем соотношении 60000:1000:1000:50 (т.е. всего 4 класса). Я хочу использовать randomForest для прогнозирования целевого класса.
Итак, чтобы уменьшить дисбаланс класса, я поиграл с параметром sampsize, установив для него значение c(5000, 1000, 1000, 50) и некоторые другие значения, но его использование было не слишком sampsize. На самом деле, точность 1-го класса снизилась, когда я играл с sampsize, хотя улучшение в других классовых предсказаниях было очень незначительным.
При копании в архивах я натолкнулся на еще две функции randomForest() - это strata и classwt, которые используются для компенсации проблемы дисбаланса классов.
Все документы по classwt были старыми ( как правило, принадлежащий к годам 2007, 2008), все из которых предложили не использовать classwt особенность randomForest пакета в R, поскольку он не полностью реализовать свою полную функциональность, как это делает в fortran. Итак, первый вопрос:
classwt ли реализован randomForest пакете randomForest из R? Если да, что означает передача c(1, 10, 10, 10) в аргумент classwt? (Предполагая вышеупомянутый случай 4 классов в целевой переменной)
Другим аргументом, который, как говорят, компенсирует проблему дисбаланса классов, является стратифицированная выборка, которая всегда используется в сочетании с sampsize. Я понимаю, что за sampsize из документации, но нет достаточного количества документации или примеров, которые бы дали четкое представление об использовании strata для преодоления проблемы дисбаланса классов. Итак, второй вопрос:
Какой тип аргументов необходимо передать strata в randomForest и что он представляет?
Я предполагаю, что слово вес, которое я не упомянул явно в вопросе, должно играть главную роль в ответе.