StandardScaler в машинном обучении
В машинном обучении StandardScaler (стандартный масштабатор) используется для изменения размера распределения значений так, чтобы среднее значение наблюдаемых значений было равно 0, а стандартное отклонение – 1. В этой статье я расскажу, как использовать StandardScaler в машинном обучении.
StandardScaler – это важный метод, который в основном выполняется как этап предварительной обработки перед многими моделями машинного обучения, чтобы стандартизировать диапазон функциональных возможностей входного набора данных.
Некоторые практики машинного обучения склонны слепо стандартизировать свои данные перед каждой моделью машинного обучения, не прилагая никаких усилий, чтобы понять, почему их следует использовать или даже нужно ли это или нет. Поэтому вам нужно понимать, когда следует использовать StandardScaler для масштабирования данных.
Когда и как использовать StandardScaler?
StandardScaler вступает в игру, когда характеристики входного набора данных сильно различаются между диапазонами или, когда они измеряются в разных единицах измерения.
StandardScaler удаляет среднее значение и масштабирует данные до единичной дисперсии. Однако выбросы оказывают существенное влияние при вычислении эмпирического среднего и стандартного отклонения, что сужает диапазон значений характеристик.
Эти различия в начальных функциях могут вызвать проблемы для многих моделей машинного обучения. Например, для моделей, основанных на вычислении расстояния, если одна из характеристик имеет широкий диапазон значений, расстояние будет регулироваться этой конкретной характеристикой.
Идея StandardScaler заключается в том, что переменные, которые измеряются в разных масштабах, не влияют в равной степени на соответствие модели и обучающую функцию модели и могут в конечном итоге создать систематическую ошибку.
Итак, чтобы справиться с этой потенциальной проблемой, нам необходимо стандартизировать данные (μ = 0, σ = 1), которые обычно используются, прежде чем мы интегрируем их в модель машинного обучения.
Теперь давайте посмотрим, как использовать StandardScaler с помощью Scikit-learn:
from sklearn.preprocessing import StandardScaler import numpy as np # 4 samples/observations and 2 variables/features X = np.array([[0, 0], [1, 0], [0, 1], [1, 1]]) # the scaler object (model) scaler = StandardScaler() # fit and transform the data scaled_data = scaler.fit_transform(X) print(X)
Результат:
[[0, 0],
[1, 0],
[0, 1],
[1, 1]])
print(scaled_data)
Результат:
[[-1. -1.]
[ 1. -1.]
[-1. 1.]
[ 1. 1.]]
Чтобы проверить, что среднее значение функций равно 0:
scaled_data.mean(axis = 0)
Результат:
array([0., 0.])
Надеюсь, вам понравилась эта статья о StandardScaler в машинном обучении. Не стесняйтесь задавать свои вопросы в разделе комментариев ниже.