Стандартизация (Z-score) — это способ масштабирования признаков, при котором каждый признак приводится к нулевому среднему и единичному стандартному отклонению.
Для одного признака :
где
– — среднее значение признака
– — стандартное отклонение
В матричной форме (признаки — столбцы):
import numpy as np
mu = X.mean(axis=0)
sigma = X.std(axis=0)
Z = (X - mu) / sigmaЧто происходит:
– из каждого столбца вычитается его среднее
– каждый столбец делится на своё стандартное отклонение
– признаки становятся сопоставимыми по масштабу
Свойства стандартизованных признаков:
– среднее каждого столбца ≈ 0
– стандартное отклонение каждого столбца ≈ 1
– форма распределения сохраняется
Зачем это нужно:
– ускоряет и стабилизирует обучение моделей
– важно для методов, чувствительных к масштабу
(градиентный спуск, k-means, SVM, PCA)
– предотвращает доминирование признаков с большими числовыми значениями
Технические детали:
– стандартизация всегда делается по столбцам (axis=0)
– если sigma = 0 (константный признак), его нельзя стандартизовать
– на практике параметры mu и sigma считают на обучающей выборке и применяют к тестовой
Коротко:
Z-score стандартизация приводит каждый признак к нулевому среднему и единичной дисперсии, делая признаки сравнимыми и удобными для численных алгоритмов.