Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность
Изучив эту статью, вы поймете, зачем нужна стандартизация, и общие методы стандартизации.
Зачем нужна стандартизация
Нормализация набора данных — это много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新视野
], чтобы общаться и учиться вместе, все исходят от новичков, иногда простой вопрос застревает надолго, но, может быть, кто-то другой вдруг поймет это с небольшой помощью.Я искренне надеюсь, что все вместе смогут добиться прогресса.