Многие алгоритмы машинного обучения работают лучше, когда функции имеют относительно одинаковый масштаб и близки к нормальному распределению. MinMaxScaler, RobustScaler, StandardScaler и Normalizer — это методы scikit-learn для предварительной обработки данных для машинного обучения. Какой метод вам нужен, зависит от типа вашей модели и ваших значений функций.

Эти скейлеры полезны не только для моделирования, но и для построения графиков с несколькими осями Y.

При построении двойной оси Y, сравнивающей числовые данные для цены фондового индекса Nasdaq и числа случаев covid19 в США, я выбрал MinMax Scaler. Поскольку данные были чувствительны к анализу любых радикальных сдвигов в цене или количестве случаев, я оставил выбросы и, следовательно, выбрал Min Max Scaler на двойной оси Y, потому что:

Это не снижает важности выбросов.

Для каждого значения в признаке MinMaxScaler вычитает минимальное значение в признаке, а затем делит на диапазон. Диапазон представляет собой разницу между исходным максимумом и исходным минимумом.

MinMaxScaler сохраняет форму исходного распределения. Это не меняет существенно информацию, встроенную в исходные данные.

Диапазон по умолчанию для функции, возвращаемой MinMaxScaler, составляет от 0 до 1.

Вот график после применения MinMaxScaler:

Обратите внимание, что все функции находятся в одном и том же относительном масштабе. Относительные промежутки между значениями каждой функции сохранены.

При построении фрейма данных df, который имеет столбец datetime с MinMaxScaler, сначала вам нужно будет установить дату для индекса df -> затем применить MinMaxScaler ->, а затем преобразовать обратно в df без даты в качестве индекса для построения. Вот пример этих трех шагов:

Чтобы сравнить влияние различных масштабаторов на данные с выбросами, подробнее см. на странице: https://scikit-learn.org/stable/auto_examples/preprocessing/plot_all_scaling.html.