Какие алгоритмы нуждаются в масштабировании функций, кроме SVM?


17

Я работаю со многими алгоритмами: RandomForest, DecisionTrees, NaiveBayes, SVM (kernel = linear и rbf), KNN, LDA и XGBoost. Все они были довольно быстрыми, кроме SVM. Именно тогда я узнал, что для ускорения работы требуется масштабирование функций. Тогда я начал задаваться вопросом, должен ли я сделать то же самое для других алгоритмов.



Ответы:


21

В общем, алгоритмы, которые используют расстояния или сходства (например, в форме скалярного произведения) между выборками данных, такие как k-NN и SVM, чувствительны к преобразованиям признаков.

Классификаторы на основе графических моделей, такие как Fisher LDA или Naive Bayes, а также деревья решений и методы ансамбля на основе деревьев (RF, XGB) инвариантны к масштабированию объектов, но все же это может быть хорошей идеей для изменения масштаба / стандартизации ваших данных ,


3
+1. Просто отметьте, что XGBoost на самом деле также реализует второй алгоритм, основанный на линейном усилении. Масштабирование будет иметь значение там.
usεr11852 говорит восстановить Monic

1
Не могли бы вы подробнее рассказать о масштабировании / стандартизации данных для RF и XGB? Я не понимаю, как это может повлиять на качество модели.
Томек Тарчински

17

Вот список, который я нашел на http://www.dataschool.io/comparing-supervised-learning-algorithms/, указывающий, какой классификатор нуждается в масштабировании функции :

введите описание изображения здесь

Полная таблица:

введите описание изображения здесь

В кластеризации k-средних вам также необходимо нормализовать ввод .

В дополнение к рассмотрению того, использует ли классификатор расстояния или сходства, как упомянул Йелл Бонд, Stochastic Gradient Descent также чувствителен к масштабированию объектов (поскольку скорость обучения в уравнении обновления Stochastic Gradient Descent одинакова для каждого параметра {1}):

введите описание изображения здесь


Ссылки:


Чего не хватает в этом ответе, так это объяснения почему !! Смотрите мой ответ для этого.
kjetil b halvorsen

2
@kjetilbhalvorsen хорошо я объяснил для k-средних и SGD, но есть много других алгоритмов и моделей. На Stack Exchange существует ограничение в 30 тысяч символов :)
Franck Dernoncourt


@FranckDernoncourt Могу я задать вам вопрос, основываясь на этом? У меня есть набор данных как категориальных, так и непрерывных данных, для которых я создаю SVM. Непрерывные данные сильно искажены (длинный хвост). Для преобразования на непрерывном я должен сделать, log transformation / Box-Coxа затем также normalise the resultant data to get limits between 0 and 1? Так что я буду нормализовать значения журнала. Затем рассчитать SVM на непрерывных и категориальных (0-1) данных вместе? Приветствия за любую помощь, которую вы можете предоставить.
Чак

7

Yязнак равноβ0+β1Икся+β2Zя+εя
язнак равно1,...,N
Икся*знак равно(Икся-Икс¯)/SD(Икс)Zя*знак равно(Zя-Z¯)/SD(Z)
и вместо этого подгоните модель (используя обычные наименьшие квадраты)
Yязнак равноβ0*+β1*Икся*+β2*Zя*+εя
Тогда измененные параметры (бета-версии) изменятся, но они изменятся таким образом, что вы можете вычислить с помощью простой алгебры из примененного преобразования. Так что, если мы называем оценочные бета-версии из модели с использованием преобразованных предикторов дляβ1,2* и обозначают беты из нетрансформированной модели с β^1,2, we can calculate one set of betas from the other one, knowing the means and standard deviations of the predictors. The realtionship between the transformed and untransformed parameters is the same as between their estimates, when based on OLS. Some algebra will give the relationship as
β0=β0β1x¯sd(x)β2z¯sd(z),β1=β1sd(x),β2=β2sd(z)
So standardization is not a necessary part of modelling. (It might still be done for other reasons, which we do not cover here). This answer depends also upon us using ordinary least squares. For some other fitting methods, such as ridge or lasso, standardization is important, because we loose this invariance we have with least squares. This is easy to see: both lasso and ridge do regularization based on the size of the betas, so any transformation which change the relative sizes of the betas will change the result!

And this discussion for the case of linear regression tells you what you should look after in other cases: Is there invariance, or is it not? Generally, methods which depends on distance measures among the predictors will not show invariance, so standardization is important. Another example will be clustering.


1
Can you explicitly show how one calculates one set of betas from the other in this particular example of scalings you have applied?
Mathews24

@kjetil Can I ask you a question building on this? I have a dataset of both categorical and continuous data, for which I'm building an SVM. The continuous data is highly skewed (long tail). For transformation on the continuous should I do a log transformation / Box-Cox and then also normalise the resultant data to get limits between 0 and 1? So i'll be normalising the log values. Then calculate the SVM on the continuous and categorical (0-1) data together? Cheers for any help you can provide
Chuck

1
Can you please add this as a new question? with reference back here!
kjetil b halvorsen
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.