Я рассчитываю обучить классификатор, который будет различать объекты Type A
и Type B
объекты с достаточно большим обучающим набором, состоящим примерно из 10 000 объектов, около половины из которых есть, Type A
а половина из них Type B
. Набор данных состоит из 100 непрерывных элементов, детализирующих физические свойства ячеек (размер, средний радиус и т. Д.). Визуализация данных в парных диаграммах рассеяния и графиках плотности говорит нам о существенном совпадении в распределении раковых и нормальных клеток по многим признакам.
В настоящее время я изучаю случайные леса в качестве метода классификации для этого набора данных, и я вижу некоторые хорошие результаты. Используя R, случайные леса могут правильно классифицировать около 90% объектов.
Одна из вещей, которую мы хотим попробовать сделать, - создать своего рода «показатель достоверности», который будет определять, насколько мы уверены в классификации объектов. Мы знаем, что наш классификатор никогда не будет на 100% точным, и даже если будет достигнута высокая точность прогнозов, мы хотим, чтобы обученные специалисты идентифицировали, какие объекты действительно являются Type A
и чем Type B
. Таким образом, вместо предоставления бескомпромиссных прогнозов Type A
или Type B
, мы хотим представить оценку для каждого объекта, которая будет описывать, как A
или B
объект. Например, если мы разработаем оценку в диапазоне от 0 до 10, оценка 0 может указывать, что объект очень похож на Type A
объекты, а оценка 10 будет означать, что объект очень похож Type B
.
Я думал, что мог бы использовать голоса в случайных лесах, чтобы придумать такой счет. Поскольку классификация в случайных лесах осуществляется большинством голосов в лесу сгенерированных деревьев, я предполагаю, что объекты, за которые проголосовали 100% деревьев, Type A
будут отличаться от объектов, за которые проголосовали, скажем, 51% деревьев. быть Type A
.
В настоящее время я попытался установить произвольный порог для доли голосов, которую объект должен получить, чтобы быть классифицированным как Type A
или Type B
, и, если порог не пройден, он будет классифицирован как Uncertain
. Например, если я навязываю условие, что 80% или более деревьев должны согласовать решение для прохождения классификации, я нахожу, что 99% предсказаний класса верны, но около 40% объектов привязаны как Uncertain
.
Тогда имеет ли смысл воспользоваться информацией для голосования, чтобы оценить достоверность прогнозов? Или я иду в неправильном направлении со своими мыслями?
Ответы:
Это имеет смысл, и все реализации случайных лесов, с которыми я работал (например, MATLAB), также дают вероятностные результаты для этого.
Я не работал с реализацией R, но я был бы шокирован, если бы не было простого способа получить мягкие результаты голосования, а также трудное решение.
Изменить: Просто взглянул на R, и предикат.randomForest также выводит вероятности.
источник
Если вы используете R, пакет каретки спасет вас от повторного изобретения колеса. Например, в следующем коде используется перекрестная проверка для выбора параметров настройки для модели случайного леса, а затем выводится среднее и стандартное отклонение точности для каждой кратности перекрестной проверки. Наконец, он рассчитывает вероятности класса для модели.
Хорошая особенность карета заключается в том, что он позволяет легко сравнивать различные прогностические модели. Например, если вы хотите попробовать SVM, вы можете заменить текст
method='rf'
сmethod='svmLinear'
илиmethod='svmRadial'.
Вы также можете выбрать параметры настройки , основанные на АУК , а не точность, добавив его к параметру trainControl:summaryFunction=twoClassSummary
.В конце концов, в пакете PerformanceAnalytics есть немного кода
chart.Correlation(Dataset[-5], col= Dataset$Class)
, который не нужен для построения модели, но обеспечивает хорошую визуализацию вашего набора данных.источник
modelLookup()
команду для получения списка того, что возможно.prob
Типpredict
также доступен с помощьюrandomForest
приручить модели (с использованием или без использования других пакетов , напримерcaret
илиPerformanceAnalytics
).Пакет randomForest в R - довольно приличный пакет для более подробной информации о вашем анализе. Он предоставляет вам голоса (либо в виде дробной части, либо в необработанном виде), а также предлагает встроенную емкость для настройки и перекрестной проверки и может даже дать вам больше информации о ваших функциях (если вы хотите узнать, какие из ваших 100 самое важное в анализе).
Если вы уже используете этот пакет, то, возможно, вам захочется взглянуть на него поближе, а если нет, возможно, проверьте его.
источник