Рет қаралды 3,711
Запишетесь на полный курс Машинного обучения на Python по адресу support@ittensive.com
После сбора всех данных и выявления всех ограничений и взаимосвязей финальный набор данных нужно подготовить к обработке моделью машинного обучения.
Нормирование и стандартизация
Большинство моделей лучше работают с значениями параметров, если они находятся в одном диапазоне - например, от 0 до 1. Поэтому сильно разнородные значения параметров принято приводить к одному диапазону: это повышает точность работы модели (почему так происходит, разберем в следующих уроках).
Для приведения значений независимых параметров к одному диапазону есть несколько вариантов. Первый - вычесть минимальное значение параметра из всех его значений и разделить на разницу между максимальным и минимальным. Тогда все значения этого параметра будут строго от 0 до 1 (за счет множителей можно добиться и значений от -3 до 3). Константы такого преобразования будут различаться от параметра к параметру.
Второй вариант - стандартизация (z-нормализация), приведение значений к нормальному распределению. Для этого из всех значений вычитают среднее и делят на корень из дисперсии. Значения параметра будут находиться примерно от -3 до 3. Этот вариант предпочтительнее, если значения параметра распределены нормально.
Категории и единичные векторы
Нормирование данных отлично работает для числовых (номинативных) и даже ранговых параметров. Но для категориальных признаков (например, пол респондента) не работает. Для корректной работы с категориальными данными их преобразуют в единичные векторы. Например, записи
id Пол
1 Мужской
2 Мужской
3 Женский
4 Женский
Становятся
id Пол_Мужской Пол_Женский
1 1 0
2 1 0
3 0 1
4 0 1
И затем эти значения можно преобразовать обычным образом.
Циклические значения
В ряде случаев вводят дополнительные параметры, синус и косинус от значения параметра, если параметр предполагает цикличность. Например, это может быть направление ветра (в градусах после 360 идет 0), день (от 1 до 365), неделя (от 1 до 53) и месяц (от 1 до 12) года - все эти значения идут по кругу.
Тригонометрические значения будут находиться в диапазоне от -1 до 1, поэтому дополнительно их можно разделить на 2 и прибавить 0,5, чтобы получить нормированные значения.