Атрибуты в разных масштабах распространены в проектах машинного обучения. Например, набор данных медицинских данных может включать в себя в колоннах веса, высота и кровяное давление. Эти атрибуты имеют разные единицы измерения и варьируются по разным интервалам, затрудняя их сравнение.
В этих случаях мы можем применить процесс под названием Масштабирование Чтобы облегчить это сравнение. В этом процессе мы изменяем исходные данные, но сохраняя относительное расстояние между точками данных, чтобы мы сохраняем распределение атрибута.
Нормализация
В нормализации мы масштабируем атрибут, сделав все точки данных, помещенные в интервал от 0,0 до 1,0. Мы выражаем процесс нормализации с использованием формулы:
куда:
Х n О R м Х ^ {норма} Х n О R М. : это новый масштабный атрибутХ м Я n X_ {min} X m Я n : это вектор столбца, где все элементы равных m Я n x_ {min} х м Я n Вx m Я n x_ {min} х м Я n : это минимальное значение атрибута $ x $x м А х x_ {max} х м А х : это максимальное значение атрибута $ X $
Для каждого значения атрибута мы вычитаем его минимально, а затем разделите результат путем разницы его максимума и его минимума. Среднее значение и стандартное отклонение также будут масштабированы, но преобразование сохранит распределение данных.
Стандартизация
В стандартизации атрибут преобразуется, чтобы иметь среднее значение 0 (ноль), а стандартное отклонение равно 1 (один). Следующая формула применяется:
Где:
- $ X ^ {std} $: новый масштабный атрибут
- $ X $: это вектор столбца, представляющий наш атрибут
- $ \ mu $: это столбец вектор, где все элементы являются средним значением атрибута
- $ \ sigma $: это стандартное отклонение атрибута
В стандартизации нет нижних и верхних пределов для новых значений данных. Но все они теперь выражены как унитарные расстояния от среднего.
Пример
В проекте Атрибуты масштабирования с нормализацией и стандартизацией Мы используем векторизированные операции, чтобы применить нормализацию и стандартизацию, чтобы масштабировать атрибуты набора данных ценообразования данных дома.
Например, мы использовали следующий код, чтобы применить нормализацию в Лотерей атрибут:
df_norm['LotFrontage'] = (df_float['LotFrontage'] - df_float['LotFrontage'].min()) / (df_float['LotFrontage'].max() - df_float['LotFrontage'].min())
Мы также применили стандартизацию к тому же атрибутам и сохранены результат в отделенном Dataframe :
df_std['LotFrontage'] = (df_float['LotFrontage'] - df_float['LotFrontage'].mean()) / df_float['LotFrontage'].std()
После масштабирования атрибутов мы создаем линейные регрессионные модели для каждого набора данных и сравнивали результаты.
Реальные данные против линейных регрессионных моделей
Заключение
Сравнивая счет моделей, мы пришли к выводу, что масштабирование атрибутов сами по себе не улучшает линейные регрессионные модели. Проверьте полный пример в ссылке ниже:
Оригинал: “https://dev.to/rodolfomendes/how-to-scale-attributes-with-normalization-and-standardization-41ja”