Когда можно использовать Random Forest
снова SVM
и наоборот?
Я понимаю, что cross-validation
сравнение моделей является важным аспектом выбора модели, но здесь я хотел бы узнать больше о практических правилах и эвристике этих двух методов.
Может кто-нибудь объяснить, какие тонкости, сильные и слабые стороны классификаторов, а также проблемы, которые лучше всего подходят для каждого из них?
Ответы:
Я бы сказал, что выбор во многом зависит от того, какие данные у вас есть и какова ваша цель. Несколько «эмпирических правил».
Случайный лес изначально подходит для задач мультикласса, в то время как SVM изначально двухклассовый. Для задачи мультикласса вам нужно будет сократить ее до нескольких задач двоичной классификации.
Случайный лес хорошо сочетается с числовыми и категориальными особенностями. Когда функции находятся в разных масштабах, это тоже хорошо. Грубо говоря, в Random Forest вы можете использовать данные такими, какие они есть. SVM максимизирует «запас» и, таким образом, опирается на концепцию «расстояния» между различными точками. Вам решать, является ли "расстояние" значимым. Как следствие, обязательным является горячее кодирование для категориальных функций. Кроме того, min-max или другое масштабирование настоятельно рекомендуется на этапе предварительной обработки.
Если у вас есть данные с точками и функциями, промежуточным этапом в SVM является построение матрицы (подумайте о требованиях к памяти для хранения) путем вычисления точечных произведений (сложность вычислений). Поэтому, как правило, SVM вряд ли можно масштабировать за пределы 10-5 баллов. Большое количество признаков (однородные объекты со значимым расстоянием, пиксель изображения - отличный пример), как правило, не является проблемой.N м n × n N2
Для задачи классификации Random Forest дает вам вероятность принадлежности к классу. SVM дает вам расстояние до границы, вам все равно нужно как-то преобразовать ее в вероятность, если вам нужна вероятность.
Для тех проблем, где применяется SVM, он обычно работает лучше, чем Random Forest.
SVM дает вам «векторы поддержки», то есть точки в каждом классе, ближайшем к границе между классами. Они могут представлять интерес для интерпретации.
источник
Модели SVM работают лучше на разреженных данных, чем деревья в целом. Например, в классификации документов вы можете иметь тысячи, даже десятки тысяч объектов, и в любом данном векторе документа только небольшая часть этих объектов может иметь значение больше нуля. Возможно, между ними есть и другие различия, но это то, что я нашел для своих проблем.
источник
Это действительно зависит от того, чего вы хотите достичь, как выглядят ваши данные и т. Д. SVM, как правило, будет лучше работать с линейными зависимостями, в противном случае вам потребуется нелинейное ядро, и выбор ядра может изменить результаты. Кроме того, SVM менее интерпретируемы - например, если вы хотите объяснить, почему классификация была такой, какой она была - она будет нетривиальной. Деревья решений имеют лучшую интерпретируемость, они работают быстрее, и если у вас есть категориальные / числовые переменные, это хорошо, более того: нелинейные зависимости обрабатываются хорошо (учитывая N достаточно большой). Кроме того, они тренируются быстрее, чем SVM в целом, но у них есть склонность к тренировкам ...
Я бы тоже попробовал Logistic Regression - отличный интерпретируемый классификатор)
Подводя итог - правило большого пальца состоит в том, чтобы попробовать что-нибудь и сравнить то, что дает вам лучшие результаты / интерпретацию.
источник
В дополнение к уже изложенным положительным моментам:
От Нужны ли нам сотни классификаторов для решения задач реального мира классификации? случайные леса имеют более высокую производительность, чем случайные леса.
Кроме того, способы реализации алгоритмов (и по теоретическим причинам) случайных лесов обычно намного быстрее, чем (нелинейных) SVM. Действительно, как @Ianenok, SVM, как правило, непригодны для использования после 10 000 точек данных.
Однако известно, что SVM лучше работают с некоторыми конкретными наборами данных (изображения, данные микрочипов ...).
Итак, еще раз, перекрестная проверка действительно лучший способ узнать, какой метод работает лучше всего.
Источник: Случайный лес против SVM
источник