Можно ли контролировать стоимость ошибочной классификации в пакете R randomForest ?
В моей собственной работе ложные отрицания (например, отсутствие по ошибке того, что у человека может быть заболевание) намного дороже ложных срабатываний. Пакет rpart позволяет пользователю контролировать затраты на неправильную классификацию, указывая матрицу потерь для неправильной классификации веса по-разному. Существует ли что-нибудь подобное для randomForest
? Должен ли я, например, использовать classwt
опцию для контроля критерия Джини?
источник
classwt
: Да, я обнаружил, что на практике и в соответствии с другими пользователями результаты не такие, как ожидалось. (iii)cutoff
: мне не ясно, как использоватьcutoff
в этом случае, и я буду рад любым дальнейшим советам.Существует несколько способов учета затрат.
(1) Избыточная / недостаточная выборка для каждого дерева в мешках (стратифицированная выборка) является наиболее распространенным методом введения затрат. Вы намеренно несбалансированны в наборе данных.
(2) Взвешивание. Никогда не работает. Я думаю, что это подчеркивается в документации. Некоторые утверждают, что вам просто нужно взвешиваться на всех этапах, включая разделение Джини и окончательное голосование. Если это сработает, это будет сложная реализация.
(3) Функция метакоста в Weka.
(4) Рассмотрение случайного леса как вероятностного классификатора и изменение порога. Мне нравится этот вариант меньше всего. Вероятно, из-за отсутствия у меня знаний, но, хотя алгоритм может выводить вероятности, мне не имеет смысла рассматривать их, как если бы это была вероятностная модель.
Но я уверен, что есть дополнительные подходы.
источник
Рекомендуется, чтобы, если переменная, которую вы пытаетесь предсказать, составляла не 50%,
class 1
а 50%class 2
(как в большинстве случаев), вы настраиваетеcutoff
параметр так, чтобы он представлял реальную суммуOOB
в итоге.Например,
В этом случае вероятность , имеющее значение одного
class 1
это в.96
то время , имеющее значениеclass 2
является.04
.В противном случае случайные леса используют порог
0.5
.источник
Можно включать
costMatrix
вrandomForest
явном виде с помощьюparms
параметра:источник
Вы можете включить чувствительность к стоимости, используя
sampsize
функцию вrandomForest
пакете.Изменяйте цифры
(100,20)
на основе имеющихся у вас данных и допущений / бизнес-правил, с которыми вы работаете.Чтобы получить матрицу путаницы, которая отражает стоимость ошибки классификации, требуется немного пробного подхода. Взгляните на « Криминальные прогнозы риска Ричарда Берка : подход машинного обучения» , с. 82.
источник