Sklearn StandardScaler: стандартизация данных в машинном обучении

Scikit-learn (sklearn) - это библиотека машинного обучения на языке Python, которая предоставляет широкий выбор инструментов для работы с данными, препроцессинга, обучения моделей, оценки результатов и многое другое. Один из популярных модулей sklearn - это StandardScaler, который является частью модуля preprocessing.

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

Давайте рассмотрим пример применения StandardScaler на наборе данных. Предположим, у нас есть набор данных, состоящий из двух признаков: возраст (в годах) и заработная плата (в тысячах долларов). Наша цель состоит в том, чтобы стандартизировать эти признаки перед обучением модели машинного обучения.

Сначала нам необходимо импортировать необходимые модули:


from sklearn.preprocessing import StandardScaler
import numpy as np

Затем создадим экземпляр класса StandardScaler:


scaler = StandardScaler()

Далее мы подготавливаем данные для обучения:


features = np.array([[25, 45],
                    [30, 60],
                    [35, 70],
                    [40, 80],
                    [45, 90]])

Мы имеем 5 наблюдений (строк) и 2 признака (столбца).

Теперь мы можем использовать scaler для стандартизации наших признаков:


scaled_features = scaler.fit_transform(features)

Метод fit_transform выполняет две операции: сначала выполняет вычисление среднего значения и стандартного отклонения для каждого признака, а затем преобразует признаки, используя эти статистические значения.

После выполнения этих операций мы можем посмотреть наши стандартизированные данные:


print(scaled_features)

Вывод:


[[-1.41421356 -1.41421356]
 [-0.70710678 -0.70710678]
 [ 0.          0.        ]
 [ 0.70710678  0.70710678]
 [ 1.41421356  1.41421356]]

Как видно из вывода, каждый признак теперь имеет среднее значение 0 и стандартное отклонение 1. Это позволяет нам работать с данными, у которых признаки находятся в разных диапазонах, исключая их влияние на результаты модели.

StandardScaler также поддерживает применение трансформации к новым данным:


new_data = np.array([[50, 100],
                     [55, 110]])

scaled_new_data = scaler.transform(new_data)

Здесь мы используем метод transform, чтобы применить стандартизацию к новым данным, используя ранее вычисленное среднее значение и стандартное отклонение.

Вот и все! Мы рассмотрели пример использования StandardScaler из библиотеки scikit-learn. Этот простой инструмент позволяет стандартизировать данные и упростить процесс подготовки данных для обучения модели машинного обучения.

Похожие вопросы на: "sklearn standardscaler "

HTTP ошибка 500 - внутренняя ошибка сервера
Speech to Text: преобразуйте свою речь в текст с легкостью
SQL COUNT: функция для подсчета числа строк в таблице
Box Sizing: влияние на размеры блоков веб-страницы
Замена значений в Pandas
PHP Sandbox - онлайн среда для тестирования PHP кода
Как исправить ошибку "NET::ERR_CERT_AUTHORITY_INVALID"
Инструкции Oracle
Скью: основные принципы и применение
Конвертация строки в число с плавающей точкой в Java