Зачем нужно масштабирование признаков? Как бы вы его провели?
Допустим, у нас есть линейная регрессия с двумя независимыми переменными, у которых совершенно разный масштаб. Например, значения одного признака находятся в диапазоне от 0 до 100, а второго — от 0 до 1. Чтобы подстроиться под такие признаки, модель подберёт коэффициенты так, что первый будет небольшим, а второй — большим.
Проблема тут возникает на этапе обучения. Дело в том, что скорость оптимизации таких коэффициентов не будет одинаковой: ведь при градиентном спуске мы найдём две частные производные и подберём единый для обеих производных коэффициент скорости обучения. В результате, на каждой итерации мы будем получать различающиеся значения градиента для разных направлений.
Есть несколько способов масштабирования:
▫️Нормализация.
В данном случае все значения будут находиться в диапазоне от 0 до 1.
▫️Стандартизация.
Масштабирует значения с учётом стандартного отклонения.
Для нормализации, например, можно использовать метод MinMaxScaler из scikit-learn. Для стандартизации в этой же библиотеке есть метод StandardScaler.
#машинное_обучение
Допустим, у нас есть линейная регрессия с двумя независимыми переменными, у которых совершенно разный масштаб. Например, значения одного признака находятся в диапазоне от 0 до 100, а второго — от 0 до 1. Чтобы подстроиться под такие признаки, модель подберёт коэффициенты так, что первый будет небольшим, а второй — большим.
Проблема тут возникает на этапе обучения. Дело в том, что скорость оптимизации таких коэффициентов не будет одинаковой: ведь при градиентном спуске мы найдём две частные производные и подберём единый для обеих производных коэффициент скорости обучения. В результате, на каждой итерации мы будем получать различающиеся значения градиента для разных направлений.
Есть несколько способов масштабирования:
▫️Нормализация.
В данном случае все значения будут находиться в диапазоне от 0 до 1.
▫️Стандартизация.
Масштабирует значения с учётом стандартного отклонения.
Для нормализации, например, можно использовать метод MinMaxScaler из scikit-learn. Для стандартизации в этой же библиотеке есть метод StandardScaler.
#машинное_обучение