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 "

Библиотека динамической компоновки (DLL): роли, функциональность и преимущества использования
Ускорение Python кода с помощью Cython
Модель Нейронной Сети
Решения задач по программированию с помощью np zeros
Coalesce PostgreSQL
Beep - ваш проводник в мире технологий
Vector erase c - удаление элементов вектора на языке C++
KDiff3: программа для сравнения и слияния файлов в Windows
JSBin: онлайн редактор и отладчик JavaScript кода
SetTimeout jQuery: примеры использования и руководство