- Как нормализовать данные в Python
- Пример 1. Нормализация массива NumPy
- Пример 2: нормализовать все переменные в Pandas DataFrame
- Пример 3: нормализовать определенные переменные в Pandas DataFrame
- Дополнительные ресурсы
- 2 простых способа нормализовать данные в Python
- Почему нам нужно нормализовать данные в Python?
- Использование MinMaxScaler() для нормализации данных в Python
Как нормализовать данные в Python
Часто в статистике и машинном обучении мы нормализуем переменные таким образом, чтобы диапазон значений находился между 0 и 1.
Наиболее распространенной причиной нормализации переменных является проведение некоторого типа многомерного анализа (т. е. мы хотим понять взаимосвязь между несколькими переменными-предикторами и переменной-откликом) и хотим, чтобы каждая переменная вносила равный вклад в анализ.
Когда переменные измеряются в разных масштабах, они часто не вносят одинакового вклада в анализ. Например, если значения одной переменной находятся в диапазоне от 0 до 100 000, а значения другой переменной — в диапазоне от 0 до 100, переменной с большим диапазоном будет присвоен больший вес при анализе.
Нормируя переменные, мы можем быть уверены, что каждая переменная вносит одинаковый вклад в анализ.
Чтобы нормализовать значения между 0 и 1, мы можем использовать следующую формулу:
x норма = (x i – x мин ) / (x макс – x мин )
- x norm : i -е нормализованное значение в наборе данных
- x i : i -е значение в наборе данных
- x max : минимальное значение в наборе данных
- x min : максимальное значение в наборе данных
В следующих примерах показано, как нормализовать одну или несколько переменных в Python.
Пример 1. Нормализация массива NumPy
В следующем коде показано, как нормализовать все значения в массиве NumPy:
import numpy as np #create NumPy array data = np.array([[13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71]]) #normalize all values in array data_norm = (data - data. min ())/ (data. max () - data. min ()) #view normalized values data_norm array([[0. , 0.05172414, 0.10344828, 0.15517241, 0.17241379, 0.43103448, 0.5862069 , 0.74137931, 0.77586207, 0.86206897, 0.89655172, 0.98275862, 1. ]])
Каждое из значений в нормализованном массиве теперь находится между 0 и 1.
Пример 2: нормализовать все переменные в Pandas DataFrame
Следующий код показывает, как нормализовать все переменные в кадре данных pandas:
import pandas as pd #create DataFrame df = pd.DataFrame() #normalize values in every column df_norm = (df-df.min ())/ (df.max () - df.min ()) #view normalized DataFrame df_norm points assists rebounds 0 0.764706 0.125 0.857143 1 0.000000 0.375 0.428571 2 0.176471 0.375 0.714286 3 0.117647 0.625 0.142857 4 0.411765 1.000 0.142857 5 0.647059 0.625 0.000000 6 0.764706 0.625 0.571429 7 1.000000 0.000 1.000000
Каждое из значений в каждом столбце теперь находится в диапазоне от 0 до 1.
Пример 3: нормализовать определенные переменные в Pandas DataFrame
В следующем коде показано, как нормализовать определенные переменные в кадре данных pandas:
import pandas as pd #create DataFrame df = pd.DataFrame() define columns to normalize x = df.iloc [:,0:2] #normalize values in first two columns only df.iloc [:,0:2] = (x-x. min ())/ (x. max () - x. min ()) #view normalized DataFrame df points assists rebounds 0 0.764706 0.125 11 1 0.000000 0.375 8 2 0.176471 0.375 10 3 0.117647 0.625 6 4 0.411765 1.000 6 5 0.647059 0.625 5 6 0.764706 0.625 9 7 1.000000 0.000 12
Обратите внимание, что нормализуются только значения в первых двух столбцах.
Дополнительные ресурсы
В следующих руководствах представлена дополнительная информация о нормализации данных:
2 простых способа нормализовать данные в Python
В этом руководстве мы узнаем, как нормализовать данные в Python. При нормализации меняем масштаб данных. Чаще всего масштабирование данных изменяется в диапазоне от 0 до 1.
Почему нам нужно нормализовать данные в Python?
Алгоритмы машинного обучения, как правило, работают лучше или сходятся быстрее, когда различные функции (переменные) имеют меньший масштаб. Поэтому перед обучением на них моделей машинного обучения данные обычно нормализуются.
Нормализация также делает процесс обучения менее чувствительным к масштабу функций. Это приводит к улучшению коэффициентов после тренировки.
Этот процесс повышения пригодности функций для обучения путем изменения масштаба называется масштабированием функций.
Формула нормализации приведена ниже: