В этой статье блога мы углубимся в мир стандартных методов масштабирования числовых столбцов с использованием Scikit-learn, популярной библиотеки машинного обучения на Python. Стандартное масштабирование — это фундаментальный этап предварительной обработки, который помогает нормализовать числовые характеристики, гарантируя, что они имеют нулевое среднее значение и единичную дисперсию. Мы рассмотрим несколько методов, доступных в Scikit-learn для выполнения этой задачи, сопровождаемые примерами кода для каждого метода.
Методы:
- StandardScaler:
Класс StandardScaler в Scikit-learn предоставляет простой и эффективный способ стандартизации числовых функций. Он вычисляет среднее и стандартное отклонение каждого признака, а затем соответствующим образом масштабирует значения. Вот пример фрагмента кода:
from sklearn.preprocessing import StandardScaler
# Create an instance of StandardScaler
scaler = StandardScaler()
# Fit and transform the data
scaled_data = scaler.fit_transform(data)
- RobustScaler:
RobustScaler — это надежная альтернатива StandardScaler, на которую меньше влияют выбросы. Он использует межквартильный диапазон (IQR) для масштабирования функций. Вот пример фрагмента кода:
from sklearn.preprocessing import RobustScaler
# Create an instance of RobustScaler
scaler = RobustScaler()
# Fit and transform the data
scaled_data = scaler.fit_transform(data)
- MinMaxScaler:
MinMaxScaler масштабирует числовые функции в указанном диапазоне, обычно от 0 до 1. Он работает путем вычитания минимального значения и деления на диапазон функции. Вот пример фрагмента кода:
from sklearn.preprocessing import MinMaxScaler
# Create an instance of MinMaxScaler
scaler = MinMaxScaler()
# Fit and transform the data
scaled_data = scaler.fit_transform(data)
- MaxAbsScaler:
MaxAbsScaler масштабирует числовые характеристики в диапазоне [-1, 1] путем деления каждого значения на максимальное абсолютное значение. Он сохраняет знак данных. Вот пример фрагмента кода:
from sklearn.preprocessing import MaxAbsScaler
# Create an instance of MaxAbsScaler
scaler = MaxAbsScaler()
# Fit and transform the data
scaled_data = scaler.fit_transform(data)
- QuantileTransformer:
QuantileTransformer преобразует объекты, чтобы они соответствовали равномерному или нормальному распределению. Он использует квантили для сопоставления данных с равномерным распределением, а затем применяет обратную кумулятивную функцию распределения для получения преобразованных значений. Вот пример фрагмента кода:
from sklearn.preprocessing import QuantileTransformer
# Create an instance of QuantileTransformer
scaler = QuantileTransformer()
# Fit and transform the data
scaled_data = scaler.fit_transform(data)
В этой статье мы рассмотрели различные стандартные методы масштабирования, доступные в Scikit-learn для числовых столбцов. Мы обсудили StandardScaler, RobustScaler, MinMaxScaler, MaxAbsScaler и QuantileTransformer, а также примеры кода для каждого метода. Эти методы предоставляют гибкие способы предварительной обработки числовых данных и гарантируют, что функции находятся в сопоставимом масштабе, что имеет решающее значение для многих алгоритмов машинного обучения.