Предварительная обработка данных — стандартизация

искусственный интеллект

Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность

Изучив эту статью, вы поймете, зачем нужна стандартизация, и общие методы стандартизации.

Зачем нужна стандартизация

Нормализация набора данных — это многоscikit-learnОбщее требование к оценщикам машинного обучения, реализованным в ; если отдельные признаки не более или менее похожи на стандартное нормальное распределение (нормальное распределение с нулевым средним значением, единичное стандартное отклонение), производительность алгоритма может быть значительно снижена. На самом деле, мы часто игнорируем форму распределения данных и просто используем нулевое среднее, единичное стандартное отклонение. В целевой функции алгоритма машинного обучения много элементов, все признаки имеют приблизительно нулевое среднее значение, а дисперсия имеет одинаковый порядок. Если дисперсия признака на порядок больше, чем у других признаков, то этот признак может доминировать над целевой функцией, что делает модель неспособной эффективно учиться на других признаках.


Три способа стандартизации

Нормализация Z-оценки

  • принцип: на основе исходных данныхmean(среднее) иstandard deviation(стандартное отклонение) для нормализации данных. первоначальная стоимость функцииxиспользоватьZ-scoreнормализовано доx’. Данные по своим характеристикам (по столбцам)- mean,Потом÷дисперсия. Конечным результатом является то, что все данные сгруппированы вокруг 0 ​​для каждого признака/столбца с дисперсией 1.
  • Область применения: когда максимальное и минимальное значения признака неизвестны или когда имеются выбросы данных за пределами диапазона значений.

在这里插入图片描述

from sklearn import preprocessing
import numpy as np

X_train = np.array([[ 1., -1.,  2.],
                    [ 2.,  0.,  0.],
                    [ 0.,  1., -1.]])
X_scaled = preprocessing.scale(X_train)
X_scaled

在这里插入图片描述

X_scaled.mean(axis=0)
# array([0., 0., 0.])

X_scaled.std(axis=0)
array([ 1.,  1.,  1.])

Мин-макс нормализация

  • принцип: выполнить линейное преобразование исходных данных. установить функциюAМинимальное и максимальное значенияminA,maxA,будетAнеобработанное значениеxпройти черезmin-maxнормализованное отображение на интервал[0,1]стоимость вx’.
  • Область применения: когда известны максимальное и минимальное значения признака

在这里插入图片描述

from sklearn import preprocessing
import numpy as np

X_train = np.array([[ 1., -1.,  2.],
                    [ 2.,  0.,  0.],
                    [ 0.,  1., -1.]])
min_max_scaler = preprocessing.MinMaxScaler()
X_train_minmax = min_max_scaler.fit_transform(X_train)
X_train_minmax

在这里插入图片描述


MaxAbs нормализовано

  • принцип: Масштабируйте функции обучающих данных, разделив максимальное значение каждой функции на[-1, 1]диапазон, что означает, что обучающие данные должны быть центрированы на нуле или разрежены.
  • Сфера использования: Характерное максимальное значение известно.

在这里插入图片描述

from sklearn import preprocessing
import numpy as np

X_train = np.array([[ 1., -1.,  2.],
                    [ 2.,  0.,  0.],
                    [ 0.,  1., -1.]])
max_abs_scaler = preprocessing.MaxAbsScaler()
X_train_maxabs = max_abs_scaler.fit_transform(X_train)
X_train_maxabs

在这里插入图片描述

Для началаPythonИли хотите начатьPythonдрузей, вы можете искать на WeChat [Python新视野], чтобы общаться и учиться вместе, все исходят от новичков, иногда простой вопрос застревает надолго, но, может быть, кто-то другой вдруг поймет это с небольшой помощью.Я искренне надеюсь, что все вместе смогут добиться прогресса.