Стандартизация (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 стандартизация приводит каждый признак к нулевому среднему и единичной дисперсии, делая признаки сравнимыми и удобными для численных алгоритмов.