Когда ваши данные состоят из атрибутов с разным масштабом, многие алгоритмы машинного обучения могут выиграть от изменения масштаба атрибутов, чтобы все они имели одинаковый масштаб. Часто это называется нормализацией, и атрибуты часто масштабируются в диапазоне от 0 до 1.

Это метод стандартизации независимых переменных, представленных в фиксированном диапазоне, чтобы привести все значения к одинаковым величинам. Обычно выполняется на этапе предварительной обработки данных, а также помогает ускорить вычисления в алгоритме. Используется в линейной регрессии, K-средних, KNN, PCA, градиентном спуске и т. д.

Зачем нужно масштабирование?

Масштабирование функций следует выполнять с независимыми переменными, которые различаются по величине, единицам и диапазону, чтобы стандартизировать их до фиксированного диапазона.
Если масштабирование отсутствует, алгоритм машинного обучения присваивает больший вес большим значениям независимо от единицы значений. . Поскольку диапазон значений необработанных данных сильно различается, в некоторых алгоритмах машинного обучения целевые функции не будут работать должным образом без нормализации. Например: -

ML считает, что значение 1000 грамм> 2 килограмма или значение 3000 метров превышает 5 км, и, следовательно, алгоритм даст неверные прогнозы.

Многие классификаторы рассчитывают расстояние между двумя точками по евклидову расстоянию. Если одна из функций имеет широкий диапазон значений, расстояние будет зависеть от этой конкретной функции.
Следовательно, диапазон всех функций должен быть нормализован так, чтобы каждая функция вносила примерно пропорциональный вклад в окончательное расстояние. Еще одна причина, по которой применяется масштабирование функций, заключается в том, что градиентный спуск сходится намного быстрее с масштабированием функций, чем без него. Короче говоря, мы уменьшаем масштаб до того же масштаба.

Алгоритм, НЕ основанный на расстоянии, не зависит от масштабирования объекта. например. Наивный Байес

В основном четыре типа масштабирования функций: -

  1. Минимальное и максимальное масштабирование (масштабирование): - Он отличается от нормализации в том смысле, что здесь единственный мотив для изменения диапазона данных, тогда как, как и в случае нормализации / стандартизации, единственным мотивом является нормализация кривой формы распределения и чтобы сделать его идеальной кривой Гаусса. данные масштабируются до фиксированного диапазона - обычно от 0 до 1. Стоимость наличия этого ограниченного диапазона в отличие от стандартизации заключается в том, что мы получим меньшие стандартные отклонения, которые могут подавить эффект выбросов .

Используется в нейронных сетях глубокого обучения, обработки изображений и свертки.

2. Средняя нормализация: - Точка нормализации состоит в том, чтобы изменить ваши наблюдения так, чтобы их можно было описать как нормальное распределение. Нормальное распределение (распределение Гаусса), также известное как колоколообразная кривая - это конкретное статистическое распределение, при котором примерно равные значения наблюдений попадают выше и ниже среднего. варьируется от -1 до 1 со средним значением = 0.

3. Стандартизация (нормализация Z-балла): - преобразует ваши данные так, что результирующее распределение имеет среднее значение 0 и стандартное отклонение 1. μ = 0 и σ = 1. В основном используется в KNN и K-средствах.

где μ - среднее (среднее), а σ - стандартное отклонение от среднего; стандартные баллы (также называемые баллами z) образцов рассчитываются следующим образом:

4. Бинаризовать данные (сделать двоичными): -
Вы можете преобразовать данные, используя двоичный порог. Все значения выше порогового значения помечены как 1, а все равные или ниже отмечены как 0. Это называется бинаризацией ваших данных или пороговым значением ваших данных. Это может быть полезно, когда у вас есть вероятность того, что вы хотите получить четкие значения. Это также полезно при разработке функций, когда вы хотите добавить новые функции, которые указывают на что-то значимое. Вы можете создавать новые двоичные атрибуты в Python, используя scikit-learn с классом бинаризатора.

# бинаризация из sklearn.preprocessing import Binarizer
http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.Normalizer.html http: // scikit-learn .org / стабильный / модули / сгенерированный / sklearn.preprocessing.Binarizer.html

5. Единичный вектор: - Масштабирование выполняется с учетом того, что все значения объекта имеют единичную длину. Это весьма полезно при работе с объектами с жесткими границами. Например, при работе с данными изображения цвета могут варьироваться от 0 до 255.

Следуйте моему примеру кода записной книжки jupyter здесь: - github

Всего наилучшего! Удачного кодирования ...

Facebook | Инстаграм