🤔 Почему в картинках используют StandardScaling вместо MinMaxScaling ?
Использование методов нормализации данных, таких как StandardScaling и MinMaxScaling, зависит от особенностей данных и задач машинного обучения. В задачах обработки изображений StandardScaling (стандартизация) часто предпочтительнее MinMaxScaling (масштабирование к диапазону), и вот почему:
🚩Standard Scaling (стандартизация)
Заключается в преобразовании данных таким образом, чтобы они имели нулевое среднее значение и единичное стандартное отклонение.
🟠Сохранение распределения данных
Стандартизация сохраняет распределение данных, но изменяет масштаб. Это особенно важно для алгоритмов, чувствительных к масштабу данных, таких как градиентный спуск.
🟠Гибкость при разных диапазонах
Изображения часто содержат пиксели с различными интенсивностями, и стандартизация помогает унифицировать данные, что улучшает сходимость моделей.
🟠Работа с алгоритмами
Многие алгоритмы машинного обучения, такие как линейные модели и нейронные сети, лучше работают с данными, у которых нулевое среднее и единичное стандартное отклонение. Это помогает ускорить обучение и улучшить сходимость.
from sklearn.preprocessing import StandardScaler
import numpy as np
# Пример изображения (грейскейл)
image = np.array([[0, 50, 100], [150, 200, 255], [30, 70, 120]])
# Преобразование в одномерный массив
image_flattened = image.flatten().reshape(-1, 1)
# Стандартизация
scaler = StandardScaler()
image_scaled = scaler.fit_transform(image_flattened)
# Возвращение к оригинальной форме
image_standardized = image_scaled.reshape(image.shape)
print(image_standardized)
🚩Min-Max Scaling (масштабирование к диапазону)
Заключается в преобразовании данных таким образом, чтобы они находились в заданном диапазоне, обычно от 0 до 1.
🟠Простота интерпретации
Преобразованные данные легко интерпретировать, так как все значения находятся в одном диапазоне.
🟠Подходит для некоторых задач
Может быть полезно для алгоритмов, которые не зависят от нормальности данных, таких как методы на основе деревьев решений.
🟠Чувствительность к выбросам
Масштабирование к диапазону очень чувствительно к выбросам, что может сильно исказить распределение данных.
🟠Сложность работы с градиентными методами
Для методов, использующих градиенты, Min-Max Scaling может привести к неравномерным шагам в оптимизации, особенно если данные имеют различную дисперсию.
from sklearn.preprocessing import MinMaxScaler
import numpy as np
# Пример изображения (грейскейл)
image = np.array([[0, 50, 100], [150, 200, 255], [30, 70, 120]])
# Преобразование в одномерный массив
image_flattened = image.flatten().reshape(-1, 1)
# Масштабирование к диапазону 0-1
scaler = MinMaxScaler()
image_scaled = scaler.fit_transform(image_flattened)
# Возвращение к оригинальной форме
image_minmax_scaled = image_scaled.reshape(image.shape)
print(image_minmax_scaled)
Ставь 👍 и забирай 📚 Базу знаний
Использование методов нормализации данных, таких как StandardScaling и MinMaxScaling, зависит от особенностей данных и задач машинного обучения. В задачах обработки изображений StandardScaling (стандартизация) часто предпочтительнее MinMaxScaling (масштабирование к диапазону), и вот почему:
🚩Standard Scaling (стандартизация)
Заключается в преобразовании данных таким образом, чтобы они имели нулевое среднее значение и единичное стандартное отклонение.
🟠Сохранение распределения данных
Стандартизация сохраняет распределение данных, но изменяет масштаб. Это особенно важно для алгоритмов, чувствительных к масштабу данных, таких как градиентный спуск.
🟠Гибкость при разных диапазонах
Изображения часто содержат пиксели с различными интенсивностями, и стандартизация помогает унифицировать данные, что улучшает сходимость моделей.
🟠Работа с алгоритмами
Многие алгоритмы машинного обучения, такие как линейные модели и нейронные сети, лучше работают с данными, у которых нулевое среднее и единичное стандартное отклонение. Это помогает ускорить обучение и улучшить сходимость.
from sklearn.preprocessing import StandardScaler
import numpy as np
# Пример изображения (грейскейл)
image = np.array([[0, 50, 100], [150, 200, 255], [30, 70, 120]])
# Преобразование в одномерный массив
image_flattened = image.flatten().reshape(-1, 1)
# Стандартизация
scaler = StandardScaler()
image_scaled = scaler.fit_transform(image_flattened)
# Возвращение к оригинальной форме
image_standardized = image_scaled.reshape(image.shape)
print(image_standardized)
🚩Min-Max Scaling (масштабирование к диапазону)
Заключается в преобразовании данных таким образом, чтобы они находились в заданном диапазоне, обычно от 0 до 1.
🟠Простота интерпретации
Преобразованные данные легко интерпретировать, так как все значения находятся в одном диапазоне.
🟠Подходит для некоторых задач
Может быть полезно для алгоритмов, которые не зависят от нормальности данных, таких как методы на основе деревьев решений.
🟠Чувствительность к выбросам
Масштабирование к диапазону очень чувствительно к выбросам, что может сильно исказить распределение данных.
🟠Сложность работы с градиентными методами
Для методов, использующих градиенты, Min-Max Scaling может привести к неравномерным шагам в оптимизации, особенно если данные имеют различную дисперсию.
from sklearn.preprocessing import MinMaxScaler
import numpy as np
# Пример изображения (грейскейл)
image = np.array([[0, 50, 100], [150, 200, 255], [30, 70, 120]])
# Преобразование в одномерный массив
image_flattened = image.flatten().reshape(-1, 1)
# Масштабирование к диапазону 0-1
scaler = MinMaxScaler()
image_scaled = scaler.fit_transform(image_flattened)
# Возвращение к оригинальной форме
image_minmax_scaled = image_scaled.reshape(image.shape)
print(image_minmax_scaled)
Ставь 👍 и забирай 📚 Базу знаний