Как мы можем нарисовать ROC-кривую для деревьев решений?
13
Обычно мы не можем нарисовать ROC-кривую для дискретных классификаторов, таких как деревья решений. Я прав? Есть ли способ нарисовать ROC-кривую для Dtrees?
@rapaio Извините, ваша ссылка показывает кривую ROC, чтобы найти порог в классификаторе, который выдает результат от 1 до 0 (непрерывное значение).
DataMiner
@Sangram Это решения в R, но я просто хочу понять, как это работает.
DataMiner
Ответы:
15
Если ваш классификатор дает только факторные результаты (только метки), без оценок, вы все равно можете нарисовать ROC-кривую. Однако эта кривая ROC является только точкой. Рассматривая пространство ROC, эта точка имеет вид , где - уровень ложных срабатываний, а - истинный положительный коэффициент.( х , у) = ( FPR , TPR )FPRTPR
Вы можете расширить эту точку, чтобы она выглядела как кривая ROC, нарисовав линию от до вашей точки и оттуда до . Таким образом, у вас есть кривая.(0,0)(1,1)
Однако для дерева решений легко перейти от вывода метки к числовому выводу. Обратите внимание, что когда вы прогнозируете с помощью дерева решений, вы переходите от корневого узла к конечному узлу, где вы делаете прогноз с большинством классов. Если вместо этого класса вы вернете пропорцию классов в этом листовом узле, у вас будет оценка для каждого класса. Предположим, что у вас есть два класса и , и в вашем листовом узле у вас есть 10 экземпляров с и 5 экземпляров с , вы можете вернуть вектор баллов :TFTF(scoreT,scoreF)=(countTcountT+countF,countFcountT+countF)=(10/15,5/15)=(0.66,0.33), Позаботьтесь о том, чтобы это действительно помнило правильное правило оценки (это не лучшая оценка вероятностей), но я считаю, что это лучше, чем ничего, и именно так обычно получают оценки для деревьев решений.
Для дерева решений классы по-прежнему прогнозируются с определенным уровнем уверенности. Ответ уже дан @rapaio, но я его немного дополню.
Представьте себе следующее дерево решений (это немного модифицированная версия этого одного )
На каждом узле присутствуют не только метки большинства классов, но и другие, которые оказались на этом листе, поэтому мы можем присвоить степень определенности тому листу, на котором мы прогнозируем метку.
Например, рассмотрим следующие данные
Мы запускаем его и присваиваем результаты выводу, а не фактическим меткам. При этом мы можем нарисовать ROC-кривую, как предложено здесь
Однако не имеет смысла использовать его для настройки вашего порога (поскольку, конечно, в деревьях решений нет такого порога, как порог), но он все равно может использоваться для расчета AUC, который в данном случае равен 0,92.
Ответы:
Если ваш классификатор дает только факторные результаты (только метки), без оценок, вы все равно можете нарисовать ROC-кривую. Однако эта кривая ROC является только точкой. Рассматривая пространство ROC, эта точка имеет вид , где - уровень ложных срабатываний, а - истинный положительный коэффициент.( х , у) = ( FPR , TPR ) FPR TPR
Подробнее о том, как это вычисляется, читайте на странице Википедии .
Вы можете расширить эту точку, чтобы она выглядела как кривая ROC, нарисовав линию от до вашей точки и оттуда до . Таким образом, у вас есть кривая.(0,0) (1,1)
Однако для дерева решений легко перейти от вывода метки к числовому выводу. Обратите внимание, что когда вы прогнозируете с помощью дерева решений, вы переходите от корневого узла к конечному узлу, где вы делаете прогноз с большинством классов. Если вместо этого класса вы вернете пропорцию классов в этом листовом узле, у вас будет оценка для каждого класса. Предположим, что у вас есть два класса и , и в вашем листовом узле у вас есть 10 экземпляров с и 5 экземпляров с , вы можете вернуть вектор баллов :T F T F (scoreT,scoreF)=(countTcountT+countF,countFcountT+countF)=(10/15,5/15)=(0.66,0.33) , Позаботьтесь о том, чтобы это действительно помнило правильное правило оценки (это не лучшая оценка вероятностей), но я считаю, что это лучше, чем ничего, и именно так обычно получают оценки для деревьев решений.
источник
Для дерева решений классы по-прежнему прогнозируются с определенным уровнем уверенности. Ответ уже дан @rapaio, но я его немного дополню.
Представьте себе следующее дерево решений (это немного модифицированная версия этого одного )
На каждом узле присутствуют не только метки большинства классов, но и другие, которые оказались на этом листе, поэтому мы можем присвоить степень определенности тому листу, на котором мы прогнозируем метку.
Например, рассмотрим следующие данные
Мы запускаем его и присваиваем результаты выводу, а не фактическим меткам. При этом мы можем нарисовать ROC-кривую, как предложено здесь
Однако не имеет смысла использовать его для настройки вашего порога (поскольку, конечно, в деревьях решений нет такого порога, как порог), но он все равно может использоваться для расчета AUC, который в данном случае равен 0,92.
R код используется здесь:
источник