Правильно ли использовать разные методы масштабирования функций для разных функций?

Я прочитал этот пост о масштабировании функций: масштабирование всех функций

Два основных метода масштабирования функций:

  1. min-max scaler- который хорошо реагирует на функции с негауссовым распределением.

  2. 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. Почему мы не смешиваем методы масштабирования?

  2. Что не так или есть недостатки в моем предложении?

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')

Другие вопросы по тегам