Подготовка (pre-processing) данных

  Рет қаралды 3,711

Центр digital профессий ITtensive

Центр digital профессий ITtensive

Күн бұрын

Запишетесь на полный курс Машинного обучения на 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, чтобы получить нормированные значения.

Пікірлер
@l379
@l379 4 жыл бұрын
Благодарю Вас за структурность
@chaddoomslayer4721
@chaddoomslayer4721 2 жыл бұрын
Отличный ликбез! Спасибо!
@Леонид-с5з
@Леонид-с5з 5 ай бұрын
1:00 1:40 2:05 3 основных аспекта подготовки данных 2:09 1. Нормирование данных 3:14 4:09 при наличии отрицательных чисел диапазон получается [-1; 1] и почему не использовали более простую формулу нормирования - x/max (тоже ведь все значения будут в пределах данного диапазона)? 4:37 z-нормализация 5:24 зачем нужно 6:23 2. Категориальные данные 6:30 Приведение к единичным векторам 8:28 8:42 3. Циклические параметры 9:27 Тригонометрические функции 11:38 12:35
@ClosiusBeg
@ClosiusBeg 3 жыл бұрын
огромное спасибо!!!!
@grbak
@grbak 2 жыл бұрын
Лайк!
@viteksmarket9711
@viteksmarket9711 3 жыл бұрын
Так то интересно, спасибо, но музычка заставляет заснуть
@ivanshelonik3979
@ivanshelonik3979 2 жыл бұрын
Подскажите пожалуйста, есть ли смысл в алгоритмах деревьев решений (например xgboost/catboost) представлять временные фичи в циклическом виде? Время(например час) мы можем представить 2мя колонками cos/sin одновременно!. По сплит рулу деревьев у нас идёт разбиение лишь по одной колонке, а нам нужно, что бы модель учитывала одновременно 2 колонки, иначе выходит для 1-й sin или cos может быть а течении 24 часов несколько одинаковых точек Благодарю за ответ
@ittensive
@ittensive 2 жыл бұрын
если модель строится только по одному из парных атрибутов, то, наверное, важность второго минимальна. Технически, можно сделать какой-нибудь sinx / cosx, чтобы был учет обоих атрибутов, но это будет уже не циклично
@ivanshelonik3979
@ivanshelonik3979 2 жыл бұрын
@@ittensive Благодарю за ответ
@ClosiusBeg
@ClosiusBeg 3 жыл бұрын
Скажите пожалуйста, согласно центральной предельной теоремы мы можешь преставить любые данные (не автокррелированные) в виде нормально распределения. Выходит мы можем к любому (не автокоррелированному) набору данных применить z-нормализацию? Просто Вы сказали, что применить ее можно только к нормально распределенной выборке
@ittensive
@ittensive 3 жыл бұрын
Отличный комментарий. В реальности, все выборки - это некоторое приближение к исходному распределению генеральной совокупности. А большинство распределений являются нормальными. Т.е. z-нормализацию можно применять к любому набору данных, другой вопрос - какой от этого будет результат, если, например, у нас бинарные данные (есть/нет признак).
Разбиение выборки
9:48
Центр digital профессий ITtensive
Рет қаралды 2,1 М.
Авторегрессия
8:47
Центр digital профессий ITtensive
Рет қаралды 2,5 М.
Watermelon magic box! #shorts by Leisi Crazy
00:20
Leisi Crazy
Рет қаралды 104 МЛН
Officer Rabbit is so bad. He made Luffy deaf. #funny #supersiblings #comedy
00:18
Funny superhero siblings
Рет қаралды 18 МЛН
iPhone or Chocolate??
00:16
Hungry FAM
Рет қаралды 62 МЛН
Стационарность
8:52
Центр digital профессий ITtensive
Рет қаралды 1,1 М.
Первичная обработка (очистка) данных
1:05:32
Учиться - значит делать!
Рет қаралды 4 М.
Оптимизация гиперпараметров модели
12:35
Центр digital профессий ITtensive
Рет қаралды 2,4 М.
Лекция 9. Кейс: подготовка данных для анализа
1:14:41