Нормализация и стандартизация — это два различных метода масштабирования признаков, используемых при предварительной обработке данных. Выбор правильного метода зависит от распределения твоих данных и алгоритма, который ты используешь.
Нормализация масштабирует все значения признаков в фиксированный диапазон, обычно [0, 1], с помощью MinMaxScaler. Она лучше всего подходит для алгоритмов, чувствительных к величине признаков, таких как нейронные сети или KNN.
(x - min) / (max - min)from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_normalized = scaler.fit_transform(X)
Стандартизация преобразует признаки так, чтобы они имели среднее значение 0 и стандартное отклонение 1, используя StandardScaler. Она предпочтительнее для алгоритмов, которые предполагают нормально распределённые данные, таких как линейная регрессия или SVM.
(x - mean) / stdfrom sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_standardized = scaler.fit_transform(X)
fit_transform только на обучающих данных, а затем используй transform на тестовых данных, чтобы избежать утечки данныхscaler.fit(X_train)
X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)
Нормализация с помощью MinMaxScaler преобразует данные в фиксированный диапазон [0, 1] и более устойчива к выбросам по сравнению со стандартизацией.
Новый — ещё не проверен сообществом
Вы