Нормалды! или Как Приручить Хаос в Данных

*https://www.youtube.com/watch?v=p3H5N_KRbuY
**https://300.ya.ru/v_h09Ou8vu

таймкоды

00:00:05 Введение

  • Обсуждение нестандартных распределений данных в реальном мире.
  • Цель лекции: подготовка данных для машинного обучения.
  • Представление лектора: Илья Елисеев.

00:00:57 Подготовка к лекции

  • Ссылка на IPNB-файл и архив с данными в первом комментарии.
  • Призыв поставить лайк и подписаться на канал.

00:01:23 Типы распределений

  • Равномерное распределение: редкое, часто встречается в идентификаторах баз данных и периодических данных.
  • Нормальное распределение: часто встречается, подходит под центральную предельную теорему.
  • Логнормальное распределение: данные могут быть приведены к нормальному распределению путём логарифмирования.

00:02:16 Визуализация распределений

  • Синтез данных с помощью функций uniform, normal и lognormal.
  • Построение гистограмм для равномерного, нормального и логнормального распределений.

00:03:23 Примеры распределений в реальной жизни

  • Равномерное распределение: идентификаторы баз данных, периодические данные, синтетические данные.
  • Нормальное распределение: пробег грузового автомобиля, количество минут телефонных разговоров, количество снятий в банкоматах.
  • Логнормальное распределение: доходы физических и юридических лиц, лайки в соцсетях, количество отзывов на бизнесы.

00:04:51 Анализ реальных данных

  • Загрузка данных: отзывы на бизнесы из Yellow Page, данные по оттоку абонентов, кредитный скоринг, охваты моделей Playboy.
  • Анализ распределений: количество отзывов, количество голосовых сообщений, доход, охваты моделей Playboy.

00:06:49 Проблемы с данными

  • Большой разброс данных и выбросы.
  • Несколько мод в распределении.
  • Необходимость обработки выбросов, масштабирования данных, выполнения степенных преобразований и квантилизации.

00:08:37 Обработка выбросов

  • Два классических подхода: z-оценка и правило QT.
  • Формула z-оценки: значение минус среднее по всему признаку, делённое на средний квадратичный разброс.
  • Правило QT: нижняя граница — первый квартал минус 1,5 межквартильного интервала, верхняя граница — третий квартал плюс 1,5 межквартильного интервала.

00:10:30 Визуализация выбросов

  • Функция Plot Outliers для визуализации выбросов.
  • Пример с данными журнала Playboy: по z-оценке 7 девушек, по правилу QT — одна девушка.

00:11:29 Дополнительные данные

  • Визуализация данных по количеству обзоров и инкому.

00:11:46 Анализ выбросов в данных

  • График практически весь красный, что указывает на большой процент выбросов.
  • Review Count и Income имеют нормальное распределение, но Z-Score и T-Test не дают хорошей оценки выбросов.
  • Выбросы в количестве голосовых сообщений из датасета «Отток абонента» отрицательны, что невозможно.

00:12:45 Визуализация выбросов с помощью Boxplot

  • Boxplot показывает межквартильный интервал, границы по правилу Тьюки и выбросы.
  • Пример с данными журнала Playboy: данные близки к нормальному распределению.
  • Для данных, не похожих на нормальное распределение, Boxplot менее информативен.

00:13:38 Нормализация и масштабирование данных

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

00:14:58 Методы масштабирования

  • Используются четыре метода: min-max шкалирование, L2 нормализация, стандартное шкалирование и рабасное шкалирование.
  • Методы применяются унифицированно ко всему датасету.
  • Деревья решений не требуют масштабирования данных, главное — избавиться от выбросов.

00:16:28 Пример с датасетом Ириса Фишера

  • Датасет Ириса Фишера используется для классификации ирисов по трём классам.
  • Min-max шкалирование: минимальное значение становится 0, максимальное — 1.
  • После min-max шкалирования данные равномерно распределены в диапазоне от 0 до 1.

00:18:15 L2 нормализация

  • L2 нормализация делит каждый вектор на его собственную норму, равную единице.
  • Уничтожает информацию о масштабе данных относительно друг друга.
  • Подходит для задач анализа текстов, но не рекомендуется для других задач.

00:19:56 Стандартное и рабасное шкалирование

  • Стандартное шкалирование: вычитание среднего значения и деление на дисперсию.
  • Рабасное шкалирование: использование медианы и межквартильного размаха.
  • Оба метода сохраняют масштаб данных относительно друг друга и не влияют на распределение данных.

00:21:32 Влияние масштабирования на реальные данные

  • Пример с признаком «инком»: исходный разброс от 0 до 10^6, после стандартного шкалирования — от -0,5 до 10^3, после рабасного шкалирования — от -1,5 до 520.
  • Масштабирование значительно уменьшает размах данных.

00:22:31 Визуализация данных с помощью гистограммы

  • Построение гистограммы количества обзоров на бизнес из Yellow Page с дефолтными настройками.
  • Анализ распределения данных: белое поле, длинный хвост справа, похожее на логнормальное распределение.

00:23:30 Применение логарифмического масштаба

  • Использование логарифмического масштаба по оси Y для улучшения визуализации.
  • Логарифмирование по оси X для сжатия диапазона данных.

00:25:21 Ограничение количества столбиков

  • Настройка количества столбиков гистограммы для улучшения видимости распределения.
  • Пример с 100 столбиками: явный пик и увеличение величины распределения.

00:26:21 Анализ распределения голосовых сообщений

  • Распределение голосовых сообщений имеет две моды: ноль и около 30.
  • Изменение масштаба по Y и логарифмирование по X для лучшего анализа.

00:27:48 Преобразования данных

  • Применение логарифмирования для изменения характера распределения данных.
  • Логарифмирование по основанию 10, 2 или экспоненте.

00:28:54 Пример логарифмирования доходов

  • Оригинальное распределение доходов в логарифмированной шкале.
  • После логарифмирования распределение становится более нормальным, появляется возможность оценки по Z-Score.

00:30:50 Степенные преобразования Box Cox и EO Johnson

  • Box Cox работает только с положительными данными, EO Johnson — с нулевыми и отрицательными.
  • Примеры применения Box Cox и EO Johnson на данных дохода и количества обзоров.

00:32:43 Проблемы с дискретными данными

  • Дискретные данные не позволяют получить нормальное распределение после преобразований.
  • Преобразования создают отдельные столбики, которые могут быть восприняты как симметрия, но не как нормальное распределение.

00:33:37 Заключение

  • Призыв к зрителям делиться своими результатами после применения степенных преобразований и логарифмирования.

00:33:52 Введение в квантилизацию

  • Квантилизация позволяет преобразовать непрерывные данные в категориальные.
  • Цель — добиться равномерного распределения или распределения, похожего на колокол Гаусса.
  • Пример с датасетом Critical Scoring и признаком Income.

00:34:47 Работа с пропусками данных

  • Удаление пропусков в одном серии и заполнение их медианой в другом.
  • Формирование категорий по доходу с помощью функции pandas.cut.
  • Визуализация результатов с помощью гистограммы.

00:35:47 Проблемы интуитивного подхода

  • Гистограмма показывает неравномерное распределение данных.
  • Необходимость более математически выверенного подхода.
  • Использование функции quantile из Pandas для вычисления квантилей.

00:36:47 Применение квантилизации с децилями

  • Построение гистограммы для данных с децилями.
  • Получение равномерного распределения после квантилизации.
  • Формирование 10 категорий.

00:37:33 Функция QCAT

  • Функция QCAT позволяет указать количество корзин квантили.
  • Визуализация данных показывает идеальное равномерное распределение.
  • Возможность оценки влияния признаков на результирующий признак.

00:38:48 Влияние замены пропусков медианой

  • Гистограмма показывает «средний палец» из-за замены пропусков медианой.
  • Возможные альтернативы: обнуление или присвоение случайного значения.

00:39:40 Эксперименты с количеством категорий

  • Увеличение количества категорий до 100 и 1000.
  • Алгоритм пытается выровнять повторяющиеся значения.

00:41:39 Квантильный трансформер из Calorna

  • Возможность задания целевого распределения: нормальное или равномерное.
  • Применение к количеству отзывов и доходу.
  • Получение равномерного распределения для дохода.

00:43:53 Итоги и заключение

  • Нет универсальных рецептов для работы с данными.
  • Необходимость индивидуального подхода в зависимости от задачи.
  • Призыв к обратной связи и подписке на телеграм-канал.

Transcript

0:00
[музыка]
0:06
Когда мы говорим данные нормальные, мы что обычно имеем в виду? Сразу представляем пресловутый колокол Гауса.
0:11
Но реальный мир не всегда бывает таким симметричным. Доходы, лайки, пробеги, [музыка]
0:17
всё это может иметь распределение очень далёкое от нормального. И сегодня мы с вами поговорим о нестандартных
0:23
распределениях, о выбросах и вообще о том, как нам организовать правильные наши данные, чтобы наше машинное
0:29
обучение не превращалось в лотерею. Вы находитесь на канале Учись учить
0:35
машину или учись машину учись. Меня зовут Елисеев Илья Сергеевич, и я
0:40
начинаю серию лекций о не сколько машинном обучении, сколько предварительной подготовке данных. и
0:46
помогу вам сделать этот процесс, на который уходит, как известно, порядка 80% времени у дата scienтистов,
0:53
увлекательным и интересным. Поехали. Прежде чем мы начнём, а в ссылке в
1:00
первом комментарии к данному видео вы можете найти IPNB файл и архив с данными, который будет использоваться во
1:06
время данной лекции. Закачайте это себе, поставьте сейчас на паузу и давайте проходить эту лекцию
1:11
вместе. Ну, а также прошу вас поставить лайк этому видео и подписаться на канал, чтобы не пропустить следующие лекции.
1:23
Начнём с теории. Вспомним, какие есть типы распределений и какие [музыка] нам могут встретиться в
1:28
реальной жизни из них. Мы говорим про распределение некое количественной характеристики, которая имеет
1:33
непрерывную или дискретную природу. И какие распределения на могут встретиться? равномерное распределение
1:39
достаточно редкое, э, нормальное гаусовое распределение гораздо чаще встречается. Ну и, соответственно, она
1:45
подходит и под центральную предельную теорему. Про неё есть ещё и закон больших чисел и так далее. А лог
1:51
нормальное распределение или экспоненциальное распределение, когда данные у нас могут быть приведены к
1:57
нормальному распределению путём [музыка] логарифмирования их величин. Случайное распределение посмотрим уже, когда будем
2:03
заниматься данными из реального мира. Вот. И давайте визуализируем для начала
2:10
равномерное нормальное лог нормальное распределение. Для этого проимпортируем всё, что нам
2:15
может понадобиться. Проимпортировали. Синтезируем данные при помощи нампаевских функций uniform,
2:21
normal и logal. Соответственно, построим дистограммы при помощи себорна.
2:28
Вот такая у нас картинка. Начнём с равномерного распределения. Обычный генератор случайных чисел нам генерирует
2:34
данные, распределённые по вот этому самому равномерному закону. [музыка] Мы с вами видим гистограмме то, что я
2:40
называю забор. То есть такие жестотетины [музыка] примерно одинаковые высоты, стоят рядом друг с другом.
2:45
Соответственно, показывают нам на то, что частоты величин в диапазоне от нуля до единицы, в данном случае они
2:51
практически одинаковые. Нормальный лига распределения колокол Гауса. Наверняка
2:57
знакомая вам картинка. У нас есть некий пик частот, он же мат ожидания, он же
3:03
мода, он же средняя в данном случае, он же медиана. Колокол симметричен [музыка]
3:10
справа и слева. То есть вероятность отставания от этого
3:15
самого генерального значения в большую или меньшую сторону, она от тает по мере, собственно, отставания [музыка] от
3:22
этого значения. Ну и в случае с лог нормальным распределением, когда вы видите на
3:27
гистограмме один большой столбик слева или вообще никакого столбика слева не видите, но вы видите большой длинный
3:33
хвост справа, то здесь, скорее всего, речь идёт [музыка] именно про лог нормальное распределение случайной
3:39
величины. И в каких случаях нам могут встретиться вот эти вот три типа распределений в реальной жизни.
3:45
Равномерное распределение встречается нам достаточно редко, и, как правило, это вовсе никакая не случайная величина.
3:52
Если вы видите гистограмму, характерную для равномерного распределения, то, скорее всего, это какие-нибудь идентификаторы баз данных, либо какие-то
3:59
периодические данные, а либо это намерено сгенерированы синтетические данные для того, чтобы бить вас с толку
4:04
в этом датасете. Нормальное распределение встречается нам гораздо чаще. Пожалуйста, в качестве примера это
4:11
пробег грузового автомобиля за месяц, это количество минут телефонных разговоров, это количество снятий в
4:17
банкоматах при отсутствии финансовых потрясений и другие примеры, характерные
4:22
именно для тех случаев, когда у нас есть какое-то целевое значение. Ну и не
4:28
всегда мы в это целевое значение попадаем. Ну и лого нормальное распределение — это, пожалуйста, доходы
4:34
физически юридических лиц, это лайки в соцсетях, количество комментариев под поставим в соцсетях, количество отзывов
4:40
на там бизнесы, которые мы будем дальше рассматривать. Это всё, скорее всего, имеет лог [музыка] нормальную природу.
4:51
Теперь давайте загрузим реальные данные. И что это за данные такие? Э, отзывы на
4:57
локальные бизнесы из Yellow Pйджа, жёлтых страниц. Здесь будет просто количество отзывов
5:04
без их содержания. Нам важно как раз-таки оценить количество отзывов для каждого бизнеса с точки зрения распределения.
5:10
Аток клиентов телекоммуционной компании. Мы там с вами посмотрим на признак под названием количество голосовых сообщений
5:16
у абонента. Интересное распределение, там сами всё увидите. Данные по кредитному скорингу, но здесь
5:23
это данные из бюро кредитных историй, и нас в этом случае будет интересовать только признак доход. распределение, по
5:30
[музыка] которому мы будем анализировать. Ну и в качестве вишенки на торте, чтобы не было так скучно, у нас будут данные
5:37
об охватах модели журнала Playboy за всю его историю аж до 2009 года. Запустим
5:42
эту клетку, посмотрим, что у нас получается. Вот, собственно, количество отзывов на
5:48
бизнесы с их идентификаторами. Вот, пожалуйста, у нас данные по току абонентов с разными признаками. Мы будем
5:55
анализировать только количество голосовых сообщений. А
6:00
кридитный скоринг. Нас интересует только доход. Доход здесь в долларах, по-моему,
6:05
канадских. И, собственно, охваты моделей Playboy. Здесь, я думаю, объяснять много. Никому
6:11
особо не надо. И так все всё понимают. Вот так выглядит количество отзывов на бизнес в Елпе. А, как вы видите, на этой
6:19
[музыка] гистаграме сразу всё становится ясно, что у нас к чему. Вот. Но, скорее всего, речь у нас с вами идёт здесь о
6:26
логонормальном распределении. [музыка] Видите, у нас такая высокая, едва заметная башня слева и длинный-длинный
6:32
хвост справа. А количество голосовых сообщений у нас выглядит вот таким вот образом. А это из датасета по оттоку
6:40
абонентов. То есть, видите, у нас довольно большая мода в нуле, то есть, ну, очень многие не используют [музыка]
6:45
голосовые сообщения. Ваша покорная слуга к ним тоже относится. И где-то в районе тридцати у нас есть определённая мода.
6:53
Э-э, кредитный скоринг, э, тоже явные логонормальное распределение. То есть у нас есть одна, э-э, большая башня слева,
7:00
длинный хвост справа. Это, напоминаю, признак доход из датасета по кредитному скоингу. Вот. Но если говорить про, э,
7:07
[музыка] Playmates, то есть модели журнала Playby, вот, пожалуйста, дистограмма распределения охватов талии
7:13
у этих моделей. Э, можно сказать, что она даже немножко похожа чем-то на
7:19
нормальное распределение, но есть совершенно явные выбросы. Вот. Ну, и если строить гистаграмму для, например,
7:24
года выхода журнала Playboy, журнал Playбоby выходил регулярно, то есть в год там, не знаю, сколько, штук 12
7:31
выпусков, наверное, выходило. Соответственно, мы с вами видим, что видим вот такой вот практически идеальный забор.
7:37
Чем плохи эти данные? У нас достаточно большой разброс. Здесь разброс данных 10
7:43
в третьей степени примерно. Здесь разброс данных у нас 10ше степени примерно.
7:49
А у нас есть совершенно очевидные выбросы. Вот, пожалуйста, есть у нас талии близкие к девяностым или там талии
7:56
какие-то совсем маленькие. Например, вот в моделях журнала Playboy. У нас есть несколько мод. И что же мы можем с этими
8:03
данными сделать? Первое, нужно разобраться с выбросами. Второе, нужно
8:09
эти данные масштабировать. [музыка] Третье, попробовать выполнить над ними всевозможные степенные преобразования
8:16
логарифмирования или преобразования бокс кокса Еу Джонсона. [музыка] И четвёртое, попробовать сделать над ними такую
8:22
операцию, как биннинг или квантилизацию. [музыка] То есть перевести наши данные с количественной характеристики
8:29
в характеристику категориальную. Давайте смотреть, как это делается.
8:35
[музыка] Начнём с обработки выбросов. И самое сложное при работе с выбросами — это,
8:41
собственно, принять решение, что мы с ними делаем. Как говорится, казнить нельзя [музыка] помиловать. Либо мы
8:46
записи с выбросами удаляем, особенно если они какие-нибудь совсем неправдоподобные, типа отрицательный возраст или там, не знаю, вес больше 300
8:54
кг для человека или там какие-то другие характеристики, которые находятся на грани фантастики,
9:01
а либо э использовать [музыка] какие-то другие преобразования типа шкалирования данных. Вот. Но в любом случае анализ
9:08
наших данных на выброс, он будет полезен. И что мы, э, можем использовать для того, чтобы определить, какие данные
9:14
у нас являются [музыка] выбросами? Э два классических подхода. Классический
9:19
подход первый — это Z-ценка, так называемая. Вычисляется она для каждого экземпляра данных по вот такой вот
9:25
формуле. То есть [музыка] само значение минус среднее по всему признаку делённое на средний
9:30
квадратичный разброс или на сигму. И что мы с вами получаем? Если у нас Z оценка
9:35
в районе нуля для этих данных, то они находятся как раз-таки в зоне нашего среднего. единица, двойка, соответственно, на одну
9:41
или на две сигмы выше ниже нашего среднего. Если модуль этой Z оценки вот такой вот, да? Если модуль из Z оценки
9:48
больше трёх, то значит, что уже это возможный выброс. А Z оценка хорошо работает для нормально распределённых
9:54
данных или данных распределения, которые близко к нормальному. [музыка]
9:59
Другой способ, который, в общем-то, тоже работает на относительно хороших данных — это использование так называемого
10:06
правила Тюки, которые, в свою очередь, используют [музыка] так называемый межкварный размах. Что такое
10:11
межквартильный размах? Это разница между значениями, соответствующими третьему [музыка] и первому а квартелям. И,
10:18
соответственно, нижняя граница по правилу [музыка] тюки — это первый квартель минус полтора умноже на межквартильный интервал. Вот. верхняя
10:25
граница — это собственно [музыка] третий квартель плюс полтора умноженны — это самый межкварный интервал. И все
10:31
значения за пределами этих границ, они у нас считаются выбросами. А посмотрим на примере, э талии девушек
10:38
и журнала Playboy. Я написал специальную функцию, она называется Plot Outliers. Она, причём,
10:44
сама применяет тот или иной метод детекции выбросов. Вот, пожалуйста, правила Q или Z score. Здесь всё это
10:49
имплементировано. Она рисует нам гистограмму. Вот. при этом заливает красным цветом собственно то, что можно
10:56
считать выбросами. Давайте визуализируем это дело для девушек журнала Playboy.
11:03
Вот что у нас получается. Распределение талей модель журнала Playбо за долгие годы существования этого журнала.
11:10
Значит, по Zor у нас только семь девушек не соответствует статистическим требованиям к моделям
11:17
журнала Прибой по охвату талей. по Тюке. Господин Тюки оказался у нас гораздо строже. 61 девушка из 604 можно стать
11:26
подозрительными в этом датасете. Если мы визуализируем другие данные
11:33
то мы с вами увидим вот такую картинку.
11:38
Вот, пожалуйста. Вот получилось у нас что по количеству обзоров. И что у нас получилось? Давайте посмотрим ещё по
11:44
инкому. А здесь, как вы видите, весь график практически красный. по ZCore чуть получше по Тюке вообще всё красное
11:53
и довольно большой процент выбросов у нас здесь. Но смотрите, у нас и Review Counto, и Incм очень похожи на лог
12:00
нормальное распределение. И в данном случае ни тюки ни Zscore не
12:05
дадут нам хороший оценки по выбросам. Вот. И здесь с выбросами нужно быть очень аккуратными и разбираться
12:11
каким-то, видимо, совсем отдельным образом. Видимо, в комплексе с другими признаками.
12:17
Если говорить про количество голосовых сообщений из датасета от ток абонента, то мы здесь с вами видим, что выбросами
12:25
в нижнюю сторону являются, в общем, отрицательное количество этих самых голосовых сообщений, что, в принципе, невозможно. По заткорой потюке вот не
12:32
так много у нас получается выбросов из трёх с лишним тысяч записей в этомсете.
12:38
Ещё один способ визуализации выбросов по правилу Тюки — это использование диаграммы под названием боксплот или
12:44
ящик с усами. Давайте посмотрим, как она работает. Я визуализирую все вот эти вот данные, с
12:51
которыми мы работаем из реального мира. Наиболее нагляден здесь, конечно, ящик с усами с талиями модель журнала Playby.
12:57
Собственно, сам ящик — это у нас тот самый межквартильный интервал. Э усы, то
13:03
есть вот эти вот линии, это как раз-таки границы по правилу тюки. Вот. Ну а кружочки, которые мы видим, это,
13:08
собственно, как раз-таки и есть те самые выбросы. Данные по талям журнала Playby, как вы
13:14
помните, они у нас достаточно близкие к нормальному распределению. Вот если посмотреть на данные другие, то,
13:21
соответственно, у нас здесь совсем всё плохо. Логонормальное распределение выглядит вот так вот
13:26
страшно. Вот что-то, что не очень похоже на нормальное, например, количество голосовых сообщений выглядит менее
13:32
страшно. В общем, здесь эта диаграмма менее информативна.
13:38
Давайте теперь рассмотрим элементарное преобразование данных, которые мы можем сделать. Это нормализация шкалирования
13:44
или масштабирование. У некоторых, глядя на слово нормализация, может сложиться ошибочное впечатление, что мы тем
13:51
приёмом загоним наши данные в нормальное распределение. Нет, здесь корень норм в слове нормализация имеет
13:57
отношение скорее к нормированию, к норме вектора, которую мы будем [музыка] использовать для, собственно, этого этой
14:03
операции. А о чём вообще в принципе идёт речь? Данные из реального мира мы получаем и в
14:10
совершенно разных единицах измерения, и в совершенно разном масштабе. То есть у нас в одном тасете [музыка] могут быть и
14:16
рубли, коэффициент кислотности pH, и кубометры, и дата, время. У всего этого
14:22
совершенно разный размах. И, соответственно, если мы собираемся, например, делать поиск ближайших
14:28
соседей, то на таких вот немасштабированных данных у нас этот алгоритм будет работать, откровенно
14:34
говоря, плохо. То же самое касается и кластерного анализа, и измерения размерности
14:43
типа PC [музыка] SNE. Вот. Ну, я уже не говорю про линейные модели, некоторые из которых
14:49
прямо требуют, чтобы данные у нас были отмасштабированы, отшкалированы. Иначе они [музыка] будут работать, ну, совсем
14:56
непредсказуемо. А какие приёмы для этого используются?
15:02
Всего четыре подхода, как правило. Это Минмак шкалирование, это L2
15:07
нормализация, то есть когда мы с вами как раз-таки каждый вектор приводим к норме равной единицей. А стандартное
15:15
шкалирование и робаственное шкалирование. Последние два метода относятся у нас как раз к методам
15:21
выравнивания наших данных. То есть мы выводим их матдания или медиану в ноль.
15:26
Вот. И ставим дисперсию в единицу в случае стандартного шкалирования.
15:33
А все эти методы, они применяются унифицированно ко всем данным в нашем датасете. То есть мы не можем взять и
15:40
применить один метод к одним признакам, другой метод к другим признакам. [музыка] То есть взяли унифицировано весь датасет, отшкалировали выбранным
15:47
нами методом. А в каких случаях не нужно применять нормализацию,
15:52
шкалирование и так далее. В тех случаях, когда вы собираетесь использовать, например, деревья решений и модели,
15:59
которые на этих деревьях решений основаны, [музыка] там главное вам избавиться от вопиющих выбросов, которые
16:06
эти модели сбивают с толку. Вот. А то, что у вас данные там не масштабированы, в общем, деревьям решений, это
16:13
безразлично. Давайте смотреть, как это работает на классическом тасете Ириса Фишера.
16:18
Посмотрим, что все эти приёмы нормализации делают с данными, которые [музыка] там есть. Давайте смотреть.
16:28
А датасета Ириса Фишера. Этому датасету уже более 80 лет. Суть его в том, что
16:33
здесь автор предлагает нам по размерам цветков, то есть конкретно их цветов и
16:39
чашелистиков, конкретным измерениям, классифицировать эти самые ирисы по трём
16:44
классам. Загрузим [музыка] datasсеet. Он находится врnassets. А
16:50
визуализируем сразу это всё в виде матрицы диаграмм рассеяния. Посмотрим [музыка] на пространственное распределение
16:56
признаков друг относительно друга. И теперь после этого сделаем для начала минмакслирование этих признаков. Что
17:03
такое минмакс шкалирование? Это приём, который делает минимальное
17:09
значение, которое у нас было по каждому изменению делать его ноликом, а максимальное значение делать его единицами. Вот можете увидеть это на
17:15
этой формуле. А посмотрим, что у нас стало с нашими
17:22
ирисами после минмак шкалирования. Значит, как делается минмак шкалирование? Мы импортируем из Scalorn Processing этот самый Inmax.
17:30
А делаем копию нашего датасета. Выполняем у этого шкалера функцию Fit
17:35
transform, которая делает это преобразование по всем признакам, кроме результирующего. И затем снова рисуем
17:41
plло, то есть матрицу диаграмм рассеяния по отшкалированным данным. Вот что мы с
17:46
вами видим [музыка] здесь. Если наложить одну матрицу на другую, то никаких
17:52
различий в пространственном распределении признаков мы не увидим. Мы увидим здесь только то, что у нас
17:58
здесь данные просто легли в масштаб от нуля до единицы. Вот, пожалуйста. Это в
18:03
этом не сложно убедиться. Значит, в каких случаях мы прибегаем к Минмасшкалированию на наших данных?
18:09
Значит, в тех случаях, когда у нас есть бинарные признаки, то есть те, которые уже имеют значение ноль единицы. Когда у
18:15
нас данные не имеют больших выбросов, то есть приведение их к масштабу от нуля до ниц
18:21
не придёт к тому, что у нас немножко произойдёт потеря точности этих данных. А вот что произошло у нас после мимо
18:27
шкалирования. Рассмотрим L2 нормализацию, то есть горизонтальную нормализацию. Тот случай, когда у нас
18:33
каждый вектор или каждая запись таблицы делится на свою собственную норму. Получается, что норма у каждой записи
18:40
после такого преобразования у нас становится равна единице. [музыка] Такое преобразование данных уничтожает
18:45
информацию о масштабе данных относительно друг друга. И прибегать к такому преобразованию имеет смысл только
18:50
в том случае, когда вам важно направление каждого вектора, но ни в коем случае не его размер. Э, если
18:56
говорить про конкретные задачи, то это задачи анализа текстов, например. С другими задачами сталкиваться, в общем,
19:03
не приходилось. Поэтому, коллеги, избегайте использования 2 нормализации. А, но на всякий случай, если она
19:09
всё-таки понадобится, то для этого используется функция normalлай. она выполняет это преобразование. Вот. Ну и
19:15
на этой диаграмме, на сочетании этих двух графиков, мы видим, что делает это самое L2 нормализация по сравнению с
19:23
мимакшколированием. Если при Минмакшколировании у нас данные, видите, находятся между нулём и
19:29
единицей и достаточно равномерно по всему этому полю
19:35
распределены, то в результате 2 нормализации у нас может картина различаться в зависимости от
19:41
всевозможных признаков. Почему? Потому что единица у нас принимает самое большое измерение в данном векторе, а
19:47
нолик принимает самое маленькое измерение в данном векторе. И, соответственно, у нас это влияет на вот
19:54
наше пространственное распределение данных. Теперь давайте посмотрим на стандартное шкалирование и рабастное
19:59
шкалирование. А формула для стандартного шкалирования уже знакома нам по Zценке.
20:05
То есть мы для каждого экземпляра данных производим вычитание с матжиданием или средним. делим всё это на дисперсию.
20:12
Получается, что наши данные после такого преобразования все признаки имеют матжидания в нуле, а дисперсия у них
20:19
[музыка] равна единице. Такое преобразование требуется при работе с
20:24
логистической регрессией. Во всех остальных случаях у нас есть выбор либо Минмак, либо вот [музыка] такое. А как
20:30
разновидность подобного выравнивания по нулю? А робастное шкалирование. Только здесь мы используем не среднее и
20:38
дисперсию, а используем здесь медианну, межквартильный размах. И давайте посмотрим, что у нас происходит с нашими
20:46
данными после вот таких преобразований. А мы импортируем стандартные шкалеры,
20:51
робастные шкалеры. Они все есть в модуле смпessing. Выполняем fit transform для каждого из
20:57
этих шкалеров. И вот какая картинка у нас с вами здесь получается. После Minнмак шкалирования, видите, у нас все
21:03
данные в заперты в диапазоне между нулём и единицей. После стандартного шкалирования можно с натяжкой сказать,
21:09
что они у нас симметрично относительно нуля. И после рабасного шкалирования, как видите, размах у нас несколько поуже
21:14
по сравнению со стандартным шкалированием. Вот. Э, но все эти три преобразования у нас сохраняют масштаб
21:22
векторов друг относительно друга, сохраняют масштаб данных друг относительно друга. Вот. И никак не
21:29
влияют на распределение данных. Вот. Ну, а если посмотреть на то, каким
21:35
образом влияет масштабирование на реальные данные, давайте посмотрим на признак incomeм
21:42
и, э, запустим вот эту клетку и увидим, что изначальное
21:47
значение инкома у нас имело разброс буквально от [музыка] нуля до 10/ше степени. Стал у нас разброс от — 0,5 до
21:56
10, грубо говоря, в третьей степени после стандартного шкалирования и разброс от минус полутора до
22:05
520 в случае рабастного шкалирования. То есть, в общем, размах данных у нас
22:11
сильно уменьшился. Можете самостоятельно поэкспериментировать [музыка] с этими данными. Э, вот здесь, в этой
22:19
клетке как раз ээ по окончании этого видео, если вы загрузили тетрадь, можете
22:24
проделать эти упражнения по масштабированию самостоятельно.
22:32
А теперь давайте посмотрим как влияет масштабирование наших данных на их распределение и заодно поделюсь с вами
22:38
некоторыми нюансами визуального анализа данных. Начнём с визуализации при помощи гистограммы. Количество обзоров на
22:44
бизнес из Yellow Pages. Помните, у нас там совсем такое сложное распределение.
22:50
И на той гистаграмме, которую мы строили, в общем-то, ничего особо не видно. Вот сейчас как раз первая гистограмма у нас будет построена вот с
22:56
самыми дефолтными настройками. То есть дефолтное количество столбиков, дефолтное количество корзинок и всё
23:02
остальное, в общем, тоже по дефолту, как говорится, из коробки. Запускаю эту клетку.
23:09
И вот что я здесь вижу. Вот, пожалуйста, то, что у нас было видно на первой гистограмме. Ээ с белое поле что-то нам
23:16
говорит о том, что здесь, скорее всего, что-то высокое, а вот здесь вот у нас что-то длинное, длинный хвост справа. То
23:22
есть что-то похожее, скорее всего, на лог нормальное распределение. [музыка] Данных у нас этих много, то есть у нас
23:27
там 100.000 записей. Вот размах достаточно большой, поэтому на
23:33
оригинальной Инстаграме мы увидим с вами вот такую картинку. Как эту картинку можно улучшить? Давайте сделаем
23:38
логарифмический масштаб по оси Y. То есть вот это вот количество, которое мы здесь с вами видим, вот 50.000, да, мы с
23:45
вами возьмём и сделаем 10 пяй степени 104 степени. Вот что получается у нас
23:51
после, э, применения логарифмической шкалы по игреку. Уже гистограмма,
23:56
которая выглядит более-менее как гистограмма, уже кое-какие выводы, глядя на неё сделать можно. Также мы можем
24:02
применить логарифмирование [музыка] по оси X. То есть вот эти вот этот размах наш в три порядка мы можем с вами
24:11
сжать вот таким образом. [музыка] И уже с вот этой вот гистограммой, которую мы вот так вот построили, уже с
24:17
ней можно работать. То есть, что мы с вами здесь видим? Мы видим, что абсолютный максимум у нас приходится вот
24:22
на этот первый [музыка] столбик гистограммы, который говорит о том, что пик количества обзоров у нас приходится
24:29
где-то на там 10 в [музыка] первый с небольшой степенью. И, собственно, что хотел вам показать,
24:36
если сравнить оригинальное распределение в логарифмическом масштабе и шкалированное распределение, вернее,
24:42
распределение шкалированных данных в том же самом логарифмическом масштабе, то мы с вами увидим, что
24:49
изменений-то, в общем-то, никаких нету. Дистограмма та же самая, тож масштаб только изменился.
24:54
И ээ почему так произошло? Дело в том, что масштабирование, которое мы рассматривали — это не что иное, как
25:01
линейные преобразования над данными. Оно меняет их масштаб, меняет их величину,
25:07
но не меняет пространственное расположение этих данных в линейное пространстве. Поэтому не стоит
25:12
надеяться, что нормализация сделает ваши данные нормальными. Ни в коем случае [музыка] нет.
25:20
А здесь мы с вами использовали количество столбиков авто. А
25:27
в этом случае функция, которая рисует нам гистограммы, подбирает нам оптимальное количество столбиков, исходя
25:32
из наших данных. Есть на это специальные теоремы в математике.
25:38
Мы можем улучшить видимость, вот, например, вот этой гистограммы, если укажем количество столбиков в
25:44
какое-нибудь, э, например, 100, да? У нас здесь, видите, столбиков, ну, явно
25:49
больше 100. Мы можем искусственно ограничить их количество. Давайте сделаем их для начала 100, а дальше можем [музыка] варьировать это значение
25:56
так, как нам будет угодно. Если мы сделаем их количество 100, то посмотрите, на [музыка] первой гистограмме у нас уже появляется
26:01
какое-то как видимость того, что у нас, да, вот здесь вот совершенно явный пик.
26:07
Вот. Ну и опять же величина этого всего увеличилась до 80.000. Почему? Потому что, ну, в этот столбик упало гораздо
26:14
больше значений, чем было раньше вот в том количестве столбиков, что рисовалась
26:19
наша предыдущая гистограмма. Если посмотреть на другие распределения,
26:24
давайте посмотрим на распределение данных в количестве голосовых сообщений.
26:29
Я снова сейчас верну в количество столбиков в значение авто
26:37
и запущу. А что нам даст применение масштабирования здесь? Значит, здесь у
26:43
нас количество голосовых сообщений имеет две моды. Одна мода в нуле, большинство не пользуется голосовыми сообщениями. Другая мода где-то примерно в районе
26:50
[музыка] тридцати. Но хотелось бы рассмотреть это получше. Мы можем здесь либо ограничить отображение по игреку,
26:56
вот там, чтобы нам показывал что-нибудь в пределах 500, вот, но можем сделать гораздо проще. То же самое изменение
27:02
масштаба по игреку приведёт к тому, что вот у нас эти столбики здесь вырастут, и мы с вами сможем прочитать здесь вот
27:09
отдельную моду, которая находится где-то вот в этом районе, [музыка] да.
27:14
Вот. Ну, а использование логарифмирования по иксу здесь, ну, придёт к тому, что у нас данные покажутся вот такими немножко сдутыми.
27:21
Видите? То есть вместо того, чтобы оперировать количеством голосовых сообщений, мы оперируем порядком голосовых сообщений.
27:27
Ну, в общем, ничего это нам, в принципе, не даёт. Вот так мы можем с вами управлять визуализацией данных для того, чтобы
27:34
всё-таки делать какой-то визуальный анализ, даже в тех случаях, когда на первый взгляд кажется, что у нас тут не
27:40
данная, какая-то полная муть, с которой не разберёшься.
27:48
Теперь я вам расскажу о том, какие преобразования над данными смогут изменить характер их распределения. И
27:55
да, это не линейные преобразования. Начнём со степенных преобразований, а именно применение логарифмирования. Про
28:00
него я уже обмолвился, когда [музыка] сказал, что у нас сегодня будет лог нормальное распределение, и сказал, что
28:07
применение логарифмирования к величинам приведёт данные из вот этого самого log нормального распределения к близкому к
28:14
нормальному распределению. Итак, собственно, логарифмирование. А
28:19
каким образом мы выполняем логарифмирование? Э значит логарифмирование мы выполняем либо по
28:25
основанию 10, если нам важна интерпретируемость наших результатов. Помните, сейчас мы с вами говорили, там 10 в пятой степени, 10 вче и так далее.
28:33
Это всё понятное, в общем, каждому человеку величины. А можно логарифмировать по основанию два. Это
28:39
если вам важны какие-то там двоичные данные, какие-то величины там с основанием степени два. А если никакая
28:47
интерпретируемость вам не нужна, то, пожалуйста, можете использовать натуральный логорифм по основанию
28:53
экспоненты. Итак, давайте посмотрим, что даст нам логарифмирование наших данных
28:59
[музыка] на примере распределения доходов. Вот что у нас получается, если
29:04
мы запускаем эту клеточку. А вот таково наше оригинальное распределение. Оно уже
29:10
дано в логарифмированной шкале по игреку. Вот. Давайте теперь выполним логарифмирование, собственно, самих
29:16
величин. У нас здесь, видите, размах в 10ше степени. И что мы с вами видим после логарифмирования? После
29:22
логарифмирования у нас получилось вот что-то похожее на колокол Гауса, да, только вот у нас здесь достаточно много
29:28
нулевых значений, а в остальном у нас вот как-то что-то действительно стало более нормальное распределение. Уже с
29:35
ним можно иметь дело. А если мы ещё отшколируем всё это дело, то
29:42
соответственно у нас ээ можно будет сделать оценку по Zorру.
29:47
И по Zorру как раз-таки у нас обозначатся наши выбросы. В дальнейшем вы можете эти выбросы как-то выделить
29:53
отдельно и посмотреть просто на конкретные значения, которые попадают вот эту вот красную зону. С этим
29:59
интересно будет разобраться. Кстати, возможно, что там будут открыты какие-то инсайты. Вот. Но в данном случае мы
30:05
видим, что логарифмирование по основанию 10, [музыка] в дальнейшем шкалированием этих данных уже привело
30:11
нас к какому-то более-менее положительному результату. И мы эти данные можем с вами видеть [музыка] вот
30:17
в таком более-менее нормальном виде. Какие ещё есть нелинейные
30:23
преобразования, которые мы можем применить к нашим данным? Степенные преобразование Бокскокса и Ео
30:29
Джонсона. Чем они круче, чем обычное логарифмирование? Смотрите, оба этих
30:35
преобразования используют нети коэффициент лямбда, который они сами подбирают для того, чтобы получившееся в итоге этих преобразований распределения
30:41
наших данных было максимально похоже на нормальное распределение. А, и в каких случаях применять Бокс
30:48
кокса, в каких случаях применять Ео Джонсона? Box работает у нас только с положительными данными, то есть все
30:54
величины должны быть у нас больше нуля. А Еужонсон работает и с нулевыми, и с
31:00
отрицательными данными. То есть, если у вас встречаются отрицательные значения, используем Яу Джонсона. Если у вас
31:07
значение только положительное, используем бокскокса. А теперь давайте посмотрим, как это работает Box E Johson
31:13
на наших данных. Эээ, начнём с признака incomeм, [музыка] то есть доход в
31:20
датасете критный скоринга. Посмотрим, что получается.
31:25
Вот, пожалуйста, оригинальное распределение. Напоминаю, выглядит оно у нас для инкома вот таким вот образом, с
31:32
таким достаточно большим разбросом 10 [музыка] шестой степени. После логарифмирования у нас получается что-то
31:37
очень похожее на колокол Гауса. с небольшими всплесками в левой части.
31:43
После бокскокса мы видим, что у нас получилась вот такая картинка.
31:48
А не могу сказать про похожесть его на, собственно, колокол Гауса. Видно, что он
31:55
постарался сделать всё это дело симметричнее максимально. Вот. Но получилось, ну, как получилось. Ой.
32:03
Давайте теперь посмотрим, что господа Box Кокс Еoо и Джонсон предложат нам
32:08
для количества обзоров на бизнесы из Yellow Pages. Я раскомментарю
32:13
соответствующие строчки и запущу эту клетку.
32:19
И вот что мы с вами видим. Напомню, оригинальное распределение у нас выглядит вот так. Что у нас произошло по
32:24
после логарифмирования? У нас появилась совершенно явная расчёска слева. А если
32:29
мы посмотрим на то, что у нас произошло после преобразования бокс кокса Еу Джонсона, они отработали одинаково.
32:36
Расчёска здесь приняла, ну, совсем катастрофический характер. А
32:41
как её можно объяснить? Объяснить её можно очень просто. У нас здесь данные дискретные, и большинство данных у нас
32:48
лежит здесь как раз в диапазоне количества обзоров, там 5, 6, 7, 8, 9,
32:54
10 и так далее. Соответственно, когда мы применяем вот такие преобразования, то
32:59
выполняя логарифмирование или там возведение в степень с какими-то последующими манипуляциями, мы получаем,
33:06
собственно, вот один столбик, который как раз-таки описывает, [музыка] вот, допустим, это у нас там предположительно
33:11
пять обзоров, это предположительно шесть обзоров и так далее. То есть с такими
33:17
данными мы с вами не получим колокол Гауса. мы получим в лучшем случае вот такие вот отдельно стоящие столбики,
33:24
которые, возможно, мы как-то можем воспринять как что-то приближенное к симметрии относительно вот этой вот
33:31
плотности. Вот это вот количество с низкой плотностью. Вот примерно так это работает. Пишите в
33:37
комментариях, что у вас получалось после степенных преобразований, что у вас получалось после логарифмирования на
33:43
разных данных. Ну и расскажите, с какими данными приходилось работать.
33:52
И как ещё мы можем укротить наши непокорные данные? Есть вариант. Мы с вами можем разложить
33:59
их по коробочкам так, чтобы у нас при построении гистограммы по этим самым коробочкам получалось либо что-то
34:06
похожее на равномерное распределение, то есть чтобы в этих коробочках лежало одинаковое количество данных, либо чтобы
34:13
это напоминало чем-то тот самый пресловутый кол колгаоса. То есть мы с вами переводим наши
34:19
непрерывные данные в данные категориальные, подбираем границы этих самых категорий так, чтобы у нас
34:26
получилось то или другое распределение. Называется такая операция биннинг или квантилизация. Давайте смотреть, как это
34:33
работает. Давайте посмотрим на примере датасета критный скоринга, конкретно
34:39
того же самого признака инком, который мы уже смотрели. Снова загрузим эти данные и сформируем
34:45
пару seriesрис из этого самого инкома. В одном сирисе мы удалим все пропуски, а в другом сирисе мы заполним их медианой. А
34:53
для чего я сейчас это делаю? Станет понятно, как это повлияет на наши категории, которую мы формируем.
35:00
Сформируем. У нас всего, напоминаю, здесь почти 15.000 пропусков из 75.000. То есть
35:06
почти 20% данных по доходу у нас отсутствует.
35:11
Начнём с биннинга. И иногда работает, как говорится, чуйка или интуиция. И мы
35:17
можем попытаться сформировать те самые бины, основываясь на каком-то своём представлении
35:23
о данных. Ну, сейчас не совсем тот случай. Мы берём, [музыка] допустим, вот
35:28
такое разбиение по доходам 4 5 6 7 8.000 долларов и дальше там всё остальное.
35:35
А при помощи pнascat мы формируем эти самые категории, потом пакуем их, собственно, в one hot encoding матрицу
35:42
или в дами матрицу. Смотрим, что у нас получается. Получается у нас с вами вот такая матрица. Всего шесть категорий.
35:50
А, и если мы их будем визуализировать, то у нас получится вот такая
35:55
гистограмма. Просто просуммируем количество записей в каждой категории. Вот что у нас получилось. Далеко от
36:01
нормального, далеко от равномерного. Ну и вообще, в общем, совершенно неинформативная картина у нас с вами
36:08
получилась. Надо прибегать к какому-то более математически [музыка] выверенному подходу. Чуйка нас здесь подвела. Вот,
36:16
соответственно, что за математический подход мы можем использовать? Можем использовать квантилизацию, где у нас идёт выравнивание данных по квантельным
36:22
интервалам. Посчитать квантили нам поможет вот такая функция quantile из pнс. И вот,
36:29
пожалуйста, граница квантиле для наших доходов, которые нам вычислила эта функция. Взяли мы с вами не просто квантели,
36:35
взяли мы с вами децели. И вот такие границы у нас с вами получились. Можно попробовать построить гистограммы
36:43
для этих данных. Это у нас гистограмма по основным
36:49
данным. Помните, мы такую уже строили. У нас здесь логарифмировании по иксу и по
36:54
игреку. А вот эти вот красные линии, они как раз-таки нам показывают границы наших децелей.
37:00
И если мы снова построим дами матрицу для выбранных нами децелей, то мы с вами
37:08
увидим на барплоте, она покажет нам вот что. Видите, столбики везде одинаковые.
37:14
Ну, кроме первого, потому что, ну, видимо, там данных сильно меньше, чем вот во всех
37:20
остальных столбиках. То есть мы с вами получили равномерное распределение, выполнив вот эту самую квантилизацию, то
37:27
есть распределение наших данных по децелем. У нас всё получилось в 10 категорий.
37:33
Вот теперь давайте посмотрим на другой способ формирования таких данных. Есть в
37:38
Pandas такая функция QCAD. А мы должны указать, какое количество корзины
37:44
квантелей мы хотим использовать. И, пожалуйста, получаем э
37:50
данные по категориям. Если мы их визуализируем, то есть смотрите, у нас при попадании в каждый
37:56
интервал присвоена, собственно, соответствующая категория. Если мы это будем визуализировать, у нас получится,
38:02
ну, идеальный штатетник, практически идеальный забор, идеально равномерное распределение. А что нам это даёт? А мы
38:10
можем это количество категорий увеличивать, уменьшать и так далее. И почему прекрасно именно дами матрица,
38:15
которая из этих категорий поставлена. А дело в том, что потом, используя процедуру отбора признаков, например,
38:21
используя тот же самый XG Boost или случайный лес, мы можем э оценить их по
38:26
степени влияния на результирующий признак. То есть, если, допустим, человек со средним доходом никак у нас
38:32
не влияет на то, вернёт он кредит или нет, или, допустим, миллионер у нас никак не влияет на то, вернёт значит он
38:38
кредит или нет, то, соответственно, возможно, что имеет смысл просто
38:43
отбросить эти признаки для дальнейшего машинного обучения. Теперь покажу вам, что происходит, когда
38:50
мы пытаемся применить квантилизацию на данных, где мы отсутствующие данные заменяли медианным значением. Для этого
38:58
мы специально [музыка] сформировали отдельный series. И сейчас мы посмотрим, какая у нас при этом получается
39:04
гистограмма. Вот смотрите, у нас практически средний палец получился. Из-за чего этот средний палец взялся?
39:10
Вот это, собственно, те самые отсутствующие данные, которые мы заменили медианы. То есть, возможно, не
39:15
всегда бывает полезно заменять вот такие вот пропуски вот таким вот значением.
39:20
может быть, имело [музыка] смысл их обнулить, наоборот, или присвоить какое-то другое значение
39:26
или присвоить какое-то случайное значение в разбросе относительно медианы для того, чтобы у нас как-то всё это а
39:32
было более-менее равномерно распределено. А так вот, пожалуйста, у нас такие кривые категории получились, когда мы забили вот эти вот отсутствия
39:38
[музыка] медианой. И посмотрите, вот что будет, если мы, э, введём какое-нибудь другое количество
39:45
категорий, нежели чем 10. Допустим, укажем 100 категорий. Вот какая у нас получится картинка [музыка] для инкома,
39:52
где медиано мы ничего не заполняли, просто дропнули отсутствие. Вот что у нас получилось. Вот такая интересная
39:58
картинка. Почему получилась вот такая вот буквально расчёска? Скорее всего, из-за того, что у нас встречаются
40:04
повторяющиеся значения и этот алгоритм пытается как-то всё это выровнять, чтобы у нас всё-таки максимально равномерно
40:11
всё это было. Не готов это интерпретировать. [музыка] Если попробовать поставить, не знаю, там
40:16
1.000 категорий, то возможно, что картина будет ещё более драматической.
40:23
А нет, [музыка] 1.000 категорий. Видите, он как-то выровнял всё это. Но опять же, это могут быть огрехи рисования
40:29
дистограммы. Вот, в общем, экспериментируйте, коллеги, и возможно, что вы придёте к
40:35
какому-то интересному выводу, работы с вот такими данными, подвергая их таким
40:40
вот квантильным преобразованием. [музыка] А теперь посмотрим, как справится наш герой с количеством отзывов. Помним, что
40:48
у нас там довольно большая дискретность. А сделаем QC на 10 категорий и построим
40:56
гистограмму по этим десяти категориям. И вот что мы с вами видим. У нас преобладают данные в нулевой категории.
41:01
Если мы вспомним, что у нас было в оригинальных данных, у нас пик приходится на небольшое количество
41:07
отзывов. Поэтому возможно, что у нас как раз-таки вот в эту категорию попало там либо там
41:14
какое-то конкретное количество, либо там сочетание каких-то двух конкретных количеств, [музыка] рядом стоящие. Ну вот опять же, что у нас получилось,
41:20
когда мы просто сделали квантайлами проверку интервалов межквантильных,
41:25
междецельных в данном случае. Вот первый квантель попадает вот всё, что меньше шести отзывов, а второй то, что между
41:31
шестью и семью. Ну, соответственно, не могу сказать шесть или семь, но вот что-то такое.
41:39
Сейчас мы с вами делали квантильные преобразования при помощи quantile QCAT и других функций Pнasс. Давайте
41:46
посмотрим, как работает quantile transформер, который входит в состав из коллерна. Он находится в подмодуле
41:54
проessing. Называется он так вот quantile transformer. И замечательная особенность этой библиотеки то, что вы
42:01
можете задать ей, э, скажем так, целевое распределение. То есть хотите, чтобы он вам сделал ваши данные,
42:07
откатегоризировал их так, чтобы они стали похожи на нормальные. [музыка] Можете поставить параметр distribution
42:13
normal. Вот хотите, чтобы он сделал вам дистрибуцию по этим категориям
42:19
равномерно, ставим uniform. По умолчанию uniform, а запускаем и смотрим, какая у нас будет
42:26
гистограмма для количества обзоров. Э, скажем так, лучше количество обзоров от
42:32
этого не стало. Опять же, в силу того, что у нас была [музыка] большая дискретность, то есть та же самая
42:39
расчёска, от неё нам, к сожалению, никуда не деться, только уменьшать [музыка] количество категорий. Ну вот, а
42:44
вот он наши данные сделал вот [музыка] таким вот образом как-то похожими на
42:50
равномерные. А можем посмотреть, как это отработает у
42:56
нас этот самый [музыка] квантельный трансформер на доходе.
43:03
Причём на доходе неиспорченным медианным этим преобразованием. Ну вот видите, что-то похоже на равномерное
43:09
распределение. Причём, обратите внимание, что у нас все категории лежат в диапазоне от нуля до единицы.
43:15
Вот. И можно посмотреть, как будет выглядеть нормальное распределение. Наконец-то приведём наши данные к
43:21
нормальному распределению для этого самого дохода. Смотрим, что получается. Вот, пожалуйста. Вот так мы
43:28
с вами получили в [музыка] итоге из нашего признака доход что-то очень
43:33
похожее на нормальное распределение. Вот всё-таки лучше, чем то, что было, по крайней мере, и по размаху, и по всем
43:40
своим характеристикам. Вот эта картинка мне нравится больше всего того, что у нас было видно до этого.
43:47
Подводя итоги, вот что я хочу сказать. [музыка] Не бывает универсальных рецептов по работе с данными. Возможно,
43:54
вам вообще не придётся делать никакие преобразования. вы получите максимально возможный результат [музыка] для вашей
43:59
модели, которую вы обучаете. Возможно, вам придётся потратить на работу с данными, на их преобразование, [музыка]
44:04
на их приведение в порядок не один день. Всякое бывает. Надеюсь, это видео было
44:10
вам полезным. [музыка] Если у вас есть какой-то опыт, можете им поделиться в комментариях.
44:17
С удовольствием буду рад подписке [музыка] на мой Telegram-канал, где вы сможете в комментариях или через
44:24
обратную связь в канале сделать [музыка] какие-то предложения о том, чтобы я рассмотрел какие-то случаи. Сделаю это,
44:30
возможно, в режиме онлайн, в режиме Live. Такие вещи я тоже планирую делать у себя на канале. Спасибо большое за
44:37
внимание, спасибо, что досмотрели [музыка] до этого места. Буду рад лайку, буду рад подписке, буду рад
44:43
колокольчику. Всем большое спасибо. Пока. Увидимся [музыка] в следующих выпусках или приходите ко
44:49
мне на курсы. Всем счастливо. [музыка]
44:59
เฮ

Поделиться: