Нормализация столбца или датафрейма Pandas (с использованием Pandas или sklearn)
Узнайте, как нормализовать столбец или фрейм данных в Pandas, используя либо Pandas, либо scikit-learn.
Нормализация — это важный навык для любого аналитика данных или специалиста по данным. Нормализация включает в себя приведение значений, находящихся на различных шкалах, к общей шкале, что позволяет легче их сравнивать. Это особенно важно при построении моделей машинного обучения, так как необходимо убедиться, что распределение значений столбца не будет чрезмерно или недостаточно представлено в ваших моделях.
В этом руководстве вы узнаете, как использовать Pandas и scikit-learn для нормализации как столбца, так и всего датафрейма с помощью максимального абсолютного масштабирования, масштабирования Min-Max и метода стандартизации по Z-оценке. Вы также узнаете, что представляют собой эти методы, а также когда и почему их использовать.
Быстрый ответ:
Оглавление
Что такое нормализация данных в машинном обучении?
Нормализация данных приводит признаки (или столбцы) с разными масштабами к общему масштабу. Например, если вы сравниваете рост и вес человека, значения могут сильно отличаться между двумя масштабами. Поэтому, если вы пытаетесь создать модель машинного обучения, один столбец может иметь другое влияние.
В этом случае на помощь приходит нормализация: значения различных столбцов корректируются, чтобы находиться в общем масштабе, что облегчает их сравнение.
В следующих разделах вы узнаете, как применять нормализацию данных к DataFrame в Pandas, что означает приведение числовых столбцов к общему масштабу. Это предотвращает предпочтение моделей в пользу значений с более крупным масштабом. По сути, нормализация данных преобразует данные с различными масштабами к одному масштабу. Это позволяет каждой переменной иметь похожее влияние на модель, делая её более стабильной и повышая её эффективность.
Давайте начнем с загрузки примерного DataFrame библиотеки Pandas, который мы будем использовать на протяжении всего руководства.
Загрузка образца Pandas Dataframe
Если вы хотите следовать за уроком, строка за строкой кода, скопируйте код ниже, чтобы создать датафрейм. Это создаст образец датафрейма, который вы можете использовать, чтобы следовать за уроком.
Загрузим DataFrame с тремя столбцами: age
, weight
и height
. Посмотрим, как это можно сделать на Python с использованием Pandas:
Мы можем вывести первые пять строк нашего датафрейма, используя команду print(df.head())
. Это вернет следующий датафрейм:
В следующем разделе вы узнаете, что такое максимальное абсолютное масштабирование.
Что такое максимальное абсолютное масштабирование?
Метод максимального абсолютного масштабирования изменяет масштаб каждой характеристики на значения в диапазоне от -1 до 1.
Каждое значение вычисляется по следующей формуле:
x
scaled
= x / max(|x|)
Каждое масштабированное значение вычисляется путем деления самого значения на абсолютное значение максимального значения. Тот факт, что масштаб может варьироваться от -1 до 1, не означает, что он обязательно будет таким. На самом деле, значения -1 и +1 будут существовать только тогда, когда в наборе данных присутствуют как отрицательные, так и положительные максимальные значения. Это означает, что как минимум либо -1, либо +1, либо оба значения будут присутствовать.
В следующем разделе вы узнаете, как нормализовать столбец Pandas с помощью масштабирования по максимальному абсолютному значению.
Нормализуйте столбец Pandas с максимальным абсолютным масштабированием с помощью Pandas
Pandas упрощает нормализацию столбца с использованием максимального абсолютного масштабирования. Для этого процесса можно использовать метод .max()
и метод .abs()
.
Давайте посмотрим, как мы можем разработать функцию, которая позволяет применять метод масштабирования с максимальной абсолютной величиной к столбцу.
Мы определили функцию, которая делит ряд на абсолютное значение максимального значения в этом ряду. Затем мы применяем эту функцию ко всем столбцам в нашем датафрейме.
Преимущество здесь заключается в том, что мы можем выбрать, к каким столбцам применять функцию, а не делать это сразу для всего датафрейма каждый раз.
В следующем разделе вы узнаете, как использовать scikit-learn для применения максимального абсолютного масштабирования к DataFrame.
Нормализуйте столбец Pandas с максимальным абсолютным масштабированием с помощью scikit-learn
Во многих случаях, связанных с машинным обучением, вы будете импортировать популярную библиотеку scikit-learn
. Благодаря этому, вы можете использовать эту библиотеку для применения максимального абсолютного масштабирования к вашему DataFrame Pandas.
Для этого мы будем использовать класс MaxAbsScaler
для создания объекта скалера. Затем мы можем применить метод fit
, чтобы позволить scikit-learn изучить необходимые параметры (максимальное абсолютное значение). Далее мы используем эти параметры для преобразования наших данных и нормализации столбца DataFrame Pandas с помощью scikit-learn.
Давайте посмотрим, как мы можем использовать Pandas и scikit-learn для этого:
Давайте разберем, что мы здесь сделали:
Мы загружаем объект
scaler
, используя классMaxAbsScaler()
Мы передаем датафрейм в метод
.fit()
Затем мы создаем масштабированную матрицу данных, используя метод
.transform()
Наконец, мы воссоздаем Pandas Dataframe, используя класс
DataFrame
В следующем разделе вы узнаете о методе масштабирования признаков по минимуму и максимуму.
Что такое масштабирование признаков Min-Max?
Масштабирование признаков с использованием метода min-max часто просто называют нормализацией, которая изменяет масштаб признаков набора данных до диапазона от 0
до 1
. Это вычисляется путем вычитания минимального значения признака из значения, а затем деления на разницу между максимальным и минимальным значением.
Формула:
x
norm
= x - x
min
/ x
max
- x
min
С помощью Pandas легко применить нормализацию с использованием метода масштабирования признаков min max.
В следующем разделе вы узнаете, как использовать Pandas для нормализации столбца.
Нормализация столбца Pandas с помощью масштабирования признаков Min-Max с использованием Pandas
Чтобы использовать Pandas для применения мин-макс масштабирования, или нормализации, мы можем использовать методы .max()
и .min()
. Затем мы можем применить функцию в векторизованном формате, чтобы значительно повысить эффективность нашей операции.
Давайте посмотрим, как это выглядит в Pandas:
Давайте разберём, что мы здесь сделали:
Мы определили нашу функцию так, чтобы она принимала серию
Функция возвращает формулу, определенную выше: разница между значением и минимальным значением, деленная на разницу между максимальным и минимальным значениями.
В приведенном выше примере мы перебираем каждый столбец. Хотя мы могли бы определить нашу функцию для нормализации всего датафрейма, вместо этого мы выбрали нормализацию по столбцам, что позволяет нам пропускать столбцы, не являющиеся числовыми, и не использовать ту же методику стандартизации.
В следующем разделе вы узнаете, как использовать sklearn для нормализации столбца методом min-max.
Нормализуйте столбец Pandas с помощью масштабирования признаков Min-Max с помощью scikit-learn
Модуль sklearn
на Python также предоставляет простой способ нормализовать столбец с использованием метода масштабирования min-max. Библиотека sklearn
содержит класс MinMaxScaler
, который можно использовать для подгонки данных.
Давайте посмотрим, как мы можем использовать библиотеку для применения min-max нормализации к Dataframe в Pandas.
Подобно применению метода масштабирования с максимальным абсолютным значением, давайте рассмотрим, что мы сделали здесь:
Мы импортировали класс
MinMaxScaler
изsklearn.preprocessing
Затем мы создаем экземпляр класса и применяем его к данным.
Затем мы используем масштабатор, чтобы обучить и преобразовать наши данные.
Наконец, мы создаем новый датафрейм из данных, передавая в него оригинальные столбцы для его воссоздания.
В следующем разделе вы узнаете, что такое масштабирование z-оценки и как его использовать.
Что такое масштабирование Z-оценки?
Метод Z-оценки часто называют стандартизацией, который преобразует данные в распределение значений с средним равным 0 и стандартным отклонением равным 1. В отличие от других двух методов, этот метод не ограничен диапазоном от 0 до 1 или от -1 до...
Вместо этого, поскольку данные имеют стандартное отклонение, 99% значений попадут в диапазон от -3 до 3. Конечно, будут значения, выходящие за эти пределы, но они будут крайне редкими.
Способ расчета этой стандартизации заключается в использовании следующей формулы:
x
std
= x - μ / σ
В следующем разделе вы узнаете, как стандартизировать столбец Pandas, используя масштабирование по z-оценке.
Стандартизируйте столбец Pandas с помощью масштабирования Z-оценки с помощью Pandas
Чтобы стандартизировать столбец в DataFrame Pandas, мы можем использовать функции mean
и std
из библиотеки
Давайте посмотрим, как можно использовать Pandas для расчета стандартизированного кадра данных с масштабированием z-оценки:
Давайте исследуем, что мы здесь сделали:
Мы определяем новую функцию, которая принимает ряд в качестве входных данных.
Затем мы возвращаем значение серии, вычтенное из среднего значения серии и деленное на стандартное отклонение серии.
Наконец, мы перебираем каждый столбец в датафрейме и переназначаем его самому себе.
Стандартизируйте столбец Pandas с помощью масштабирования Z-оценки с помощью scikit-learn
В этом заключительном разделе вы узнаете, как использовать sklearn
для стандартизации колонки Pandas с помощью масштабирования z-score. Для этого мы используем класс StandardScaler
из модуля sklearn
.
Давайте посмотрим, как мы можем использовать библиотеку для применения z-оценки к Dataframe
Давайте разберем, что мы сделали выше:
Мы создали экземпляр класса
StandardScaler
и обучили его на датафреймеЗатем мы использовали метод
.fit_transform()
, чтобы масштабировать самНаконец, мы воссоздали фрейм данных из данных, применив z-оценочное стандартизирование.
Заключение
В этом руководстве вы узнали три метода стандартизации или нормализации данных в Pandas, используя либо Pandas, либо sklearn. Вы узнали, как применять метод максимального абсолютного масштабирования, метод мин-макс масштабирования признаков и метод стандартизации z.
Last updated