Правильно ли использовать разные методы масштабирования функций для разных функций?
Я прочитал этот пост о масштабировании функций: масштабирование всех функций
Два основных метода масштабирования функций:
min-max scaler
- который хорошо реагирует на функции с негауссовым распределением.Standard scaler
- который хорошо реагирует на функции с гауссовым распределением.
Я читал другие сообщения и примеры, и кажется, что мы всегда используем один метод масштабирования (min-max
или standard
) для всех функций.
Я не видел примеров или статей, которые предлагали бы:
1. go over all the features, and for each feature:
1.1 check feature distribution
1.2 if the feature distribution is Gaussian:
1.2.1 use Standard scaler for this feature
1.3 otherwise:
1.3.1 use min-max scaler for this feature
Почему мы не смешиваем методы масштабирования?
Что не так или есть недостатки в моем предложении?
1 ответ
Тогда ваши функции будут иметь разные масштабы, что является проблемой, потому что функции с большим масштабом будут доминировать над остальными (например, в KNN). Функции с нормализацией min-max будут масштабированы до диапазона [0,1], а функции со стандартизацией будут преобразованы в диапазон от отрицательного до положительного (например, [-2,+2] или даже больше в случае небольшие стандартные отклонения).
import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler
dfTest = pd.DataFrame({'A':[14,90,80,90,70],
'B':[10,107,110,114,113]})
scaler = MinMaxScaler()
dfTest['A'] = scaler.fit_transform(dfTest[['A']])
scaler = StandardScaler()
dfTest['B'] = scaler.fit_transform(dfTest[['B']])
ax = dfTest.plot.scatter('A', 'B')
ax.set_aspect('equal')