background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Лекция 3. Классификация, деревья решений. Открытый курс ODS по машинному обучению mlcourse.ai"

input logo icon
Обложка аудиозаписи
Подождите немного, мы готовим ссылки для удобного просмотра видео без рекламы и его скачивания.
console placeholder icon
Теги видео
|

Теги видео

machine learning
data science
mlcourse.ai
decision trees
opendatascience
sklearn
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:01
всем привет и давайте я вначале убедись
00:00:05
что все меня нормально слышит
00:00:07
что со звуком все в порядке давайте кто
00:00:12
нить и включить трансляцию и скажет что
00:00:14
все окей
00:00:15
вперед
00:00:38
да хорошо звук есть все ждут поехали так
00:00:43
нас 3 занятия и мы наконец то начинаем
00:00:45
заниматься машинным обучением мы
00:00:48
говорили в начале про анализ данных
00:00:50
первичный без всяких картинок
00:00:53
просто там сводные таблицы построить там
00:00:55
так как данные покрутить и про визуально
00:00:58
анализ данных вот все это делалось по
00:01:01
сути ради машину обучение конечно бывают
00:01:04
разные специфики направления в анализ данных но
00:01:07
поскольку нас все-таки машины обучения
00:01:09
то вот 1 2 занятие были такие
00:01:10
предварительные не стоит недооценивать
00:01:14
именно в этот первичный анализ данных на
00:01:17
него может уходить
00:01:18
огромная куча времени то есть вы в
00:01:21
индивидуальных проектов посмотрите вот
00:01:23
просто прикиньте сколько у вас процентов
00:01:25
времени уходит на той или на тот или
00:01:28
иной этап вот и сегодня лекция будет в
00:01:31
начале про основы машина обучения потом
00:01:35
поговорим про первой базовой модели
00:01:37
такие простенькие которые надо
00:01:39
попробовать деревья решений и метод ближайших
00:01:42
соседей и после перерыва я буду
00:01:45
рассказывать про индивидуальные проекты
00:01:46
и мы тоже посмотрим на примере ну такой
00:01:49
скетч набросок с нашими данными по
00:01:52
оттока клиентов вот мы проведем ну там
00:01:55
может быть без текста без комментариев
00:01:57
особо но в целом набросаем план и
00:01:59
обсудим поехали но в принципе мы сейчас
00:02:07
не будем формально описывать задачу
00:02:09
машина обучения задача the pussycats или
00:02:12
регрессе пока на интуитивном уровне
00:02:13
немного математики у нас появится в
00:02:16
следующий раз сейчас мы представляем что
00:02:19
у нас имеются данные и как-то мы с их
00:02:23
помощью делаем прогнозы ну давайте
00:02:25
сейчас будем обсуждать что это не такая
00:02:28
что это не такой магия да не так она
00:02:30
блестящий работает все по всему не
00:02:32
получится прогнозировать но давайте
00:02:34
прежде всего обсудим о чем мы сейчас
00:02:36
будем говорить то есть какой каким
00:02:37
классом задач сейчас будем заниматься
00:02:41
прежде всего для почти любой задачи
00:02:44
машины обучения нужно выборка
00:02:48
в классической постановке объекты
00:02:51
признаки вот я так просто
00:02:53
прямоугольником нарисовал давайте
00:02:55
договоримся об обозначениях
00:02:57
или прописная эта длина выборки links
00:03:01
число объектов клиентов что угодно и
00:03:05
число признаков д д н вот уже здесь
00:03:12
может быть
00:03:13
могут быть сложности давайте что это за
00:03:15
признаки как с ними работать вдруг это
00:03:17
там голый тексты мы не знаем как с ними
00:03:19
работать но для начала давайте сейчас представим
00:03:23
что вот такая матрица у нас есть
00:03:25
по-английски иногда называет дизайн
00:03:27
notex
00:03:28
вот такая типичная матрица объекте
00:03:31
признаки надо тоже понимать что это не
00:03:33
исчерпывающие именно вот всегда
00:03:37
использовать такую матрицу бывает задача
00:03:39
там где на вход подается граф или даже картинка
00:03:42
она немного не так выглядит вот эти
00:03:43
признаки еще надо получить но в принципе
00:03:45
там 90 процента задач скорее всего с
00:03:48
которыми вы столкнетесь
00:03:49
они будут сводиться к матрице такой
00:03:51
объект и признаки тоже тут можно
00:03:54
отвлечься сказать а если это матрица там
00:03:56
в память не помещается давайте пока
00:03:57
предполагать для простоты что она
00:03:58
помещается и вот у нас есть такая
00:04:00
выборка
00:04:01
и дальше такая большая дихотомия всех
00:04:05
методов две группы обучения с учителем и
00:04:07
без учителя
00:04:11
по-английски это сип ливайс и
00:04:14
соответственно ансип вас возница очень
00:04:21
большая в обучающей выборке
00:04:24
в задачах обучение с учителем се
00:04:28
укрываясь rolling у нас есть еще метки
00:04:31
традиционно вот эту матрицу объект
00:04:34
признаки называть x вектор ответов y вот
00:04:38
тут нам понимать что это во-первых да
00:04:40
уже сильно разделяет задачи на те что вот с этим
00:04:43
вектором ответов и без него то есть вот
00:04:45
как раз вот это разделение и во-вторых
00:04:47
надо понимать что вот эта разметка она
00:04:49
как правило такой краеугольный камень
00:04:52
раздача она может
00:04:53
попросту стоить больших денег либо ее
00:04:55
можно может быть сложно получить даже в
00:04:58
задача прогнозы от тока мы обсуждали что
00:05:00
вот получить этот вектор ответов ушел от
00:05:02
нас клиент или нет или там склонен уйти
00:05:04
это совсем не так просто проставить
00:05:07
единички и нолики ушел или нет это надо
00:05:10
договориться как считать об ток коллеги
00:05:12
там не так поймут заказчики тем более не
00:05:14
так поймет но чем это уже не так просто
00:05:16
и методологически и более того это стоит
00:05:20
денег то есть алгоритмами машину
00:05:22
обучение они как правило чем больше
00:05:25
данных мы на них кидаем тем лучше
00:05:27
соответственно нам нужны вот эти длинные
00:05:29
матрицы
00:05:30
объект признаки и вектор меток и когда
00:05:34
это исчисляется уже там скажем
00:05:35
миллиардами там картинок то вот эта
00:05:38
разметкой .
00:05:40
кто-то должен делать как правильно как
00:05:42
правило это делают асессоры но вот надо
00:05:45
понимать что вот этот вектор y который я
00:05:48
нарисовал он зачастую не так просто
00:05:50
дается тем не менее
00:05:52
скорее всего у вас будет задач вот как
00:05:54
раз такая у вас будет размеченная
00:05:55
выборка и здесь объектом мы будем
00:05:59
называть строчку в этой матрице то есть
00:06:02
вот в одной строчке у нас скажем
00:06:04
какой-то человек или картинка или объект
00:06:05
со своими д признаками и соответствующая
00:06:08
отметка ну сейчас формулы не буду писать
00:06:12
пока вот на таком уровне и эта группа
00:06:17
методов обучения с учителем в принципе
00:06:22
дальше здесь деление тоже довольно-таки
00:06:24
большое но мы рассмотрим 2-а пятки
00:06:26
главные группы эта классификация и
00:06:29
регрессе
00:06:32
мы обсуждать будем по сути только вот
00:06:35
эти два семейства
00:06:36
то есть сначала мы будем говорить в
00:06:38
целом право классификацию и вот сегодня
00:06:40
в том числе потом про или грасиа потом
00:06:43
дойдем до обучения без учителя задачи
00:06:52
классификации у нас множество вот этих
00:06:55
меток а на счет на
00:06:57
ну то есть попросту число уникальных
00:06:58
значения она ограничена если это
00:07:03
какой-то ограниченное число скажем там
00:07:05
10 12 эта задача много
00:07:07
в классификации ну например вот сегодня
00:07:09
мы поработаем с картинками простенькими
00:07:12
там будет 10 классов что на картинке
00:07:15
изображена описано цифр от 0 до 9 часто
00:07:20
еще рассматривать отдельно бинар на
00:07:22
классификацию когда вот эти метки
00:07:24
y они всего лишь там либо но либо 1 ну
00:07:27
или другой вариант минус 1 или 1 то есть
00:07:31
это задача классификации задач и
00:07:33
регрессия когда вектор значениями вот в
00:07:36
этом векторе y они вещественные то есть
00:07:39
ну пап говоря могут быть любыми вот
00:07:42
здесь можно себе уже так фоном
00:07:44
представить несколько задачи
00:07:45
классификации несколько задач и
00:07:46
регрессии но я думаю с этим проблем нет
00:07:48
то есть возраст зарплата что угодно там
00:07:52
как old & wise сколько нам клиент
00:07:54
принесет это все о регрессе а какой там
00:07:57
бинарный факт например уйдет от нас
00:07:58
клиент или нет это все это будет
00:08:01
классика цей но правда зачастую здесь
00:08:04
еще в задачи классификации мы
00:08:05
заинтересованы в вероятности
00:08:07
какого-то события это тоже в принципе
00:08:09
называют к ситуации хотя надо понимать
00:08:11
что вероятность это уже циферка это от
00:08:14
нуля до единицы
00:08:15
но ее все таки не называют три грации а
00:08:17
вот например если вероятность
00:08:18
предсказуемы что клиент от нас уйдет
00:08:20
то считаем это все-таки задачи
00:08:22
классификации обучении без учителя про
00:08:28
это потом но такое колхозное в чем самое
00:08:34
простое отличие как это можно понять
00:08:35
просто закрываем этот вектор y его нет у
00:08:38
нас есть только матрица объекты признаки
00:08:40
и вот дальше даже в такой постановке
00:08:42
задачи возникает много самых разных интересных
00:08:47
под задач кластеризация самое известное
00:08:49
но не и в единое это и снижение
00:08:51
размерности и поиск выбросов и даже
00:08:53
оценка плотности распределения вот по
00:08:55
выборке это все будут задачи обучении
00:08:57
без учителя сейчас мы предполагаем что
00:09:05
такое интуитивное понимание есть что нам
00:09:07
в задачи классификации нужно как-то
00:09:10
построить функцию которая нам будет
00:09:13
отображать из множества вот в этой
00:09:17
обучающей выборке в.в.
00:09:20
метки ну то есть нас здесь будет задано
00:09:25
какая-то реальная бы чаще выборка ну то
00:09:28
есть вот здесь я могу написать
00:09:30
x и y как пространство но давайте сейчас
00:09:33
не увлекаться то есть это я не сильно
00:09:35
формально буду писать
00:09:36
x это вот конкретная матрица можно
00:09:37
представлять матрица нам пай и нам нужно
00:09:41
найти отображение из x в y ну вот это я
00:09:46
пишу не строго уточнение будут позже
00:09:51
понятно что эта функция на должна быть
00:09:54
определена не только на самой вот этой
00:09:56
матрицы x а где-то и в нее и но в общем
00:09:59
то мы представляем что зависимость между
00:10:01
входом и выходом это просто некоторые
00:10:03
функции в принципе это вот такой
00:10:06
основное предположение машины обучения
00:10:08
что даст что это будет именно функция ну
00:10:11
то есть что одного объекта будет
00:10:13
соответствовать ровно 1 метр ну и вдруг
00:10:16
у нас клиентам он и уйдет и не уйдет на
00:10:19
понятно что это не логично то есть мы
00:10:20
предполагаем что все-таки одной строке в
00:10:23
этой матрице будет соответствовать ровно
00:10:24
одна метка
00:10:25
или вероятность то есть это должна быть
00:10:28
именно функций и дальше собственный с
00:10:32
помощью деревьев решений будем такую
00:10:35
функцию строить деревья решений
00:10:41
один из самых простых алгоритмов простых
00:10:45
и понятных но во многом он похож на то
00:10:49
как работает наш мозг вот эту картинку я
00:10:52
цапнул там сайта вышки высшей школы
00:10:55
экономики не так важно что здесь
00:10:58
написано здесь написано простую
00:11:00
инструкция для человека что делать в
00:11:02
каком случае
00:11:03
данном контексте это мы написали статью
00:11:07
хотим ее как-то публиковать и нам
00:11:09
подсказывают в какой каталог отнести и
00:11:12
то там на сайте то есть если это статья
00:11:14
в сборнике материалов конференции то вот
00:11:16
мы идем сюда это форма глава книги
00:11:21
вот нота конструкция чисто математически
00:11:24
будет похоже на дерево то здесь есть
00:11:29
корень есть промежуточные вершины есть
00:11:32
листья
00:11:34
вот в дальнейшем у нас деревья
00:11:36
классификации так и будут выглядеть то
00:11:38
есть мы будем смотреть на какие-то
00:11:39
признаки вот здесь везде в этих
00:11:41
промежуточных вершинах написано какие-то
00:11:43
признаки и метки которые мы будем
00:11:47
прогнозировать
00:11:48
те элементы из вектора y это будут вот
00:11:51
эти классы дан случаев 4 препринт статья
00:11:54
книга глава книги и так далее интуиция
00:12:04
того как это работает это мы на каждом
00:12:07
шаге будем выбирать лучше признак
00:12:10
которые вот в данный конкретный момент
00:12:11
лучше всего разделяют выборку по
00:12:13
целевому классу но давайте представлять
00:12:15
себе сценарий
00:12:18
оттока клиентов и мы выбираем признак
00:12:21
который
00:12:22
вот на текущем шаге лучше всего нам
00:12:24
разобьет выборку на хороший клиентов и
00:12:26
плохих то есть нас давайте я перерисую
00:12:33
эту картинку можно в принципе даже
00:12:36
отсортировать вектор y вот для для
00:12:38
иллюстрации на плохих клиентов и хороших
00:12:41
то есть здесь у нас y будут нули это
00:12:44
клиент от нас не уходят
00:12:46
это хороший клиент но тут главное не
00:12:50
перепутать обычно единичка и обозначают
00:12:51
то события которые нас больше интересует
00:12:54
единичка это тут будет плохой клиент
00:12:56
который склонен
00:12:58
от нас уйти конечно таких будет намного
00:13:01
меньше давайте я как а также тихую и
00:13:07
дальше здесь у нас есть какие-то
00:13:09
признаки чтобы проиллюстрировать
00:13:11
давайте здесь будет пока просто признак
00:13:13
возраст и зарплата но и какой бинарный
00:13:22
признак давайте это будет пол
00:13:29
в самой простой установки деревья
00:13:31
решений смотрят на бинарные признаки
00:13:33
not pale у нас уже бинарный с ним проще
00:13:38
с количественным признаком типа возраста
00:13:40
и зарплаты
00:13:41
мы сравниваем значение признака с
00:13:43
каким-то порогом ну скажем старше ли
00:13:45
человек чем 30 лет чем 40 и вот эти
00:13:48
пороги перебираем и что мы делаем мы
00:13:51
смотрим по очереди прямо на все признаки
00:13:53
но в более эффективной реализации не на
00:13:55
все но мы смотрим на признак пол и в
00:14:00
случае бинарного дерева мы смотрим на
00:14:01
случай когда этот признак есть и когда
00:14:04
его нету и дальше нам в каждой
00:14:09
подвыборки у нас образуется 2 подвыборки
00:14:11
когда gender сдавать равно mail мужской
00:14:15
вот здесь слева у нас будут мужчины и
00:14:17
это получается под выборка только мужчин
00:14:21
тоже со своим целевым признаком и справа
00:14:25
будет под подвыборке женщин тоже со
00:14:27
своим целевым признакам в идеале мы
00:14:31
хотели бы какую-то такую magic witcher
00:14:35
какой-то супер признак который нам
00:14:37
идеально бы разделил людей на хороших и
00:14:41
плохих клиентов от чисто по одному
00:14:43
признаку в идеале мы хотели бы какую
00:14:45
такую картинку ну например что все
00:14:47
мужики и оказались плохими клиентами все
00:14:49
женщины хорошего такого конечно в
00:14:54
реальность не будет реальности как-то
00:14:56
будут перемешаны наши метки то есть даже
00:14:59
после разделения по какому признаку у
00:15:03
нас все еще метки будут перемешаны ну
00:15:07
как-то допустим вот так здесь мало
00:15:12
плохих справа допустим мало хороших но я
00:15:16
может утрирую но допустим вот такая
00:15:19
картинка и мы будем проверять все
00:15:24
признаки по очереди скажем пол потом
00:15:27
возраст будем сравнивать с порогами
00:15:29
например возраст больше пяти лет больше
00:15:32
шести лет семьи и так далее ну там
00:15:35
детали реализацию же какие пороге надо
00:15:37
сравнивать но мы будем по очереди
00:15:38
перебирать признаки и находить тот
00:15:41
признак который
00:15:43
лучше всего выборку разделяет после он
00:15:44
класс и дальше в принципе это эвристики
00:15:51
я сколько ни пытаюсь выяснить и даже
00:15:53
александр геноциде к нас прошел и всех
00:15:55
кого мог в принципе я не видел работ
00:15:57
который бы что-то такое прямо крутое
00:16:00
гарантировали ну например гарантировали
00:16:02
бы что ошибка обобщения такого критерия
00:16:05
вот как здесь определить хороший признак
00:16:08
8 по сути нет таких статей которые бы
00:16:11
гарантировали что будет обеспечено там
00:16:14
хорошие обобщаю способность что вот с
00:16:16
помощью такого критерия мы сможем
00:16:19
добиться низкой ошибки на новых данных
00:16:23
по сути это все эвристики то что мы
00:16:25
сейчас будем обсуждать вот как нам
00:16:27
определить хороший признак или плохой давайте одной
00:16:30
из таких эвристик познакомимся то есть
00:16:33
чуть подробнее обсудим но тут благо
00:16:38
картинки под отдела есть но может быть
00:16:41
пример чисто искусственные именно чтобы
00:16:44
познакомиться с
00:16:45
с одним таким критериям такие критерии
00:16:49
называются критериями информативности
00:16:50
они нам покажут собственно насколько наш
00:16:52
признак хорош для того чтобы по нему
00:16:55
разбить выборку в данном случае на 2
00:16:57
класса
00:16:59
формализация это будет с помощью понятия
00:17:02
энтропии и в общем-то понять это может
00:17:06
показаться сложным с 1 раза но мы сейчас
00:17:09
тут на этих шариках на игрушечных
00:17:11
примерчик увидим что ничего такого
00:17:13
сильно сложного что здесь получается
00:17:17
такое хорошее и понятное приложение вот
00:17:19
этого мутного термина энтропию для
00:17:23
состояния
00:17:25
там н большое для систем с им большое
00:17:29
состояниями она определяется таким
00:17:31
образом то есть мы суммируем вероятности
00:17:35
каждого состояния умноженной на логарифм
00:17:37
двоичной это вероятности насчет с миром
00:17:40
и берем со знаком минус но тут
00:17:43
интересующиеся могут значит почитать
00:17:46
почему именно так почему мы хотим вот
00:17:48
именно в такой форме энтропию
00:17:50
представить почему вообще там появляется
00:17:53
логарифм на самом деле довольно простых
00:17:56
раз уже можно вывести примерно вот эту формулу
00:17:59
самое известное утверждение про энтропию
00:18:01
это то что в скорее из физики то что в
00:18:05
замке системе энтропия будет не убывать
00:18:09
по-житейски если мы не будем производить
00:18:12
никакую работу the house будет только
00:18:14
возрастать и чтобы уметь уменьшить house
00:18:17
понизить энтропию надо будет совершить
00:18:19
какую-то работу в общем-то физики там в
00:18:23
термодинамике энтропия значит не
00:18:27
отрицательно личина она как-то
00:18:29
ассоциируется с хаусом чем выше энтропия
00:18:31
тем выше фрс здесь под хаусом мы будем
00:18:35
понимать на сколько у нас перемешаны
00:18:39
объекты по целевому признаку вот сейчас
00:18:41
у нас будут будет бинарная классификация
00:18:44
иллюстрируется это
00:18:45
оранжевыми и синими шариками и мы под
00:18:48
энтропии будем понимать то насколько они
00:18:49
в группе в своей перемешаны тут понятно
00:18:55
да можно параллельно вести аналогии с
00:18:57
хорошими и плохими клиентами и что мы их
00:18:58
разбиваем по какому признаку здесь в
00:19:01
искусстве на примере давайте мы
00:19:03
постараемся отделить оранжевые шарики от
00:19:06
синих чисто по координате у нас есть
00:19:10
один количество признак координата x и
00:19:12
мы будем выбирать пороге и строить
00:19:14
дерево сейчас увидим что дерево будет мы
00:19:17
хотим на самом деле по каким-то
00:19:19
признакам типа того что x больше восьми
00:19:21
или девяти отделить оранжевые шарики от
00:19:24
синих и вот увидим как здесь энтропия
00:19:28
нам будет помогать
00:19:30
зачем вообще здесь нам понадобится
00:19:33
термин энтропия
00:19:35
вначале у нас было 9
00:19:38
жёлтых шариков или синих 9 синих шариков
00:19:42
и там 11 жёлтых
00:19:44
можно чисто формально вот по приведенной
00:19:47
формуле может не особо понимаю что это
00:19:48
значит
00:19:49
посчитать энтропию посчитали она
00:19:51
оказалась примерно единица и это вообще
00:19:55
ни о чем не говорит физик чески смысл
00:19:57
имеется только разность энтропии в двух
00:19:59
состояниях то есть это как потенциал
00:20:01
физики ну в принципе тут можно и без
00:20:05
аналоги с физикой это обсуждать просто
00:20:08
хорошо почитали
00:20:09
эту функцию от от разметки по сути наших
00:20:13
объектов разметка да это синий шарик или
00:20:16
там желтый получили значение денется
00:20:20
пока никакой информации от нам не
00:20:23
приносят
00:20:24
давайте разобьем нашу выборку по
00:20:27
признаку координат меньше либо равна 12
00:20:30
либо больше здесь уже получаем 2
00:20:34
под выборки и мы как-то интуитивно
00:20:36
понимаем что правая на более
00:20:38
упорядоченно то есть вот здесь под
00:20:41
хаусом систему мы будем понимать то
00:20:43
насколько в данном случае шарики будут
00:20:45
перемешаны и мы видим что здесь 6 6
00:20:51
желтых шариков один синий как то мы
00:20:53
понимаем что здесь порядка стало больше
00:20:55
а вот в левой группе в принципе они
00:20:59
остались еще перемешаны по цветам на
00:21:01
шарики и вот это работает в числах touch
00:21:05
если посчитать энтропию для левой и
00:21:07
правой группы мы получаем 096 в левой
00:21:10
группе и примерно 06 в правой а энтропия
00:21:15
0 это будет когда у нас ровно одно
00:21:18
состояние можно увидеть что если
00:21:21
составить состояние всего одно и
00:21:22
вероятность его единица то здесь
00:21:24
логарифм от единички это будет 0 то есть
00:21:26
полный порядок в системе это энтропию 0
00:21:29
и мы видим что в правой ветки как раз
00:21:31
энтропия довольно сильно снизилась ну по
00:21:34
крайней мере мы можем сказать что
00:21:35
сильнее чем в левой ветки и в итоге
00:21:43
критерий над того насколько хорошего вот
00:21:46
это разбиение мы взяли пока вот наугад
00:21:48
по разделу вот в 12 x меньше либо равна
00:21:52
12 или больше прирост информации который
00:21:57
вот я сейчас поясню он как раз
00:21:59
формализует то вот насколько хороший
00:22:01
этот критерий для деления
00:22:04
выборки по на две группы прирост
00:22:10
информации смотрит на
00:22:11
энтропию до разбиения вот это с 0 и
00:22:14
вычитает взвешенная энтропию в левой и в
00:22:18
правой части то есть мы берем энтропию в
00:22:22
левой части
00:22:23
в правой и учитываем то как много там
00:22:26
объектов берем вот такую вот такой
00:22:30
средневзвешенное то есть изначально
00:22:31
энтропии мы с весом 1320 вычитаем
00:22:34
энтропии в левой части с весом 720
00:22:36
энтропию вправо часть потому что в левой
00:22:40
части было 13 объектов в правой 7 а в
00:22:43
итоге их в сумме 20 почему именно так
00:22:46
вот почему взвешенная ну можно
00:22:48
сообразить что если не взвешивать на
00:22:50
число объектов отщепляет шарики там по
00:22:53
одному то это будет неинтересно в итоге
00:22:56
всегда лучшим признаком будет тот
00:22:59
который шарики собственно по одному
00:23:01
цепляет ну то здесь пойдет разбиение по
00:23:03
границе 18 потом по 17 скорее всего до
00:23:06
сих мы учитываем изменения вот этой
00:23:09
энтропии в группе но также учитываем и
00:23:11
размер этой группы и получается вот эта
00:23:15
величина
00:23:16
она будет уже не отрицательно и тут она
00:23:19
чем больше тем лучше но опять таки
00:23:23
конкретная цифра нам вот 016 вряд ли
00:23:25
чем-то скажет но мы зато можем сравнить
00:23:28
прирост информации вот таким образом
00:23:30
считаемый для признака
00:23:32
x меньше либо равна 12 с прочими и
00:23:36
проводим чисто аналогию то есть точно
00:23:38
также у нас могут хорошие плохие клиенты
00:23:41
разбивать разбиваться по возрасту и мы
00:23:43
будем сравнивать разные пороги
00:23:46
делить нашу выборку на две подгруппы
00:23:49
сравняю возраст тридцатью годами с 35 40
00:23:52
и так далее и посчитав для каждого
00:23:55
прироста информация мы выберем какой вот
00:23:58
такой бинарный признака и разбиение
00:24:00
будет лучшим по приросту информации и
00:24:04
дальше алгоритм работает рекурсивно то
00:24:07
есть мы вот эту процедуру поиск признака
00:24:11
с лучшим приростом информация мы будем
00:24:13
продолжать в каждой подгруппе пока не
00:24:16
построиться вот я что такое то есть вот
00:24:19
то что мы искали дерево решений которые
00:24:22
нам по сути да уже классифицирует цвет
00:24:25
шарика желтый там или синий только по
00:24:28
координате то шарик ну довольно
00:24:33
популярным картинках деревня решений вот
00:24:35
для игрушек
00:24:37
задачи классификации вот как дерево
00:24:40
будет таким образом выглядеть уже более
00:24:43
реалистично и прогнозировать выдавать
00:24:46
кредит или нет вот мы будем смотреть
00:24:48
сначала там на разбиении возраста
00:24:51
сравнение возраста с каким-то порогом
00:24:53
допустим 40 лет потом на наличие дома и
00:24:56
так далее и довольно хорошо работает так
00:24:59
интуиция что наверху у нас образуется
00:25:01
вот здесь на верху в дереве разбей они
00:25:04
проходят по важным признаком то есть в
00:25:08
начале выбралась разбиение вот сравнение
00:25:10
возраста с сорока годами наверно это
00:25:15
признак лучше чем наличие дома то есть
00:25:20
раз прирост информация так показал то
00:25:23
значит признак важнее будет и деревья
00:25:28
решений в общем-то прекрасно
00:25:29
интерпретируется потому что их можно вот
00:25:31
таким образом нарисовать
00:25:33
и дальше диск нам придет новый человек
00:25:36
новый клиент допустим ему вот по такой
00:25:39
картинки допустимым он там 56 лет у него
00:25:42
есть дом то вот мы по дереву прошлись до
00:25:45
старше 40 он дома имеется но все пожилой
00:25:48
человек там состоятельный моему кредит
00:25:50
выдаем в противном случае смотрим еще на
00:25:52
какие-то другие признаки сначала это все
00:25:58
вручную делали но когда вопрос встает
00:26:00
уже все таки по-умному это автоматически
00:26:01
делать на основе данных на основе
00:26:03
больших выборок то одним из критериев
00:26:07
таким вот по которым выбирать признаки
00:26:10
будет как раз прирост информации
00:26:12
энтропии най но в принципе ведь да что
00:26:18
тут порой вообще бояться таких слов
00:26:20
энтропия но здесь нам нужно по сути
00:26:22
нужно только формула-1 которая нам будет
00:26:24
задавать вот эту эвристику насколько у
00:26:27
нас хорош признаком
00:26:35
но дальше такая небольшая деталь к что
00:26:38
мы вообще-то такое глубокое дерево
00:26:41
скорее всего строить не будем то есть
00:26:44
вот по этой картинке мы построили дерево
00:26:47
до той глубины когда у нас уже в каждом
00:26:50
листе шарики только одного цвета в реальности
00:26:56
же если мы применяем только алгоритму
00:27:00
дерево решений то есть классифицируем
00:27:02
только одним деревом то здесь где-то уже
00:27:06
низко в дереве у нас правило получится
00:27:08
слишком частными
00:27:09
то есть в приложении там к тому же
00:27:13
спаррингу мы сначала будем смотреть на
00:27:14
какие-то интересные признаки типа того
00:27:16
что сравнили зарплату с 60 тысячами
00:27:20
потом посмотрим еще на что то интересно
00:27:22
допустим были ли какие-то задолженности
00:27:25
в эту клиента или нет и дальше чем ниже
00:27:27
в деле чем ниже вот по дереву мы идем
00:27:29
тем понятно дело
00:27:31
меньше там людей или объектов и тем
00:27:35
более частные признаки мы находим для их
00:27:38
разбиения то есть дальше здесь пойдет ну
00:27:41
что у нас признаках есть скажем человек
00:27:45
указал там область свою
00:27:47
или там город и мы будем смотреть
00:27:48
приехал к нам человек там из саратова
00:27:51
или нет либо без также совсем утрировать
00:27:54
там какие-то совершенно не важные
00:27:55
признаки и случайно так получается что
00:27:57
мы на них посмотрели то есть здесь
00:28:00
наверху дерева можно сказать что она
00:28:02
порождает общие правила которые хорошо работают
00:28:04
для всей нашей выборке а внизу уже будут
00:28:07
частные правила которые работают только
00:28:10
для какой-то там подгруппы людей и вот
00:28:15
это мы будем избегать
00:28:17
мы будем тормозить вот рост этого дерева
00:28:21
то есть где то попросту его
00:28:22
останавливать чтобы не начать
00:28:25
порождать слишком такие частные правила
00:28:28
которые работают только для малой группы
00:28:30
людей и здесь я в общих чертах
00:28:35
опишу как в машинном обучении подходят к
00:28:40
выбору модели к ее настройки и как
00:28:43
вообще нам добиться того чтобы на новых
00:28:45
данных нашу модель работала хорошо
00:28:48
что с деревом понятно что его можно
00:28:50
подстроить под имеющийся выборку но
00:28:53
существенный вопрос а как оно будет
00:28:55
работать на новый да как раз про деревья
00:28:58
решений хорошо известно что их можно
00:29:00
легко построить так что имеющаяся
00:29:04
обучающая выборка будет без ошибок
00:29:07
классифицируются
00:29:08
пока в каждом листе не будет ровно 1
00:29:13
объект
00:29:14
это мы говорим только про нашу обучающую
00:29:16
выборку но мы должны понимать что к нам
00:29:19
в будущем приходят новые люди
00:29:21
то есть это уже по сути новая выборка
00:29:24
людей тестовое и наше дерево наш
00:29:26
алгоритм должен давать хороший прогноз и
00:29:28
для них поэтому картинку нас на самом
00:29:37
деле вот более подробно и у нас есть
00:29:41
обучающая выборка большая в коде я чаще
00:29:47
буду называть ее x train
00:29:51
это то что мы смогли собрать
00:29:53
сколько-то д маленькая обычных признаков
00:29:57
по которым мы будем прогнозировать и
00:29:58
целевой признаком и нам надо как-то
00:30:02
модель построить так чтобы оно работало
00:30:04
хорошо на какой-то новой выборки пока ее
00:30:07
можно даже не рисовать может быть это
00:30:09
будет там пару людей но мы себе
00:30:11
представляем тоже какую-то большую
00:30:13
выборку тестовую который к нам придет в
00:30:15
будущем и надо на ней тоже для нее тоже
00:30:18
делать хороший прогноз но и чисто
00:30:20
физически здесь будет уже целое
00:30:21
пространство таких объектов и мы хотим
00:30:23
как-то оценивать как модель сработает
00:30:25
уже вот в вашем пространстве для этого
00:30:28
мы выборку наверно понимаете да в чем
00:30:33
здесь проблема
00:30:34
мы хотим как-то оценить модель ну
00:30:36
допустим сейчас здесь дерево нарисую
00:30:38
который обучена по всей выборки и вопрос
00:30:41
тогда в том а как вот я проверю это
00:30:43
дерево на тестовой выборке то есть я
00:30:45
какие-то прогнозы выдам но здесь для
00:30:47
теста выборка нас нету нету вот этого
00:30:50
целевого признака то есть мы реально не
00:30:51
знаем там человек ушел от нас или нет
00:30:53
вот это заштрихованный вектор y здесь
00:30:56
его нету и как нам проверить модель если
00:30:59
там нету ответов я скажу
00:31:01
ну да он от нас уйдет а мы правда не
00:31:03
знаем вот здесь едят с той выборке
00:31:05
поэтому чтобы модель как-то проверить
00:31:08
нам ничего не остается как притвориться
00:31:11
что часть наших данных
00:31:13
это тесто я выборка ну и ее называют
00:31:19
отложенный отложено или солдат как
00:31:30
правило вот это разбиение проводят в
00:31:33
отношениях 70 процентов на 30 есть
00:31:37
правда несколько нюансов
00:31:39
у нас должна быть достаточно много
00:31:41
данных чтобы мы могли вот так взять и 30
00:31:43
процентами пожертвовать но если он у нас
00:31:48
данных достаточно мы по опыту на самом
00:31:51
деле научимся это определять теория
00:31:53
недостаточно развита чтобы сказать вот
00:31:55
конкретно вашей задачи вам нужно вот
00:31:57
столько то скажем гигабайт клиент
00:31:58
смотрится по опыту инструмент для этого
00:32:02
тоже будет для того чтобы смотреть вот
00:32:03
какой объем выборки нам нужен но
00:32:05
допустим нас данных достаточно и тогда
00:32:08
мы 30 процентов отделим и тогда дерево
00:32:14
решение мы будем обучать на 70 процентов
00:32:17
данных не на всей выборки только на 70 и
00:32:21
на оставшийся 30 мы будем прогнозы
00:32:25
проверять но здесь уже все выглядит
00:32:28
нормально то есть у нас есть будет
00:32:30
обученное дерево оно сделает прогноз для
00:32:33
вот это отложенной выборки
00:32:34
у нас будет вектор прогнозов вот здесь
00:32:40
предсказание до prediction и у нас есть
00:32:44
вектор
00:32:45
реальных ответов для вот это отложенной
00:32:47
выборки но мы просто сам в самом
00:32:50
примитивном варианте мы просто проверим
00:32:52
вектор ответов
00:32:54
ушел от нас человек или нет и вектор
00:32:56
прогнозов если ты тоже нули и единички
00:32:58
мы просто посчитаем сколько раз мы
00:32:59
попали но это будет не только и курсе
00:33:02
доля верных ответов сколько раз мы
00:33:04
просто угадали с прогнозом но дальше
00:33:06
будут метрики и по-сложнее то есть это
00:33:12
оценка модели попросту по отложенной
00:33:15
выборки зачастую этим пренебрегают
00:33:19
сейчас мы поговорим про консультацию это
00:33:21
более универсальный метод
00:33:22
но вот зачастую уже этого достаточно то
00:33:24
есть если у нас данных прямо таки много
00:33:28
может быть чисто по вычислительным
00:33:31
аспектом может быть нам этого хватит то
00:33:34
есть когда данных много великое
00:33:38
вероятность того что распределение от
00:33:41
всех признаков и целевого и всех их всех
00:33:43
обычных признаков что распределение вот
00:33:45
в это отложенные выборки совпадают с тем
00:33:47
что было в
00:33:48
в 70 процентах обучающий потому что
00:33:51
смотрите какие здесь могут быть проблемы
00:33:52
при таком разбиение но самые дурацкие то
00:33:55
по нашей невнимательности что у нас
00:33:57
допустим тут были был признак пол
00:34:00
сначала шли только мужчины потом только
00:34:01
женщинах мы вот так вот взяли разбили и
00:34:04
у нас в обучении все женщины в
00:34:09
отложенные выборки их нету ну это тупняк
00:34:11
это надо избегать то есть посмотреть на
00:34:13
данные и в как минимум и в перемешать
00:34:15
вот для такого разбиения но проблема
00:34:18
могут быть несмотря на эту даже если там
00:34:21
перемещаем выборку и потом ее так
00:34:22
разделим проблем сером может быть в том
00:34:25
что вот это отложенная выборка она по
00:34:27
самому распределению отличается немного
00:34:30
от обучающим и если мы слишком уж долго
00:34:34
будем всякий модели перебирать или их
00:34:36
настраивать и в общем-то затачивается
00:34:38
под эту выборку мы можем опять таки
00:34:41
добиться того что у нас модель хорошо
00:34:43
угадывает ответы на вот этот ложной
00:34:44
выборки и плохо на других и ну плохо
00:34:48
работает на тесто выборки то есть
00:34:53
прячься в это зависит от размера вашей
00:34:56
выборки метод в общем-то простой но на
00:35:02
практике он очень часто применяется
00:35:04
допустим если у вас данных 10 гигабайт
00:35:06
вы их так перемешали случайным образом
00:35:08
поделили у вас скорее всего вот эти семь
00:35:11
процентов выборки будут очень похожи на
00:35:13
всю большую
00:35:14
то есть если там даже какие-то выбросы
00:35:17
где-то то это не так сильно сказывается
00:35:19
и тогда попросту мы можем доверять
00:35:24
проверки
00:35:25
на отложенные выборки носом говоря если
00:35:28
вот как свопы бить будем работать у нас
00:35:30
там будет 10 гигабайт там каких-нить
00:35:32
вопросов или там отзывов тогда дамы 3
00:35:35
гигабайта отделим и это достаточно большая выборка
00:35:37
чтобы на ней провериться а 7 гигабайт
00:35:39
достаточно большая чтобы на ней хорошо
00:35:41
обучить а если с другой стороны у вас
00:35:44
там медицинские данные скажем
00:35:45
эксперименты привели диагноз поставили
00:35:49
там только для 150 человек тогда уже вот
00:35:51
нам задуматься если у нас вся выборка
00:35:53
это всего лишь 150 человек а если мы 30
00:35:55
процентов и так возьмем и вот этих 45
00:35:59
человек мы просто делим вдруг они как-то
00:36:01
отличаются от других и можем ли мы
00:36:03
доверять вот именно этим
00:36:05
оценки вот по этим 45 людям потом уже
00:36:07
будем к другим техникам прибегать к
00:36:12
кросс валидация консультация
00:36:16
она как раз главное что делает она
00:36:19
нивелирует вот это вот этот эффект от
00:36:21
случайности разбиения то есть но я пишу
00:36:25
сейчас
00:36:26
самую стандартную консультацию сама
00:36:29
часто применяемым кей фолд кро
00:36:31
соблюдаться это будет разбиение
00:36:33
выборки к 1 на качестве давайте я
00:36:37
нарисую к равной трем то есть мы три
00:36:42
раза нашу выборку разделим на три части
00:36:48
первый раз мы будем обучаться на двух
00:36:51
третях выборки исходный и делать прогноз для
00:36:54
оставшейся трети
00:36:55
и в общем то так три раза идея понятна в
00:37:02
итоге на каждом шаге мы обучаемся на
00:37:03
двух третях наших данных
00:37:06
ну а вот в общем случае мы жертвуем
00:37:08
долей единиц знака
00:37:10
то есть обучаемся на к -1 на к
00:37:13
подвыборке и делаем прогноз для
00:37:15
оставшихся для оставшихся подвыборки ну
00:37:18
фалды очень так все и называют фалды
00:37:20
может не очень красиво но тут плюс уже
00:37:24
очевиден в том что мы получаем не просто
00:37:27
одну цель сколько раз мы угадали на
00:37:29
конкретной выборки а хотя бы уже 33 раза
00:37:33
они получены на разных под выборках уже
00:37:35
вроде как этому можно доверять больше
00:37:39
в идеале когда вот эта маленькая равна
00:37:44
длине нашей подвыборки il faut
00:37:47
вы можете представить что тут происходит
00:37:48
у нас эль допустим там десять тысяч
00:37:51
десять тысяч раз мы просто выкидываем
00:37:53
один объект обучаем модель на 9 1999 и
00:37:58
объектах и делаем прогноз только для
00:37:59
одного понятно что это вычислительно
00:38:02
очень тяжело называется и the left one
00:38:06
out оставь 1 лив ван out across
00:38:10
валидация и она лучше всего изучено
00:38:12
выкинуть какой-то один объект это проще
00:38:15
для нее есть всякие технической оценки
00:38:18
хотят их недостаточно но понятно что это
00:38:20
на практике почти никогда не
00:38:22
используется чисто по вычислительным
00:38:25
причинам то что это тупо дорого и даже
00:38:29
нету однозначно ответа
00:38:32
какое к брать как правило к берут 57
00:38:37
либо 10 ну так чисто по опыту я сам
00:38:43
пятикратную чаще использую статистике
00:38:45
чаще любят десятикратно в общем тут
00:38:49
никогда не скажу кто прав доить теория
00:38:55
тоже изучается но никаких оценок
00:38:58
не дает какие-то дает но недостаточно и
00:39:02
еще один важный аспект при проведении во
00:39:06
такое разбиение хотя бы мы как минимум
00:39:10
должны учитывать соотношение целевого
00:39:12
класса под класс вот такие такой кросс
00:39:17
валидации называемый страте fight
00:39:22
гарантирует нам очень простой факт что
00:39:24
распределение цель его классов каждой
00:39:26
подвыборки такой вот каждая фалда
00:39:28
будет одним и тем же это важно когда у
00:39:31
нас есть какие-то редкие события
00:39:34
ну в принципе это почти всегда важно но
00:39:37
представьте что у нас скорее всего как в
00:39:39
реальной ситуации у нас
00:39:40
ушедших клиентов будет сколько их
00:39:43
реально не более там двух процентов
00:39:46
может быть даже 1
00:39:48
если у нас всего лишь один процент
00:39:51
объектов положительной там с меткой один
00:39:53
то представьте но она может может не
00:39:56
повезти что они все окажутся в обучающей
00:39:58
части или или всех в проверочный
00:40:00
или ну скорее всего будет что то такое
00:40:02
что в обучающей части их будет сколько
00:40:10
0007 проценты допустим 0 7 процента там
00:40:17
плохих клиентов а в отложено их будет
00:40:20
полтора процента вот уже это даже не
00:40:23
здорово то есть надо быть соблюсти хотя
00:40:25
бы вот это соотношение целевого косо в
00:40:27
каждой подвыборки и стратифицированные
00:40:30
методы как раз это и делает нас дальше в
00:40:33
библиотеке который мы будем работать
00:40:34
будет метод смотрите fight cave old он
00:40:39
называется который как раз это и делает разбивает
00:40:42
выборку на качестве учитывая соотношение
00:40:45
целевого класса в каждой подвыборки то
00:40:47
есть попросту чтобы все подвыборки были
00:40:48
похожи друг на друга и на исходную нашу
00:40:51
выборку именно по соотношению целевой
00:40:53
класс и долгое время в статьях там по
00:40:59
статистике использовалась
00:41:02
стратифицированные вот и на
00:41:03
десятикратная про соблюдаться но вплоть
00:41:05
до того что там если
00:41:07
консультации какая-то другая
00:41:09
используется то в статью могли не
00:41:10
принять но на самом деле достаточно
00:41:14
будет накид там больших выборках
00:41:16
и пятикратный кросс валидации на кегли
00:41:20
тоже в соревнованиях по анализ данных
00:41:22
очень активно исследуются свойства
00:41:24
консультаций как насколько они устойчивы
00:41:27
получать или нет но скорее всего
00:41:28
пятикратной консолидации вам хватит если
00:41:32
это вы даже потяните если у вас если вы
00:41:35
локально обрабатываете там скажем 10
00:41:37
гигабайт и на них строите модель ну
00:41:38
скорее всего вот первый сценарий что вы
00:41:41
просто будете использовать отложено
00:41:43
выборку и в общем-то не большой ошибкой
00:41:48
будет сказать что кросс валидация это
00:41:50
практически все машинном обучении то
00:41:53
есть это попросту ответ на то как
00:41:56
сравнить две модели и как нам
00:41:58
гарантировать что наша модель будет
00:42:02
работать на но в данных но гарантировать
00:42:04
это может быть и громко слова но как нам
00:42:06
надеяться все что на новых данных
00:42:08
наша модель сработает подход который я
00:42:13
чаще всего использую это комбинация этих
00:42:15
двух это не только я советует скажем
00:42:19
уинн в самом популярном курсе и вообще
00:42:21
известный поход это взять и отложен
00:42:23
участь и на оставшейся части проводить
00:42:25
консультации
00:42:26
чаще всего мы будем именно это и делать
00:42:30
то есть мы будем оцеплять процентов 30
00:42:36
исходной выборки и это будет
00:42:40
отложенная часть она оставшийся мы будем
00:42:43
проводить кросс валидацию чем это лучше
00:42:53
чем просто консолидация или чем просто
00:42:55
оценка на отложенной выборки мы здесь
00:42:59
вот на этих 70 процентов данных проведя
00:43:01
кросс валидацию мы ну на самом деле дал
00:43:05
много всего сделаем то есть для чего
00:43:07
вообще кро соблюдаться нужно для
00:43:11
настройки одной модели даже если мы
00:43:14
какую-то конкретную модель выбрали мы ее
00:43:17
будем настраивать на консультации вот
00:43:19
дерево решений мы сейчас поймём что и
00:43:25
строить до максимальной глубины его не
00:43:27
будем но попросту слишком частные
00:43:30
правила они плохо будут работать на
00:43:31
другой выборки вот этот эффект который
00:43:34
присущ всем всем всем алгоритмы моя
00:43:37
главная проблема в машинном обучении это
00:43:39
переобучение
00:43:41
она свойство вообще всем алгоритмом
00:43:43
сказываться в том что модель обученная
00:43:46
на своей выборки будет на ней работает
00:43:49
лучше чем на какой то другой то есть так
00:43:51
попросту это описать что вот на новой
00:43:53
выборки вот бац и хуже модели работает
00:43:58
переобучение но когда мы слишком долго
00:44:01
настраивались на имеющиеся выборку
00:44:03
представьте что у нас
00:44:05
выборки сам слишком много людей из
00:44:07
москвы и мы может конечно мы под
00:44:10
москвичей перри обучились их слишком
00:44:11
много
00:44:13
в новый выбор выборки которые к нам
00:44:15
придет на исключение не так много уже
00:44:17
допустим хотя бы по такой причине
00:44:18
качественно новой выборки будет хуже и
00:44:20
вообще есть тысяча способов перри
00:44:24
обучиться в данном случае с деревья
00:44:26
решений это будет если мы дерево будем
00:44:28
строить до максимальной глубины пока в
00:44:30
каждой не будет ровно один клиент
00:44:35
ну или объект так вот самое простое что
00:44:40
можно сделать чтобы дерево ограничить
00:44:42
чтобы она не строилось вот до
00:44:44
максимальной глубины это вот так его взять и обрезать не
00:44:48
позволить строить его глубже чем на
00:44:51
некий параметр mакс df
00:44:55
максимальная глубина давайте скажем что
00:44:57
максимальная глубина
00:44:58
дерево 2 и вот в каждой ветке таких
00:45:02
разбиений будет ровно 2 и дальше мы
00:45:04
просто не идем вот такие параметры будут
00:45:08
называться гипер параметрами но им чуть
00:45:12
позже обсудим почему именно гипер зачем
00:45:15
такие усложнением но вот такой
00:45:18
гипер параметр максимальная глубина
00:45:21
дерево как то должен быть подобран
00:45:23
мы хотим как-то чтобы дерево было и не
00:45:29
слишком глубоким не перри обучалась и не
00:45:31
слишком мелким потому что если мы
00:45:33
возьмем с другой стороны дерева наоборот
00:45:35
слишком мелкая всего лишь по одному
00:45:37
порогу скажем возраст больше 17 и
00:45:40
разобъем нашу выборку
00:45:42
на две части увидим что здесь допустим
00:45:46
117 хороших 15 плохих а здесь клиентов у
00:45:51
нас 245 хороших и 20 плохих и собственно
00:46:00
ну а что а нам это сказала да вроде
00:46:02
никакой можно тут и прирост информации
00:46:05
посчитать но даже на глаз мы видим что
00:46:06
он признак не очень-то хорош мало что
00:46:08
нам принес в общем дерево глубины 10
00:46:13
всякие там садовые уже налоги пошли
00:46:16
пинками их называют им бисерин stamps но
00:46:19
дерево попусту если вот здесь
00:46:21
максимальная глубина равна 1 это
00:46:26
будет слишком мелким делим она будет не
00:46:30
до обучена мы еще подробно про это будем
00:46:33
говорить но наверное здесь
00:46:35
интуитивно понятно что это значит то
00:46:37
есть оно не выловил а вот необходимые
00:46:39
закономерности в наших данных чтобы
00:46:40
хорошо прогнозировать отток скажу и
00:46:45
получается что здесь будет некоторый
00:46:48
баланс
00:46:49
какой бы глубину дерево выбрать так
00:46:51
чтобы дерево и нужные зависимости нашла
00:46:53
но и не слишком подстроилась под и месяц
00:46:57
выборку и вот это все сведется к
00:46:59
перебору вот это гипер параметра
00:47:02
максимально глубина и тогда вопрос а как
00:47:04
нам его выбирать получается нам надо
00:47:07
как-то сравнить две модели
00:47:09
но допустим дерево глубины 1 и глубины 2
00:47:12
как мы убедимся что дерево глубины 2
00:47:14
работает лучше чем деле глубины 1 и вот
00:47:19
сейчас почти на все вопросы будет ответ
00:47:21
кросс валидация мы на кросс валидации
00:47:24
обучим вот получается три раза но в
00:47:27
целом в общий случай к 1 обучим дерево
00:47:29
глубины один посмотрим как она работает
00:47:31
она выдаст какие-то прогнозы мы сравним
00:47:36
с ответами и получим скажем что на кросс
00:47:39
валидации средняя там доля верных
00:47:41
ответов 72 процента так но это просто 72
00:47:49
процента я думаю понятно тут какая шла
00:47:53
процедура дерево три раза обучалась
00:47:54
делала прогноз для оставшейся части мы
00:47:56
сравнивали вот тупо нолик с единичками
00:47:58
сколько раз мы угадали хороших или
00:48:00
плохих клиентов от дерева глубина 17 2
00:48:02
раза это сделала правильно дерево
00:48:04
глубины 2 допустим резкий скачок 82 и мы
00:48:10
понимаем что дерево глубины 2 лучше
00:48:20
да вопрос был по какому принципу мы
00:48:23
выбираем отложенную выборку для начала
00:48:27
вам достаточно будет что мы перемешали
00:48:31
наши объекты
00:48:32
на практике чаще вы делается это мы
00:48:35
попросту перемешиваем объекты и
00:48:37
учитываем соотношение 7 класса то есть
00:48:41
стратифицировать разом то есть мы
00:48:43
требуем по сути
00:48:44
единственно чтобы здесь вот соотношение
00:48:48
не мы сами объекты тоже перемешиваем до
00:49:10
давайте мы в перерыве
00:49:12
обсудим дай все-таки лекцию не будут
00:49:14
дискуссия превращать до вопрос был про
00:49:16
то вот каким образом вот эта отложенную
00:49:18
выборку отрезать и практические здесь
00:49:23
ответа как реально делают это выборка
00:49:27
должна быть просто случайный мы можем
00:49:29
взять список индексов из него выбрать 30
00:49:31
процентов случайных вот там прямо в в
00:49:34
нам по и случайный выбор и это будет нашей
00:49:37
выборкой если у нас еще
00:49:41
допустим там дисбаланс классов какие-то
00:49:43
у нас редкие объекты мы еще потребуем
00:49:44
чтобы было стратификация что то есть
00:49:47
чтобы там доля плохих клиентов было
00:49:49
примерно такой же как и в исходный чаще
00:49:51
всего делают именно так и вот по канату
00:49:57
она отложена что пока мы на нее смотреть
00:49:58
не будем мы вот здесь на исходных вот на
00:50:01
70 процентов данных мы будем сравнивать
00:50:03
деревья разной глубины но ты не допустим
00:50:07
мы глубины три дерева построили получили
00:50:11
86 процентов правильных ответов
00:50:13
а когда глубина 4 то уже качество вдруг
00:50:18
упала и стала 76 процентов вот на этом
00:50:23
моменте скажется
00:50:24
эффект теперь обучение мы еще картинки
00:50:29
будем строить и
00:50:30
ну как-то
00:50:32
жизни это исследовать естественно но
00:50:34
здесь мы остановимся на том что дерево
00:50:35
глубины 3 сработал лучше всех собственно
00:50:40
это мы и делали на кросс валидации
00:50:44
выбирали гипер параметр дерево он не
00:50:47
только не только этот не только
00:50:49
максимальная глубина и тут будут разные
00:50:51
алгоритмы у них будут разные вот эти
00:50:52
гипер параметры и по большому счету в
00:50:56
каждом случае мы будем применять кросс
00:50:57
валидацию для выбора
00:50:59
гипер параметров второй шаг это выбор
00:51:04
самой модели ну может быть сейчас мы
00:51:07
обсуждали дерево потому что пока еще
00:51:09
только его обсуждали но конечно первично
00:51:11
вопрос это какую модель использовать для
00:51:14
выбора модели мы будем опять таки
00:51:15
использовать кросс валидацию то есть
00:51:18
дальше здесь у нас будет вторая модель
00:51:20
сейчас мы про нее поговорим гейнер
00:51:24
neighbors
00:51:26
метод ближайших соседей и дерево решений
00:51:29
диссидент рик и у нас выбор вопрос какую
00:51:34
из этих двух моделей выбрать и делаем и
00:51:37
опять таки это на консультации мы можем
00:51:41
их по отдельности заранее уже настроить
00:51:44
на консультации да то есть выбрать
00:51:45
максимальную глубину для дерева для к
00:51:47
там тоже свои
00:51:48
гипер параметр будет его тоже выберем и
00:51:51
сравнивать
00:51:52
уже два алгоритма и тогда видеть что она
00:51:54
кросс валидации один из алгоритмов лучше
00:51:57
и даже более того когда мы будем
00:52:00
добавлять новые признаки мы опять таки
00:52:02
будем их проверять на кросс валидации то
00:52:05
есть допустим у нас есть новый признак
00:52:11
ну условно говоря задач потоком клиентов
00:52:16
мы видели что интересный признак был бы
00:52:19
число звонков в сервисный центр больше
00:52:23
трех вот допустим мы такой признак
00:52:26
построили он бинарный получается и мы
00:52:31
проверяем помог ли он нам нашей модели
00:52:33
или нет вот опять таки мы это все будет
00:52:35
сводиться к консолидации
00:52:36
то есть любое сравнение моделей она
00:52:39
будет именно так происходить мы сравним
00:52:41
модель с этим признакам и без него на
00:52:44
консультации
00:52:46
а вот это отложено выборка она нам нужно
00:52:49
собственно в самом конце нато ее
00:52:52
называют отложенный потому что вообще-то
00:52:55
так на консультации если долго играться
00:52:57
мы тоже можем все таки выбрать какие-то
00:52:59
модели такие-то гипер параметры что вот
00:53:01
они случайным образом хорошо работают
00:53:03
именно здесь и тогда отложено выбор к
00:53:07
нам дает нашу как бы такую последнюю
00:53:10
оценку вот уже после того как мы все
00:53:12
настроили все выбрали модель мы
00:53:14
последний раз проверяем нашу модель и
00:53:16
это будет наша оценка того как модель
00:53:19
сработает на новых данных то есть
00:53:22
отложенная выбор к нам будет
00:53:23
представлять целого вот это пространство
00:53:26
новых объектов из которого мог могут
00:53:28
прийти вот примеры тестовых объект то
00:53:36
есть мы с этим будем сталкиваться что
00:53:38
слишком на консультации там заигрываться
00:53:40
не стоит слишком много параметров и
00:53:42
гипер параметров перебирать и в конце
00:53:46
использовать отложенную выборку то есть
00:53:49
классический сценарий вот оценке моделей
00:53:52
он именно такой но дальше надо же
00:53:57
исходить из конкретной постановки задач
00:53:59
и пока мы работаем с маленькими
00:54:01
доцентами мы так и будем делать потом
00:54:03
уже когда размера нам это не позволят
00:54:06
уже скорее мы будем просто по отложенной
00:54:09
выборки проверять может быть где-то
00:54:10
просто пауку раз валидации но скорее
00:54:12
просто по отложенной выборки
00:54:24
алгоритм поставим дерево вы почитайте
00:54:27
сами можете разобраться тут конечно
00:54:29
очень много аспектов оптимизационных как
00:54:34
как этот алгоритм на практике работают
00:54:37
почему-то бинарные деревья используется
00:54:39
как повышать эффективность как быстро
00:54:41
рассчитывать от этих критериев формате
00:54:42
власти давайте я лучше расскажу про
00:54:44
основные плюсы деревьев решений
00:54:50
бисерин trees но их пожалуй стоит
00:54:57
проговорить потому что вообще зачем они
00:54:58
нам нужны по большому счету
00:55:02
сами по себе были деревья решений почти
00:55:05
нигде не применяются может быть очень
00:55:09
громкое заявление но то есть что я знаю
00:55:12
это скорее все только в медицине и там
00:55:14
еще в критерий вот эти разбиения
00:55:16
запихивают проверки статистически чтобы
00:55:18
ну там какой-то значимость соблюдать но
00:55:21
сам все деревья решений слишком уж
00:55:23
склонны к
00:55:24
переобучению очень легко дерево
00:55:27
построить и ну так что если его глубина
00:55:30
там чуть выше
00:55:31
желаемого то она просто переобучить и
00:55:35
под выборку и более того само дерево
00:55:42
решений может сильно перестроиться вес
00:55:46
мы слегка слегка только поменяем наши
00:55:49
данные условно говоря добавим один
00:55:51
признак или там выкини в несколько
00:55:52
объектов
00:55:53
все наше дерево может перестроиться и
00:55:55
окажется вот это ну так и интуитивно
00:55:58
кажется что хороший модель она наверно
00:56:00
стабильная но это и формулах выражается
00:56:02
и вообще это так и работает что ну
00:56:06
модель не должна так кардинально
00:56:07
меняться из-за небольшого изменения во
00:56:09
входных данных ну то есть может быть
00:56:12
минус что 1 минус что в чистом виде в
00:56:20
чистом виде не применяются почти
00:56:27
ну ладно я написать не буду так только
00:56:29
тезисно ну кажется
00:56:34
зачем нам алгоритм который почти не
00:56:36
применяется тогда вот симметрично
00:56:39
колоссальный плюс то что деревья решений
00:56:42
стали основой для алгоритм случайного
00:56:46
леса и бустинга то есть пока интуитивно
00:56:49
себе представляем что одно дерево
00:56:50
довольно плохо работает от в терминах
00:56:52
процентов там угаданных ответов а вот
00:56:55
если их объединить в если построить на
00:56:58
одной и той же в выборке 10500 или 100
00:57:01
деревьев и все они будут как ты там
00:57:04
немного отличаться между собой то вот
00:57:06
уже голосование такое если мы учтем
00:57:08
ответы всех деревьев и как-то усредним
00:57:10
вот это будет работать уже хорошо и на
00:57:13
практике но блага ты и теоретически уже
00:57:16
довольно хорошо изучена и на практике
00:57:18
когда вы дойдем до случайного леса вот
00:57:21
уже через 2 недели на самом деле и
00:57:22
допустим га вот эти модели почти всегда
00:57:28
они основаны на деревьях решений
00:57:29
принципе busting не обязательно но на
00:57:32
практике в основе вот под капотом всего
00:57:35
этого дела лежат
00:57:36
именно деревья решений и именно
00:57:40
случайный лес это такой алгоритм который
00:57:42
вот мы будем использовать зачастую из
00:57:45
коробки особо не настраивай гипер
00:57:47
параметры ну довольно впечатлительно
00:57:49
сложная такая процедура может быть и
00:57:51
грамотно и там вся эта курс предаться но
00:57:54
вот случайно лес очень хорош тем что он
00:57:56
будет работать прямо вот из коробки но
00:58:00
про него поговорим вот для дерись
00:58:03
решений это не справедливо то сейчас мы
00:58:05
возьмем какой-то параметр
00:58:06
там гипер параметр по умолчанию там
00:58:08
дерево глубины три или четыре это может
00:58:10
весьма и весьма скудно сработать и нам
00:58:14
надо будет его настраивать
00:58:17
но блага одно дерево обучается очень
00:58:20
быстро еще плюсы есть да на удивление
00:58:27
вот брать такая простая модель
00:58:28
но будут плюсы которые автоматически
00:58:30
перенесутся в плюс из леса и бустинга
00:58:35
ну почти не чувствительны к выбросам все
00:58:39
они буду писать и уж совсем не напишу
00:58:43
просто выбросы по-английски all of
00:58:47
flowers или аномалии выбрось она здесь
00:58:51
не так беспокоит если даже там выборки
00:58:55
где-то попался билл гейтс ну условно
00:58:57
говоря он просто попадет
00:58:58
где-то в дереве под условия сравнение
00:59:01
зарплаты с каким-то порогом скажем в
00:59:03
50000 налево-направо ну это что у него
00:59:06
здесь будет 100 триллионов это не так
00:59:09
страшно он просто пойдет по одной из
00:59:10
ветвей
00:59:11
ну наверно вот по этой то есть выбросы
00:59:15
они не будут такой большой проблемой не
00:59:18
на этапе построения дерева не на этапе
00:59:21
прогнозов и аналогично с
00:59:24
масштабированием выборки она для
00:59:29
деревьев не нужно вот в линейных моделях
00:59:31
будет проблемой то что возраст
00:59:35
измеряется в одном диапазоне то есть
00:59:38
примерно там до 10 во второй степени
00:59:42
а зарплата меняется изменяется там в
00:59:44
другом диапазоне ну тут смотрю что брать
00:59:47
максимально или какой но скажем до 10 в
00:59:49
6 и еще поговорим про то что вот в
00:59:52
линейных моделях когда мы будем смотреть
00:59:54
вот именно линейной комбинация двух
00:59:55
признаков
00:59:56
вот этот диапазон он ну как нам будет
00:59:59
мешать вот это отличие в диапазонах то
01:00:02
есть в линейную комбинацию зарплата
01:00:04
будет делать больше вкладка минуту по
01:00:07
из-за того что она в большем диапазоне
01:00:10
изменяется с деревьями такой проблем не
01:00:13
будет то есть в общем-то без всяких
01:00:17
проблем у нас в дереве может быть
01:00:19
сравнение возраста с каким-то маленьким
01:00:21
порогом 6 лет потом сравнение зарплаты с
01:00:25
кем-то большим порогом с миллионом и в
01:00:28
общем-то они не как друг другу не мешают
01:00:30
вот эти различные диапазоны изменения
01:00:32
двух признаков и на практике это значит
01:00:35
что меньше нужно предобработки нам не
01:00:39
стоит особо парится из-за выбросов и
01:00:41
масштабирование
01:00:42
выборки тоже можно особо не проводить
01:00:50
план теперь минус наверно он как-то
01:00:55
связан с первым пунктом может быть и как
01:00:58
следствие
01:00:59
но попросту в чистом виде давайте
01:01:01
все-таки сюда допишу
01:01:02
допишу плохо работает но действительно
01:01:06
то есть в чистом виде дерева
01:01:08
именно в терминах вот метрики типа доля
01:01:11
верных ответов можно будет видеть что
01:01:14
она плохо работает именно по
01:01:17
интересующей нас метрики сколько
01:01:18
процентов там плохих клиентов оно нашло
01:01:25
ну видите это вообще-то это должно
01:01:28
волновать там медиков например но если у
01:01:31
них datasat из 200 наблюдений и они по
01:01:33
нему построили дерево решений
01:01:35
который пусть даже там статистические
01:01:37
критерии внутри себя проверяет но оно
01:01:39
обучено на 200 200 наблюдениях и более
01:01:41
того это алгоритм ну который попросту
01:01:44
уже работает чем другие во многом то
01:01:47
есть до медиков должно волновать
01:01:49
или тех кто использует деревья решений в
01:01:51
чистом виде но симметрично или не очень
01:01:55
симметрично но еще один плюс
01:01:57
колоссальные деревьев решений это
01:01:59
интерпретируемый это не строгий термин
01:02:08
люди в общем то его понимают и
01:02:10
интуитивно насколько нам понятен ответ
01:02:14
модели то что на практике это может как
01:02:17
выглядеть
01:02:18
ну и там прогнозируемо так вот скажем я
01:02:21
выбрал там нейронной сети для этого они
01:02:23
наоборот
01:02:24
абсолютно не интерпретируем и они
01:02:25
абсолютно но плохо интерпретировано и я
01:02:27
построил q это модель мы ее там начали
01:02:30
использоваться там в продакшене то есть
01:02:31
уже над с той выборке проверяем и она
01:02:33
допустим там ошиблась раз два три четыре
01:02:37
раза подряд допустим даже так неудачно
01:02:39
сложилась и вроде бы мы там на
01:02:42
консультации до наших оценках мы видим
01:02:43
что алгоритм очень здорово работают там
01:02:45
лучше чем те те же деревья решений
01:02:47
но в реальной жизни вот как то так
01:02:50
получилось что она там пару раз ошиблась
01:02:52
и допустим это к большим к неприятным
01:02:55
последствиям принесла привело
01:02:57
ну конкретно для разработчика непрятно
01:02:59
последствия то что пришел босс из и
01:03:00
спросил что за хрень ты там разработал
01:03:02
до чего она не работает и в общем то все
01:03:05
сводится к тому что там случае не
01:03:07
иранский мы плохо понимаем ответы модели
01:03:10
почему вот именно на основе каких-то
01:03:12
признаков мы сделали вывод что клиентам
01:03:16
будет плохим у деревьев решений интерпретация просто
01:03:20
прозрачно конечно такими-то оговорками
01:03:25
но на по игрушечному дереву мы легко
01:03:27
можем пройтись вот посмотреть вот эти
01:03:29
условия и он показывал возраст больше
01:03:31
такого порогов пошли туда сюда на
01:03:35
практике же ну во-первых дерево может
01:03:38
быть глубоким
01:03:40
10-15 условий в нем и как ты уже
01:03:43
наверное не так здорово человеку
01:03:44
проверять там 15 условий доходить до
01:03:46
каких-то тоже признаков
01:03:48
то есть в любом случае дерево решений
01:03:52
намного более интерпретированы чем очень
01:03:54
многие алгоритмы по сути в общем-то это
01:03:57
даже самый интерпретируем алгоритм но не
01:04:00
всегда это интерпретация нужно то есть
01:04:02
тут все-таки нарисую стрелочку что это
01:04:04
такая взаимосвязь трейдов такое между
01:04:08
качеством модели и интерпретируем а стью
01:04:11
по сути это будет
01:04:13
глобальный трейдов такой интерпретируем
01:04:19
оси и как качество но собственно
01:04:24
решаемые задачи классификации или
01:04:26
регрессии
01:04:30
и дерево решений как простой алгоритм
01:04:33
вот он скорее плохо работает но
01:04:36
интерпретируемый ну да вопрос был про
01:04:46
случайный лес да то что вот у него это
01:04:50
это вилка это трудов работает в другую
01:04:52
сторону случайный лес будет усреднять
01:04:54
там скажем 500 деревьев и уже намного
01:04:56
менее будет он интерпретируемым зато
01:04:58
качество классификации будет сильно
01:05:00
повышаться то есть до вопрос был если
01:05:11
интерпретируемые методы на практике
01:05:14
реально ли их использует ну да вот если
01:05:17
построить одно дерево решений то она
01:05:18
будет интерпретируемым мы можем по нему
01:05:21
пройтись в других алгоритмах мы под
01:05:23
интерпретировать и будем понимать в том
01:05:24
числе и другие вещи в том числе и то как
01:05:27
они нам ранжируются наши признаки
01:05:29
положитесь ну скажем случайный лес будет
01:05:32
нам выдавать рейтинг важности признаков
01:05:34
который будет по какой-то там эвристики
01:05:36
считаться ну попусту
01:05:38
например насколько сильно признак нам
01:05:41
улучшал вот этот прирост информации или
01:05:44
там наоборот снижал энтропию мы можем
01:05:46
что-то такое замерить и отранжировать
01:05:49
наши признаки по важности тогда мы будем
01:05:51
знать вообще какие признаки более или
01:05:54
менее важны наши задачи так ну может
01:06:04
быть я сейчас они все вспомнил но это в
01:06:07
общем то основные признаки
01:06:08
основные вот такие плюсы и минусы
01:06:10
деревьев решений еще на практике
01:06:14
какими-то вы можете сами столкнуться да
01:06:20
ну например тут же вспомнил очень
01:06:24
быстрый алгоритм пожалуй не буду сейчас
01:06:28
мучиться вспоминать точную оценку ну
01:06:31
порядка там а большого чего но понимаете
01:06:35
что бинарное дерево или там двоичное
01:06:40
дерево
01:06:42
если мы рассмотрим д маленькая бинарных
01:06:45
признаков то она глубины будет примерно
01:06:47
логарифм двоичный д а большое но там еще
01:06:53
как множители туда войдет конечно же
01:06:55
число объектов в нашей выборке
01:06:57
конкретный вид этой зависимости я
01:07:00
пожалуй не вспомню но на практике
01:07:02
деревья решения работают очень быстро
01:07:05
одно дерево вот мы будем видеть это
01:07:07
конкретно там уже уже сейчас когда будем
01:07:11
писать код но то что по сути дерево
01:07:13
обучается почти мгновенно наших данных
01:07:19
там до скажем 10000 до 20000 объектов но
01:07:23
это будет расчет будет на
01:07:25
и миллисекунды еще давайте мы поговорим
01:07:32
про метод ближайших соседей уже
01:07:35
побыстрее и дальше мы их как-то
01:07:40
конкретно задачи сравним я тут бежишь
01:07:46
соседей в общем-то особняком стоит от
01:07:49
всех прочих алгоритмов по сути в нем
01:07:52
обучение то и нету у нас есть признака и
01:07:56
пространство тут можно себе представлять
01:07:59
конкретные наш признаки возраст зарплата
01:08:02
и под напрячь фантазию тут у нас будет
01:08:05
до мерное пространство то есть какие то
01:08:07
еще признаки типа пола и в нашем
01:08:11
признаком пространстве как-то выборка
01:08:13
будет допустим вот так выглядит плюсами
01:08:17
и минусами я отмечаю там хороших и
01:08:18
плохих клиентов метод ближайших соседей
01:08:24
относится к семейству ленивых алгоритмов
01:08:28
лийзи по сути пока тестовый
01:08:31
тесто объект к нам не пришел никаких
01:08:34
вычислений не требуется ну по крайне
01:08:37
мере чисто теоретически как он работает
01:08:39
этот метод приходит нам к нам новый
01:08:42
объект знаком вопроса его нарисую и мы
01:08:46
нашли к нему к ближайших к нему объектов
01:08:50
ну допустим это вот эта кучка
01:08:55
на 5 ближайших я посмотрел вот я тут
01:08:58
дорисую но чаще смотрят чаще это к берут
01:09:03
нечетным чтобы как-то было легче
01:09:06
ничьи разрулить ну да я чуть более
01:09:10
читерские поступлю дорисую плюсик здесь
01:09:11
вот и и это наш 5 ближайших объектов из
01:09:16
нашей выборки и мы посмотрели как бы так
01:09:18
банально посчитали что у нас три
01:09:20
отрицательных примера и два
01:09:22
положительных и тогда голосованием большинством мы
01:09:25
просто сделаем вывод что но метко этого
01:09:27
объекта будет минус можно по интереснее
01:09:34
сделать можно замерить расстояние и как
01:09:39
то взвесить на них ну а брат обычно
01:09:42
берут в знаменателе квадрат расстояния и
01:09:44
учитывают не только метку объекта но и
01:09:47
квадрат вот этого расстояния и в общем
01:09:51
то можно голоса
01:09:52
примеров как-то по-разному взвешивать
01:09:54
туда и произвольной функции можно
01:09:56
запихивать и в целом вообще сам метод
01:10:02
как и многие другие в машинном обучении
01:10:04
он опирается на такую гипотезу
01:10:06
компактности
01:10:07
мы верим что схожие признаки ведут к
01:10:12
схожим меткам ну то есть наверное как то
01:10:15
будут кучковаться плохие клиенты и как
01:10:19
так кучковаться будет хороший гипотеза
01:10:21
компактности конкретно оно связано с
01:10:23
нашим предположением что если мы на
01:10:25
какой-то эпсилон в этом пространстве
01:10:26
признаком отойдем от имеющихся плюса
01:10:29
наверно там тоже будет объект положить
01:10:32
или то что вот мы на epson сдвинулись
01:10:34
наверное это не так кардинально вообще
01:10:36
все изменило и наверно вот новый объект
01:10:39
то же все-таки будет к тому же классу
01:10:41
относиться вот это интуиция который вот
01:10:45
я тут нарисовал на на бумажке просто до
01:10:49
в 2d вот эта интуиция нас может подводить и
01:10:51
сейчас в нейронах тех мы знаем что
01:10:55
бывают мы берем там изображение пингвина
01:10:58
там наша сеть его хорошо классифицирует
01:11:00
понимаю что это пингвин а мы ему пару
01:11:02
pixel и pixel и изменили или пикселов
01:11:05
и прогноз чего что это бензопила ну то
01:11:11
есть мы вроде бы вот на глаз даже не
01:11:13
видно никаких отличий то есть просто мы
01:11:14
чуть чуть чуть поменяли наш объект вот
01:11:16
на это epson сдвинулись но все
01:11:18
кардинально поменялась и собственно
01:11:21
метод бежать соседей он опять же на
01:11:27
практике довольно плохо работает во
01:11:29
первых и за проклятие размерности вот
01:11:32
как раз того факта что наша интуиция но
01:11:36
она нас здесь подводит то есть в 100
01:11:38
мерном пространстве там все будет совсем
01:11:40
по-другому вот я как-то нарисовалось
01:11:42
наверное пространство и там по сути все
01:11:46
объекты будут примерно
01:11:48
равноудалены друг от друга ну то есть
01:11:50
там не будет работать вот это
01:11:52
предположение
01:11:54
это очень интересна тема такая скорее
01:11:55
для кружка математическая представлять
01:11:58
себе там как будет он верный шар
01:12:00
выглядеть что у него почти весь объем на
01:12:02
границе шара и ничего внутри вот но
01:12:05
капусты говоря
01:12:06
интуиции нас позволит и вот эта гипотеза
01:12:09
компактности она довольно плохо работает
01:12:10
и метод ближайших соседей
01:12:13
это метрический метод он кардинальным
01:12:18
образом завязан на метрику то есть то
01:12:20
как мы вообще понимаем сходство объектов
01:12:24
выбор такой по умолчанию это евклида
01:12:26
метрика то есть мы берем один квадратный
01:12:29
корень и берем разницу двух объектов там
01:12:33
по пресс
01:12:34
по первому признаку с квадратом и так
01:12:37
далее и так далее да признака номер д-12
01:12:45
признак номер до первого объекта 2 и вот
01:12:50
я написал формулу там евклидова
01:12:51
расстояния это такой выбор по умолчанию
01:12:54
и далеко не факт что вообще это хорошая
01:12:58
затея далеко не факт что и самой их
01:13:01
лидер станем будет отображать вот эту
01:13:03
гипотезу компактности чтобы будет он
01:13:05
будет эта метрика будет ей следовать
01:13:09
дальше давайте я вам картинки покажу то
01:13:11
есть где нас может подводить интуиция
01:13:14
сейчас к деревьям вернемся давайте тогда
01:13:16
уж про метод бежать соседей
01:13:27
один момент мы сейчас посмотрим
01:13:41
а но тут для канон картинки нет у меня
01:13:44
извиняюсь но давайте тогда просто по
01:13:46
этой формуле мы сообразим в чем же может
01:13:50
быть минус во-первых масштабирование у
01:13:53
нас все эти признаки желательно чтоб
01:13:55
измерялись в одном масштабе и вот здесь
01:13:59
уже весьма справедливо это утверждение
01:14:01
что если возраст и зарплата меняются в
01:14:04
разном диапазоне то вот в этой евклидову
01:14:07
метрику зарплата будет вносить больший
01:14:09
вклад вот чисто из за того что она в
01:14:12
диапазоне там на четыре порядка больше
01:14:14
изменяется то есть нужно будет
01:14:17
масштабируем и более того мы видим что
01:14:20
вот здесь по крайне мере просто в и
01:14:22
freedom в случае клей на метрики все
01:14:24
признаки они входят с равным весом то
01:14:28
есть вот мы посмотрели квадратов
01:14:30
отклонения для возраста для зарплаты и
01:14:33
они с одним весом с одинаковым вошли в
01:14:37
эту формулу наше расстояние можно это
01:14:40
как-то модифицировать то есть смотреть
01:14:43
расстояние между двумя объектами как
01:14:46
найти в виде ну что мы берем мы берем x1
01:14:52
x2
01:14:54
признак номер же с квадратом сюда пихаем
01:14:59
какой-нить коэффициент и житий и все это
01:15:02
дело суммируем g пробегают получается от
01:15:07
единицы до d
01:15:08
но из всего этого еще можно потом корень
01:15:10
взять не очень красивая рисуя ну ладно
01:15:15
вот в принципе тоже евклидова метрика
01:15:18
евклида расстояния но мы сюда ещё
01:15:22
впихнули свои коэффициенты фи-фи и
01:15:27
вот их можно понастраивать они нам будут
01:15:29
отвечать за то как раз то насколько
01:15:32
признак важен какой коэффициент перед
01:15:34
ним поставить но вот правда на кросс
01:15:37
валидация это довольно дорогостоящие то
01:15:40
все настраивать представьте если у нас
01:15:42
100 признаков 100 коэффициентов вот этих
01:15:45
fi будет и как то их надо еще
01:15:46
настраивать и несмотря на то что метод
01:15:49
довольно таки легковесный если вы его
01:15:52
вот так вот утяжелить подбирать метрику
01:15:53
это может быть уже
01:15:55
и не так просто давайте тоже
01:16:03
плюсы-минусы
01:16:05
методы ближайшая seger спешу перед этим
01:16:12
только упомянув что помимо
01:16:14
метрики вот этой которые надо выбирать
01:16:16
еще собственно к в названии кнн до к
01:16:21
ближайшей соседей водка это тоже
01:16:23
гипер параметр но метрика она по сути
01:16:25
тоже получается гипер параметрам ее
01:16:27
выбор и вот здесь интуиция может нас
01:16:36
подводить здесь малый к они будут как бы
01:16:39
соответствовать более сложные модели это
01:16:43
не совсем так но представьте что если мы
01:16:45
смотрим только на 1 ближайшего соседа то
01:16:49
мы можем скорее всего мы построим
01:16:51
какую-то сложную границу представьте в
01:16:55
каждой точке мы смотрим только на одно
01:16:57
обижаешь соседа и может получиться
01:16:58
что-то такое dash с какими-то
01:17:00
вкраплениями
01:17:01
и эффект будет такой же как от
01:17:04
переобучения что мы построили слишком
01:17:06
сложно границу в случае кай на
01:17:08
переобучение получается уже даже коряво
01:17:11
звучит потому что алгоритм по сути не
01:17:12
обучается но все равно и наоборот если к
01:17:16
взять очень большим там и представьте мы
01:17:19
для классификации каждого теста примера
01:17:21
мы смотрим на 70 процентов всей выборки
01:17:23
мы построим наоборот что то сложно
01:17:25
что-то слишком простое ну какой то
01:17:27
эллипс хотя там зависимость посложнее и
01:17:30
это будет похоже на не до обучения то
01:17:34
есть это к много меньше чего-то но не
01:17:39
единицы ладно давайте напишу что-то к
01:17:40
порядка единицы
01:17:41
это к допустим много больше денег
01:17:47
получается тоже этот гипер параметр надо
01:17:49
настраивать так и в итоге плюсы-минусы
01:17:56
это до ближайших соседей ну во-первых
01:18:01
опять таки он быстрый
01:18:06
опять таки с оговорками если просто
01:18:08
евклидова расстояния считать есть всякие
01:18:11
алгоритмические уловки
01:18:12
уже чисто из прикладных задач там если
01:18:17
это все дело если объект хранить там в
01:18:19
когда и дереве то можно быстро смотреть
01:18:22
на вот эту близость запрос
01:18:25
дай-ка мне пять ближайших или всем
01:18:27
ближайших с помощью специальной
01:18:28
структуры когда дерево это делается
01:18:30
весьма быстро и по сути кнн все-таки
01:18:33
когда он увидел обучающую выборку он ещё
01:18:35
не начал обучаться на кое что он сделал
01:18:37
он например впихнул все объекты вот в
01:18:40
это когда идею
01:18:41
пред обработку он сделал на практикам
01:18:43
получается тоже довольно таки быстрым но
01:18:47
с другой стороны опять таки оговорка что
01:18:49
хорошо он работать может скорее всего
01:18:53
при к там порядка 100 или 1000 и уже
01:18:57
когда мы на такое число ближайшие соседи
01:18:59
каждый рассмотрим это уже все таки не
01:19:01
так быстро минусы ему нужно при добра
01:19:08
бодка
01:19:09
то есть здесь уже большая
01:19:10
чувствительность к выбросам и к масштабу
01:19:16
вот здесь уже один билл гейтс нам все
01:19:18
сильно может испортить но нет 11
01:19:23
все-таки вряд ли да то есть это будет
01:19:24
какая-то . который сильно удалена от
01:19:26
всех других но вряд ли это так повлияет
01:19:29
но в целом и выбросы и и масштаб
01:19:31
признаков уже будут существенно влиять
01:19:34
на качество модели опять-таки
01:19:38
относительный плюс interpret
01:19:41
интерпретируем оси ну и даже опять или
01:19:47
первый раз возьму это в кавычки потому
01:19:49
что интерпретировать она вообще а пятки
01:19:53
сложно об этом говорить без строгое
01:19:55
определение что это такое но как мы
01:19:57
понимаем ответы
01:19:58
алгоритма крайнон мы там отказали
01:20:02
человек в кредите он от нас уйдет потому
01:20:04
что он похож вот на 15 своих там соседей
01:20:06
ближайших они вот такие-то такие-то
01:20:09
на мотиках катаются там да и суицидов
01:20:13
интересуется
01:20:14
но на практике пятки вот если груши
01:20:17
например рисовать то это может быть пока
01:20:20
что разумным но на практике это будет
01:20:22
выглядеть так что вот мы смотрим на 700
01:20:24
ближайших соседей и тогда в общем как
01:20:27
интерпретировать
01:20:28
будет что-то типа 700 соседей из них там
01:20:33
112 оказались плохими когда средняя по
01:20:36
выборке вот и семь процентов от 4
01:20:40
начните уже это не так чтобы
01:20:43
действительно работала вот это
01:20:45
интерпретировать и
01:20:47
да это все в связке идет опять таки
01:20:50
довольно таки плохое качество но в
01:20:55
сравнении с кем-то более сложными
01:20:57
алгоритм и вот это то что это плохое
01:21:02
качество сейчас давайте
01:21:04
отдельном акцент на донесу мысли что
01:21:06
вполне возможно вам этого достаточно то
01:21:09
есть вы в реальной задачи вы начнете как
01:21:11
раз от этих алгоритмов с деревья решений
01:21:15
методы ближайших соседей если линейных
01:21:17
моделей о которых мы поговорим потому
01:21:19
что вы но вполне возможно что это уже
01:21:21
достаточно то есть вы там какой-то супер
01:21:25
сложную там не рамку допустим будете
01:21:27
полгода разрабатывать не понимать почему
01:21:30
там что-то куда-то не сходится ну и
01:21:32
возможно что она просто будет там на 3
01:21:34
процента повышать качество классификации
01:21:36
а она таких усилий нет не стоило то есть
01:21:40
вначале достаточно проверить на реально
01:21:43
задачи как будут простые модели работать
01:21:44
ну естественно
01:21:46
от простого к сложному вообще это могут
01:21:50
быть даже эвристики ну то есть я знаю
01:21:52
случай когда
01:21:53
но в общем то сложными моделями довольно
01:21:56
долго били очень простую эвристику и но
01:21:59
она просто работала и как тогда зачем
01:22:01
нам эти очень сложные модели иногда
01:22:06
работает даже просто здравый смысл
01:22:07
но дерево решений в принципе для
01:22:09
интерпретировать это и будет тот самый
01:22:11
здравый смысл точно как раз будет искать
01:22:13
вот такие правила конъюнкции там еще их
01:22:18
называют от астмы правило вида если
01:22:20
возраст меньше 30 лет и зарплата там
01:22:24
меньше 10000 но не дам кредит
01:22:26
ну то есть вот это
01:22:28
то что нам кажется здравом снова таки
01:22:30
интерпретируем и правила логического
01:22:31
деревьях как раз и будут строить так что
01:22:35
вот да вначале их проверяйте возможно
01:22:37
это уже будет работать теперь дате
01:22:43
картинки покажу из статьи здесь
01:22:50
но мы посмотрим да как до вопроса давать
01:23:15
да
01:23:16
вопрос был что если вот в случай кнн мы
01:23:21
смотрим на ближайший соседей и они ну
01:23:24
как говорят назвали плохие объекты и как
01:23:26
там понять какое число объектов
01:23:29
достаточно для того чтобы отнести к
01:23:30
одному или другому классу
01:23:33
чтобы было максимально точность процедур
01:23:38
это очень простая когда мы к
01:23:39
зафиксировали скажем 5 ближайших соседей
01:23:41
вот мы их 5 нашли и процедура дальше мы
01:23:44
что мы в самом простом случае смотрим на
01:23:46
голосовании большинством здесь три
01:23:48
отрицательных объекта 2 положительно
01:23:51
тогда вопрос сводится к тому как выбрать
01:23:54
только водка насколько ближайший соседей смотреть
01:23:58
дальше все сводится просто к выбору к на
01:24:01
кросса валидации как гипер параметр мы
01:24:03
его подбираем да и давайте картинки тоже
01:24:12
посмотрим это помогает восприятию
01:24:17
сейчас в этой тетрадке про деревья
01:24:19
решений и в статье по метод ближайших
01:24:22
соседей тоже но допустим нас такая
01:24:25
задачка нарисован двухмерное
01:24:28
пространство но можно тебе представлять
01:24:30
он верно и в общем то из так утрировать
01:24:33
то задач классификации сводится к тому
01:24:35
как здесь построить хорошую разделяющую
01:24:37
поверхность может быть вот такая синяя
01:24:39
прямая то есть это будет гипер плоскость
01:24:41
наверное это будет недостаточно вот мы
01:24:44
здесь ошибаемся желтый сюда залезли
01:24:46
красные сюда если мы здесь будем с
01:24:48
какой-то сложную кривую ли настроить
01:24:50
может быть наоборот слишком и перри
01:24:53
усложнили она вот переобучаться обойдет
01:24:55
вот эти скажем 2 желтых шарика хотя
01:24:57
может быть мы вообще ошиблись с разметки
01:24:59
здесь и в общем-то переобучение она
01:25:02
будет также иметь это куги
01:25:03
геометрической интерпретацию в виде вот
01:25:06
сложности той разделяющих границ который
01:25:08
мы 2 класс отделяем дерево решений будет
01:25:11
строить разделять границы как вот можно
01:25:14
сообразить такие что везде игра
01:25:19
это будет параллельна одной из координат
01:25:21
то есть сравнение признака с порогом нам
01:25:24
разбивают пространство на 2
01:25:26
полупространства ну предположим вот
01:25:28
здесь было ось возраст здесь 17 и тогда
01:25:32
мы конкретно тут отделяем те кто моложе
01:25:36
17 от тех кто старший в друга вместе
01:25:39
пошли по другому признаку то есть
01:25:41
подругой координате
01:25:42
и в итоге дерево решений будет нарезать
01:25:44
пространство вот на такие
01:25:46
параллелепипеды их не стоит называть но
01:25:48
в общем то на такие области с границами
01:25:53
параллельными осям дерево решений вот
01:25:58
здесь мы нарисовали
01:26:00
но мы это еще сделаем уже в виде кода по
01:26:04
дереву погуляем посмотрим разберемся как
01:26:07
его читать
01:26:17
так осуждаться и последняя скажу давайте
01:26:20
вот даже чисто геометрические какие мы
01:26:22
можем увидеть сложности с деревом
01:26:25
решение и с методом ближайших соседей ну
01:26:31
вот если такую картинку нарисовать
01:26:32
бинарной классика ции где вроде все
01:26:34
очевидно и где линейные модели нам легко
01:26:37
вот этот коридорчик найдут то есть по
01:26:39
диагонали два облака точек
01:26:41
разделит ну то есть специально такой
01:26:43
искусный примерчик но можно увидеть что
01:26:45
это уже сложно для дерева решений дерево
01:26:49
решений будет каждый раз границ строить
01:26:52
параллельна одной из осей и можно
01:26:54
представить что она здесь вот тупо
01:26:56
пойдет ступенькой вот так она не
01:26:58
сообразит и начнет вот такую сложную
01:27:01
границу строить в итоге это скажется в
01:27:04
том что дерево будет глубоким то есть
01:27:06
ему надо много вот таких вот
01:27:08
разбиений а вдруг мы там настраивали
01:27:11
гепард параметр указали что дерево
01:27:13
должно быть глубины 2 максимум и тогда
01:27:16
здесь она ну как вообще продолжать то
01:27:18
есть но дерево может какие-то простые
01:27:20
вещи такие не выхватывать типа вот
01:27:25
линейной комбинации линейной зависимости
01:27:27
между признаками
01:27:31
случайно лес но он будет строить разные
01:27:34
деревья и вот даже вот в таком
01:27:35
игрушечном примерчик и он нас не особо
01:27:37
спасет то есть будут куча куча таких
01:27:40
ступенек а не может быть немного
01:27:41
по-разному построиться но даже у нас нам
01:27:43
здесь не поможет понятно что пример
01:27:47
игрушечный но скажем так проблему он
01:27:50
поднимает
01:27:55
методом ближайших соседей вот
01:27:58
подобная картинка но он в принципе здесь
01:28:01
мед обижаешься сидеть справляется то
01:28:05
есть да он построил может быть там не
01:28:07
прямую но везде в каждой точке он
01:28:09
сообразил где больше красных точек где
01:28:12
желтых и правильно пространством в этой
01:28:15
точке раскрасил ну как правильно ну
01:28:17
похоже на истиную зависимость которая
01:28:20
там в данном случае
01:28:21
прямая
01:28:23
и в той ситуации давайте симметричный
01:28:31
случай она под него картинки нету я
01:28:35
небольшой скетч нарисую ну представьте
01:28:38
что у нас опять таки
01:28:40
и грустная ситуация которая поднимет там
01:28:41
проблему метрических методов у нас есть
01:28:45
целевой признак отток клиентов допустим
01:28:48
нолики и единички и допустим у нас есть
01:28:52
первый признак но который это почти
01:28:55
идеально там совпадает ли вы но просто
01:28:58
некая magic фичер если уж совсем
01:29:00
утрировать можно сюда переписать что это
01:29:03
попросту равно целевому признаку ну
01:29:06
понятно кана не будет но признак
01:29:08
какой-то очень крутой допустим я тут
01:29:11
только на нолик поправлю он уже один
01:29:13
этот признак очень здорово целевой
01:29:15
прогнозирует и дальше еще скажем 100
01:29:19
приз
01:29:20
еще 99 признаков и это просто шум ну
01:29:26
просто взяли нормальное распределение
01:29:27
какое-то и конкретно числе не буду
01:29:32
писать но здесь у нас попросту шум во
01:29:34
всех этих столбцах
01:29:37
вот здесь дерево решение справится на
01:29:39
ура считаем прирост информации по
01:29:43
каждому признаку сразу на первом шаге
01:29:44
увидели что вот по этому признаку
01:29:46
прирост информации огромный то есть там
01:29:49
очень тропе почти нулевая будет и по
01:29:51
остальным шумовым признаком но там бог
01:29:54
ничего красиво не будет это все скажется
01:29:56
в числах на приросте информации и дерево
01:29:59
решений в данном случае будет выглядеть
01:30:01
просто как пенек если f1
01:30:05
ну по сути зависит а если f1 to y в
01:30:09
противном случае y равно нулю то есть
01:30:13
такой искусный примерчик для дерева
01:30:14
решения и он очень прост а вот метод
01:30:16
ближайшие соседи он пострадает от такого
01:30:19
большого числа шумовых признаков то
01:30:21
здесь везде будет считаться по крайней
01:30:23
мере если мы остановимся только на
01:30:25
евклида метрики по умолчанию то да у нас
01:30:29
здесь будет разница между двумя
01:30:32
объектами по первому признаку
01:30:36
квадрат этой разности и дальше к нему
01:30:38
добавить куча мусора который нам
01:30:39
картинку то испортите и метод ближайших
01:30:42
соседей вот с таким простым пример чекам
01:30:44
не справится так и последняя такая
01:30:55
коряво картинка потом практике перейдем
01:30:58
в целом алгоритмы классификации довольно
01:31:02
хорошо можно поделить на 3 семейства
01:31:08
метрические методы это метод ближайших
01:31:13
соседей но и не только здесь будут в общем так
01:31:17
мы можем как-то поменять метрику
01:31:19
сходство и и все от это изменится ну
01:31:24
например тут появится еще такая штука
01:31:26
как ядра мы про них подробно не будем
01:31:29
говорить но по сути все что поменялось
01:31:30
это только то как мы определяем сходство
01:31:32
двух объектов вот это можно сделать
01:31:34
довольно красиво математичка
01:31:37
но допустим мы можем сравнить какие-то
01:31:41
сложные структуры на входе какие-то
01:31:43
графы помеченные графы ну вот что-то
01:31:46
сложные рисую мы попросту можем ответить
01:31:50
на вопрос как нам считать сходство этих
01:31:52
двух объектов например по общему числу
01:31:54
под графов я как-то сложным образом
01:31:56
задам вот эту функцию расстояние между
01:31:59
объектами и тогда я могу это пацан
01:32:02
подсунуть попросту даже в кнр и это даже
01:32:05
действительно работает то есть
01:32:07
токсичность изучают на входе граф
01:32:10
молекулярный на выходе его свойства там
01:32:12
бинарным допустим токсичен нетоксичен
01:32:14
я попросту расстояния задаю как-то уже
01:32:18
может быть сложно неким ведром но поскольку это я
01:32:21
расставил по сути только
01:32:23
задал то это будет метрический метод все
01:32:27
это вообще большое семейство метрический
01:32:30
плюс вот я дрова методы потом будет
01:32:34
целое семейство методов но на жаргоне
01:32:37
деревянные но в общем-то основанный на
01:32:39
деревьях деревья плюс ну можно попросту
01:32:45
написать плюс busting и случайный лес но
01:32:48
на самом деле деревьев тоже куча-куча
01:32:50
самых разных это тоже отдельное
01:32:53
семейство
01:32:54
и линейные методы мы будем говорить про
01:33:00
плюсы и минусы всех трех семейств но
01:33:04
первое что можно посоветовать это взять
01:33:06
из каждого семейства по представителю
01:33:08
метод ближайших соседей дерево решений и
01:33:11
там для классификации это логистическая
01:33:13
регрессия про который будем говорить и
01:33:15
все три
01:33:16
попробовать на наших данных у них всех
01:33:19
свои требования к входным данным вот
01:33:21
масштабирование там выбросы
01:33:23
они все хороши там по-разному в разных
01:33:26
условиях как мы видели и увидим но как
01:33:29
минимум можно их все проверить вот
01:33:32
логистической регрессии уже в общем
01:33:33
большом числе там очень часто в боевых
01:33:36
систем их уже применяется но и деревья
01:33:39
решений внутри лесов и бустинга конечно
01:33:43
же тоже давайте перерыв на этом сделаем
01:33:49
и потом перейдем к практике и к
01:33:51
обсуждению проектов
01:45:54
так коллеги продолжим сейчас давайте в
01:45:59
то что мы обсудили
01:46:00
сделаем в ходе познакомимся с
01:46:03
библиотекой со kettler
01:46:04
одно из самых популярных питон библиотек
01:46:07
машины обучения и конкретно посмотрим
01:46:10
реализацию деревьев решений методы
01:46:13
ближайших соседей и сравним их на
01:46:15
каком-то наборе данных статья можно
01:46:18
посмотреть как это для цифр делается
01:46:19
сейчас все таки я выберу
01:46:22
побыстрее вариант на данных по оттоку мы
01:46:26
посмотрим какое дерево построиться чуть
01:46:29
его настроим и собственно что она
01:46:32
прогнозирует но и мы pandas изучали
01:46:37
отнюдь не зря то есть мы все пред
01:46:40
обработка пока у нас будет в панда сито
01:46:43
есть также точно мы из леса и файликов
01:46:46
пока будем наши данные считывать нам
01:46:52
понадобится pandas мы что то возможно
01:47:00
будем рисовать
01:47:01
тогда я импортируем и понадобится
01:47:05
библиотека из колес этот сокращенно есть
01:47:08
от socket лет из-за гитлер
01:47:13
3 мы импортируем где сезон 3 классе есть
01:47:19
еще регрессор
01:47:20
сейчас мы не обсуждали но в статье
01:47:21
рассматривается как работает дерево
01:47:23
решений и для регрессии дальше все
01:47:30
больше то знакома
01:47:32
первичная часть когда мы сочетаем данные
01:47:34
можем немного на них посмотреть вот
01:47:37
сейчас дойдем до построение дерева
01:47:40
но как раз обсудим от это разбиение
01:47:42
выборки на чем собственно дерево
01:47:43
обучать данные мы считываем целиком черн
01:47:51
минимальная предобработки нам
01:47:53
понадобится
01:47:56
пока мы штат вообще выкинем потом мы
01:47:59
будем обсуждать как работать с
01:48:00
категориальными признаками и мы
01:48:03
международный роуминг и голосовой 8 mile
01:48:10
план давайте войск mail план мой вообще
01:48:12
выкинем так все признак мы там еще
01:48:17
видели что начисление у нас лишние
01:48:19
признаки ну ладно сейчас давайте не
01:48:20
увлекаться привет обработкой давайте
01:48:24
самый минимум сделаю при предобработки
01:48:26
вот вся kettler на чтобы обучать модели
01:48:30
нам нужно их все перевести и в числа то
01:48:33
есть мы отдельно поговорим про текст и
01:48:35
что с ними делать сейчас давайте все
01:48:38
признаки оставим числовыми то есть мы
01:48:43
выкинем признаки штат голосовые
01:48:51
сообщения от
01:48:52
подключены причина или или нет и можно
01:48:55
что то еще но то что у нас тут признаки
01:49:00
пропорциональны скажем начисления
01:49:03
вечерний и там проговорены минуту
01:49:06
вечерника очень для деревьев решений это
01:49:08
не так страшно что при знаки дублируются
01:49:13
так мы удалим вот два признака указываем
01:49:16
что это именно с столбцы и указываем что
01:49:19
исходный dataframe должен поменяться
01:49:21
in place i равно труп и у нас останется
01:49:24
еще хороший признак подключение
01:49:27
международной роуминга вот его мы
01:49:28
переведем известного в один или ноль по
01:49:34
разным от можно делать но допустим я
01:49:36
сделаю вот так с помощью map и я передаю
01:49:43
словарь который с превращает в один но у
01:49:54
превращают в 0
01:49:57
тут конечно может возникнуть вопрос а
01:49:59
что если там попадется что-то еще не
01:50:01
есть на какой-то третий вариант но
01:50:04
сейчас мы знаем что его не будет вообще
01:50:06
для этого тоже конечно в том же сайте
01:50:08
черных специальные методы есть и в общем
01:50:13
то сейчас если посмотреть допустим на
01:50:16
инфо то мы увидим что все признаки уже
01:50:20
численные и булевые признак у нас
01:50:24
целевой charm
01:50:26
но чем остальные уже от строков
01:50:28
признаков мы избавились дальше что
01:50:32
стандартно делают это выделяют целевой
01:50:35
признак y ног y это просто популярное
01:50:39
обозначение это наш целевой
01:50:41
чарр его мы приведем к типу int
01:50:45
это в принципе не обязательно но пусть
01:50:47
тоже там будут нули и единички и тогда
01:50:52
матрица x это будет все остальное мы
01:51:00
признак черн просто выкинем вот эта
01:51:02
целевой размерности проверим x y везде
01:51:14
под 3333 объекта и в матрицы x у нас 17
01:51:18
признаков дальше мы их хотим разбить на
01:51:25
две подвыборки вот те самые 70 процентов
01:51:28
и 30 давайте так и будет это делает
01:51:32
метод
01:51:34
из с колен модал selection вот это
01:51:37
вообще большая-большая модуль всяких
01:51:41
корнем отдал selection в том числе здесь
01:51:44
метод v-train тест сплит но
01:51:47
действительно он в каком смысле помогает
01:51:49
в выборе модели модал selection
01:51:51
потому что вот помощью это сплита мы
01:51:53
посмотрим что где лучше работает деревья
01:51:59
решение посмотрим метод ближайших
01:52:00
соседей и дерево решений настроим тренд
01:52:05
с сплит когда видите новый метод можете
01:52:07
вот так вот посмотреть его документацию
01:52:10
сейчас понятно неохота давайте покажу
01:52:13
как он работает он берет наши два
01:52:18
объекта достаточно и один на мой сразу
01:52:20
сплитить будем и матрицу x и вектор
01:52:23
ответов y и берет он аргумент каков
01:52:27
будет размер в тестовой выборке ну
01:52:30
точнее это доля 30 процентов по
01:52:35
умолчанию он как раз шов лет но
01:52:38
поскольку это можно сделать разными
01:52:39
способами здесь для воспроизводимости
01:52:42
лучше зафиксировать брендом стоит это
01:52:44
тот самый сид если два раза выполнил этот кусок
01:52:48
кода он нам гарантировать что попросту
01:52:50
разбиение пройдет одинаково и вернет он
01:52:54
4 объекта он матрицу x r забьет на две
01:52:56
части и вектор y тоже разобьет на два
01:53:02
вектора
01:53:12
дальше можно и у них посмотреть на
01:53:14
размерность но одна треть от трех сот
01:53:20
3338 здесь будет 1000 объектов в от
01:53:24
ложной часть 1000 вот я ее назвал
01:53:27
вылитый шин и 2333 вот на этом будем
01:53:30
обучаться и давайте создадим первый наш
01:53:38
объект вот этот бисерин track is fair
01:53:40
можно его назвать первое дерево это
01:53:44
будет попросту 10 жена 3 класс fair
01:53:47
конструктор то есть создаем экземпляр ну
01:53:51
правда здесь есть место тоже случайности
01:53:54
вот на практике возможны в общем это не
01:54:00
не настолько детерминированный алгоритм
01:54:02
как в теории выглядит ирэн нам стоит
01:54:03
лучше тоже для воспроизводимости
01:54:05
фиксировать когда признаков много мы
01:54:08
будем смотреть не на все признаки оно
01:54:10
какое-то подмножество
01:54:11
то есть вот здесь случайность ну кажется
01:54:15
еще там случайность в том как пропуске
01:54:17
обрабатывать нашим брендом стоит лучше
01:54:20
фиксировать
01:54:22
пока мы просто создали экземплярах еще
01:54:24
никакого обучения не происходило и
01:54:29
давайте мы посмотрим на качество на
01:54:32
консультации вот как это дерево будет
01:54:34
работать на нашей части обучающей
01:54:37
выборке вот на 70 процентов
01:54:39
отсюда же из modules легче нам
01:54:41
пригодится функция crosswalk score то
01:54:47
есть качество на кросс валидации и вот
01:54:51
как раз она нам вернет давайте посмотрим
01:54:54
что вернет как раз качество какие доли
01:55:00
верных ответов мы получили на
01:55:01
консолидации смотрите она берет эстимейт
01:55:06
это наша модель
01:55:07
мы сюда дерево передадим передадим
01:55:10
выборку x и y скоренко это как мы
01:55:15
оценивать модель бы это по умолчанию
01:55:17
долю верных ответов cevita кросс
01:55:19
валидация то есть тупая вот это к
01:55:22
сколько файлов
01:55:24
это можно распараллелить по процессам
01:55:26
давайте здесь укажем только что мы
01:55:30
используем первое вот это наше дерево и
01:55:34
консультацию будем проводить вот на
01:55:36
выборке x train y train вот на этих 70 процентов
01:55:40
кросс валидация пусть пятикратный будет
01:55:44
выполняю все это делается очень быстро
01:55:47
получил пять чисел и вы понимаете уже
01:55:51
что произошло пять раз вот это дерево
01:55:54
обучилась на 80 процентов данных и цифры
01:55:58
которые мы получили это доля верных
01:56:00
ответов на 20 процентов данных и пять
01:56:03
раз эти 20 процентов выборки
01:56:05
разные на пять цифр смотреть не всегда
01:56:13
удобно хотя желательно желательно
01:56:16
проверить что у нас цифры примерно такие
01:56:19
одинаковые что у нас нигде ни на какой
01:56:20
из подвыборок нету какого-то резкого
01:56:22
провала если этот провал есть то что то там с
01:56:25
данными
01:56:26
не так это либо выбросы очень там надо
01:56:29
уже скорее глазами смотреть почему там
01:56:30
качество проседает но это редко
01:56:33
случается как правило вот картина
01:56:36
примерно такая будет но обычно я еще в
01:56:40
самом начале импортирую нам пай и тогда
01:56:45
считаю просто среднюю долю верных
01:56:46
ответов на консультации то есть здесь
01:56:49
попросту среднее можно округлить еще но
01:56:54
ладно мы видим что номер медиана нам
01:56:58
здесь не обязательно нас такого разброса
01:57:00
уж нету здесь медиана будет но по сути
01:57:02
такая же как среднее и в принципе если
01:57:08
так одной цифры охарактеризовать как
01:57:10
модель сработала то пожалуй это будет
01:57:12
именно среднее качество на кросс
01:57:14
валидации но это мы пока не настраивали
01:57:18
параметры теперь можно посмотреть на
01:57:21
этот класс что там по умолчанию по
01:57:25
умолчанию критерий немного другой джинни
01:57:31
это типа прироста информации только
01:57:33
немного по-другому считается тоже за ним
01:57:35
своей идее есть максимально глубина ведь
01:57:38
она по умолчанию не ограничивается то
01:57:40
есть дерево это построено до
01:57:42
максимальной глубины ну и возможно мы
01:57:46
модель нашу сможем улучшить тут есть еще
01:57:49
самые разные аргументы именно класса
01:57:55
бисерин track 8 по мере необходимости
01:57:58
какие-то из них будут преграждать
01:58:03
хорошо давайте теперь посмотрим на этот
01:58:08
бюджет соседей это из с колен neighbors
01:58:11
мы импортируем
01:58:13
кей neighbors сквозь файл и тоже создаем
01:58:18
экземпляр класса кнн давайте посмотрим
01:58:25
какие гипер параметр какие аргументы он
01:58:27
нам предлагают здесь прежде всего это
01:58:30
число ближайших соседей и можно задать
01:58:33
vesa вот по умолчанию все ближайшие соседи
01:58:37
голосуют с одинаковым весом и дальше уже
01:58:40
не так важно дальше можно в принципе по
01:58:46
умолчанию оставлять аргументы
01:58:48
давайте сделаем то же самое то есть
01:58:50
посчитаем среднюю долю верных ответов на
01:58:53
консультации уже для канон да но здесь
01:58:59
это будет быстро так давайте дамы
01:59:02
экземпляры все-таки созданием first
01:59:06
first н.н.
01:59:07
но и мы увидим 0 8 6 то есть вроде бы
01:59:14
сильно ниже процент но сразу так
01:59:17
заявлять что метод бежать соседи здесь
01:59:20
будет хуже дерево это еще рано по
01:59:23
хорошим нам надо настроить на
01:59:25
консультации и то и другое и гипер
01:59:28
параметры дерева и гипер параметры
01:59:30
метода ближайших соседей ну тогда уже
01:59:33
сказать убедиться что действительно
01:59:36
дерево здесь работал лучше давайте мы
01:59:40
подберем сначала гипер параметры дерево
01:59:44
решений максимальную глубину
01:59:48
то есть тут я напишу что мы настраиваем
01:59:55
максимальную глубину для дерева так и
02:00:04
горячей клавиши я не знаю для того чтобы
02:00:06
сменить тип клетки один момент хорошо
02:00:13
значит у нас задача теперь настроить
02:00:15
параметры то есть как-то сравнить
02:00:17
несколько моделей выбрать лучшую
02:00:20
и в модели в мы будем менять только вы
02:00:21
максимально глубину ну благо вручную это
02:00:26
не обязательно делать хотя мы тоже будем
02:00:29
строить такие графики то есть чисто в
02:00:31
цикле по перебирали глубину дерева и
02:00:33
построили как вот качество менялась это
02:00:36
тоже будет полезно но пока давайте
02:00:38
воспользуемся более менее автоматическим
02:00:41
средством горит все семьи будет делать
02:00:47
довольно таки тупой поиска по решетке
02:00:49
горит эта решетка search значит мы ищем
02:00:52
хороший гипер параметры sea view the
02:00:54
cross валидация решетка на нас все
02:00:59
представить и несколько параметров гипер
02:01:02
параметров у каждого перебираем
02:01:03
несколько значений все комбинации это
02:01:05
будет декартова произведения то есть это
02:01:06
можно нарисовать решетки она может быть
02:01:08
верной но эта решетка и мы вот так вот
02:01:11
тупо идем по всем сочетанием всех
02:01:14
гипер параметров считаем качественно
02:01:16
консультации и можете догадаться что это
02:01:19
в реальности весьма тяжеловесно сейчас
02:01:22
мы это сделаем мы создадим объект
02:01:27
говорить о что давайте посмотрим что он
02:01:31
принимает он принимает модель которую мы
02:01:35
будем настраивать парам upgrade это
02:01:38
сейчас мы создадим это словарик в
02:01:40
котором мы скажем какие значения
02:01:41
перебирать и дальше тоже параметры кросс
02:01:47
валидации распараллелить это дело можно
02:01:50
но сейчас главное я укажу что имеет
02:01:56
смысл передать в грехе частями
02:01:58
мы зададим словарик
02:02:02
параметр в дерево которое мы перебираем
02:02:04
мы перебирать будем только максимальную
02:02:06
глубину и скажем что будем это делать в
02:02:10
диапазоне но дальше опыт здравый смысл
02:02:13
все такое в каком диапазоне лучше эту
02:02:15
глубину перебирать случае дерева и вот
02:02:19
сейчас такой не большой выборке это
02:02:21
будет все очень быстро и можно себе
02:02:24
позволить по перебирать в диапазоне от одного
02:02:28
скажем до десяти и раньше там включается
02:02:34
или правая граница кажется что нет ну да
02:02:36
это до 10 вот то есть мы создали такой
02:02:41
словарик если бы мы здесь перебирали еще
02:02:44
какой-то
02:02:46
гипер параметр мы тоже его указали до
02:02:52
перебирать гречку будет все сочетания в
02:02:56
данном случае это всего лишь как цикл по
02:02:59
максимально глубине
02:03:01
но если мы сюда передадим еще вот это
02:03:05
сейчас давать более осмысленная что
02:03:07
стоит перебирать максимальное число
02:03:09
признаков по которому делать сплит
02:03:11
то есть когда признаков много не факт
02:03:14
что нам стоит перебирать все все все
02:03:16
давайте возьмем там скажем 05 07 или
02:03:22
единицу и вот в таком случае уже вот
02:03:25
будет декарта президент действительно
02:03:27
решетка то есть все сочетания
02:03:29
10 вот этих глубин и 3 сочетание
02:03:31
параметр здесь будет уже 30 сочетание
02:03:35
параметров
02:03:36
здесь будет просто единиц ну хотя
02:03:43
давайте так и оставим не так
02:03:46
принципиально
02:03:49
наиболее понятным средством борьбы вот
02:03:52
здесь переобучение будет максимальная
02:03:54
глубина дерева и тогда мы создадим
02:03:58
экземпляр
02:04:00
3y давайте я назову перебор по решетке
02:04:04
для дерева мы в него передадим
02:04:05
прямо-таки объект вот first three
02:04:07
словарь параметров по которым он будет
02:04:10
гулять параметры консультация пусть
02:04:12
пятикратно есть
02:04:14
есть лучше уже раз параллели типа
02:04:16
процесса по процессорам но минус один
02:04:21
это задействовать все ядра в моем случае
02:04:23
81 будет за действия ускорение будет
02:04:26
конечно не восемь раз то есть там с
02:04:28
питоном все печально но раза в 2 с
02:04:31
половиной можно надеяться и я создаю вот этот
02:04:35
объект пока ничего не произошло
02:04:38
впечатление начинаются тогда когда я
02:04:40
перед передам туда данные и в soccer
02:04:43
довольно общий такой интерфейс методы
02:04:46
fit i predict они для очень большого
02:04:48
класса объектов реализованы в том числе
02:04:51
и для вот это поиска по решетке то есть
02:04:55
я ему передаю
02:04:56
теперь выборку x train y train и вот
02:05:01
теперь когда я запущу пойдет кросс
02:05:04
валидация здесь уже в реальном случае
02:05:08
лучше время замерять как быстро это
02:05:11
выполняется можно здесь параметрам verbo
02:05:13
us поиграться то есть чтобы он больше
02:05:14
печатал во время выполнения вот но в
02:05:19
случае с деревом это все будет очень
02:05:20
быстро вот меньше чем за секунду он
02:05:25
перебрал вот эти 30 сочетание параметров
02:05:27
для дерева вот тут он много всего пишут
02:05:32
ну да что он не слушается если точку ,
02:05:34
он все равно это печатает ну ладно
02:05:36
хорошо и что у нас появилась у нас
02:05:39
появился вот этот обученный объект 3y он
02:05:42
провел кросс валидацию и теперь у него
02:05:46
что то лучше нора появилась если
02:05:49
написать by и нажать tab тонн подскажет
02:05:54
что там появилось лучше появилась лучшее
02:05:58
сочетание параметров лучшие качества на
02:06:00
кросс валидация яндекс не знал что такое
02:06:03
и без tasty метро это будет лучше модель
02:06:07
то есть это дерево решение которое
02:06:08
обычно уже на всей выборки с лучшими
02:06:10
параметрами посмотрим на лучшее качество
02:06:13
на консультацию же она почти 94
02:06:16
процентов ползет и лучшее сочетание
02:06:19
параметров сейчас мы увидим конкретно
02:06:24
максимальную глубину и
02:06:28
а летом число признаков которые
02:06:29
использовать до глубина дерева 6
02:06:32
максимально число признаков лучшим
02:06:35
оказалось 07 тут еще можно конечно это
02:06:39
все дело нарисовать можно даже китай
02:06:41
птичка качество от этого зависела можно
02:06:42
преследовать насколько дерево там
02:06:44
чувствительна к гипер параметрам но как
02:06:46
правило мы в реале боевая задача не
02:06:48
будем так что этим играться это
02:06:50
увлекательно но мы скорее прикладную
02:06:52
задачу что вот то есть но хотя бы мы
02:06:55
видим что 94 процента на консультацию
02:06:57
это уже отличается 1 из 1 1
02:07:00
и давайте то же самое проделаем для кнн
02:07:05
вдруг он там
02:07:07
выстрелит то есть вдруг
02:07:09
5 ближайший сосед было прям совсем плохо
02:07:12
и вдруг на сотни ближайшие соседи он там
02:07:13
стрелял в принципе мы будем делать то же
02:07:17
самое давайте даже скопирую так клетки
02:07:22
можно прямо все выделить и скопировать и
02:07:24
все вставить ну копипаста это конечно не
02:07:27
очень здорово но давайте я где надо
02:07:31
сообщил что менять мы теперь создаем
02:07:33
объект
02:07:35
кнр grid это тоже будет греть о тебе и
02:07:41
передаем ему вот тот самый конец и сюда
02:07:49
передадим список параметров которые мы
02:07:52
меняем уже у кайли
02:07:54
а здесь будем менять только число
02:07:59
ближайших соседей называется аргумент
02:08:04
and members и мы его поменяем в
02:08:08
диапазоне но это хорошего просто на
02:08:11
самом деле может оказаться что хорошо
02:08:14
работает и метод 1 ближайший соседа или
02:08:16
2 может оказаться что наоборот крайне за
02:08:20
другая то есть но в начале когда вы не
02:08:22
знать какие диапазоны перебирать лучше
02:08:24
взять широкий диапазон понятно что мы
02:08:27
сейчас не захотим уже с шагом от 1 до
02:08:29
100
02:08:30
сто раз консультаций проводить может
02:08:32
быть и захотим а может быть это и долго
02:08:34
будет давайте мы посмотрим на какие-то
02:08:36
маленькие значения параметров и на
02:08:40
большие
02:08:42
тут давайте я обычный раньше и еще я от
02:08:47
50 до 100 прогуляюсь с шагом 10
02:08:50
мне кажется в третьем питоне это точно
02:08:54
не помню на всякий случай лучше явно к
02:08:55
списку это приведем и тогда мы передадим
02:09:01
сюда и параметры кнн консультант пусть
02:09:05
тоже будет пятикратно вот здесь он не
02:09:11
буду прогнозировать
02:09:12
насколько долго но на более менее уже
02:09:16
нет не игрушечной выборки канада здесь
02:09:19
может работать уже быстрее наоборот
02:09:20
дольше то есть с большим числом
02:09:22
ближайших соседей уже это будет не
02:09:24
настолько быстро как хотелось бы но дать
02:09:26
посмотрим так soria не тут меня теперь
02:09:32
мы обучаем cain and greet ну уже пять
02:09:43
секунд он обучался давайте теперь тоже
02:09:45
самое у него посмотрим лучшее сочетание
02:09:48
гипер параметров и лучше качество но вот
02:09:52
здесь как раз таки не очень приятная
02:09:54
ситуация когда мы получили что лучше
02:09:56
значение 4 она где-то на границе того
02:10:00
что мы перебирали ну здесь можно
02:10:02
запустить на самом деле второй поиск и
02:10:05
при параметров смотрите от чего я хочу
02:10:09
предостеречь что мы вот сейчас по
02:10:11
перебирали депре параметры вот здесь
02:10:13
число соседей от одного до четырех и
02:10:15
потом большие значения
02:10:17
а может быть мы здесь в промежутке
02:10:19
упустили что-то может быть оптимально
02:10:21
там 10 15 вот здесь можно
02:10:23
скорректировать но в данном случае мы
02:10:25
можем просто еще раз прогнать грязь но
02:10:31
вообще лучше это расписать как именно 2
02:10:34
грехе что мы увидели что первый нам
02:10:36
выдал вот такое значение на границе и
02:10:39
давайте тогда мы еще переберём от 5 до
02:10:43
30 с шагом 5 вот и даже пока мы
02:10:50
закомментируем тут будем считать что мы
02:10:51
знаем что там ловить нечего
02:10:54
так лист да винчи
02:11:07
давно и здесь получили в районе 10 уже
02:11:10
это намного лучше это где-то посреди
02:11:13
перебираем его диапазона еще дальше в
02:11:16
принципе если помучиться можно в районе
02:11:18
10 по перебирать а вдруг 9 лучше но мы
02:11:21
сделаем сейчас вывод уже что здесь на
02:11:22
этих данных
02:11:24
лучше работают дерево решений до уже
02:11:28
проверили сказали что 9 соседи лучше чем
02:11:31
10 но это уже частности хорошо мы дерево
02:11:34
тогда выбираем между как минимум между
02:11:39
деревом и методом ближайшие семьи мы
02:11:41
здесь возьмем дерево тогда давайте для
02:11:45
него посчитаем оценку на отложенные
02:11:46
выборки недаром мы ее отложили то есть у
02:11:50
нас есть объект 3 grid в принципе в нём
02:11:55
сидит как раз вот эта и страстеметр
02:11:56
лучше дерево все это как раз таки одессе
02:11:59
внутри crossfire с лучшими параметрами
02:12:02
глубина 6 70 процентов признаков
02:12:05
используется и более того это дерево уже
02:12:07
обучена на всей выборки на консультации
02:12:10
смотрите там было 2333 объектом и
02:12:14
пятикратную консультацию проводили это
02:12:16
на 08 надо множить еще то есть плюс
02:12:18
минус на двух тысячах 1900 объектов но
02:12:21
здесь уже он обучился на всех 2333
02:12:25
объектов и собственный готов делать
02:12:29
прогноз для отложены выборки прогноз
02:12:32
делается методом predict и сюда передаем
02:12:38
выборку
02:12:39
в данном случае вот отложен вылет я ее
02:12:42
назвал expelled на себя просто выполню
02:12:44
то ведь это будет список из нулей и
02:12:47
единиц этот наш прогноз можно его
02:12:50
назвать
02:12:51
прогноз дерево на отложенной выборки и
02:12:56
теперь мне интересно тогда качества как
02:13:02
все-таки дерево работает на отложено
02:13:04
выборки но в случае доля верных ответов
02:13:10
кажется это можно делать даже вот так
02:13:12
или нет лучше лучше явно метрика который
02:13:17
нас интересует
02:13:19
да забыл y
02:13:22
да действительно чтоб оценить нам нужен
02:13:24
ещё y да и над ложным и 93 6 процента
02:13:30
получаем вообще лучше явно импортировать
02:13:33
из скалярных metrics лучше явно показать
02:13:36
какую метрику мы считаем или ну да в
02:13:38
методе скоро это тоже аргумента можно
02:13:40
передать но если нам нужно именно
02:13:43
метрика мало ли мы там ее поменяем лучше
02:13:46
явно им и красив скоро импортировать это
02:13:49
и есть доля верных ответов
02:13:51
и тогда мы почитаем вдоль верных ответов
02:13:53
между реальными метками на отложенные
02:13:56
выборки и нашими прогнозами и вот те же
02:14:02
самые диас 36 процентов получаем от
02:14:05
ложной выборки чуть ниже чем на
02:14:07
консультации но благо
02:14:10
кажется что не сильно то есть там в
02:14:12
пределах погрешности настройки
02:14:14
параметров можно сказать что мы на новой
02:14:18
выборки для новых клиентов которые к нам
02:14:21
придут вот желательно из этого
02:14:22
распределения то чтобы там сильно что-то
02:14:24
не поменялось нежелательно обязательно
02:14:27
на самом деле вот нам ожидаем вот такое
02:14:29
качество модели что будет угадывать вот
02:14:33
столько хорошо это или нет самый
02:14:40
примитивный bass line с которым надо
02:14:42
сравнивать вообще на на здравый смысл
02:14:44
это посмотреть на долю на долю хороших
02:14:47
клиентов в от ложной выборки то есть нас
02:14:53
в 85 процентов в клиент вообще в нашей
02:14:55
выборке хорошие получаться если так уж
02:15:00
совсем примитивные bass line сделают
02:15:02
модель который всегда прогнозирует что
02:15:04
клиент хороший у нее будет вот такая
02:15:07
доля верных ответов 85 процентов но надо
02:15:10
хотя бы вот на этом такой сцене течет
02:15:14
сделать что хотя бы превышает вот такой
02:15:15
бой знаем но мы видим что с запасом
02:15:20
дальше на практике еще берутся какие-то
02:15:22
экспертные правила которые нам это
02:15:24
человек занимающийся током вот он нам
02:15:26
сказал вот смотри сюда сюда тоже это
02:15:28
будет там два логических правила их
02:15:30
можно вручную зашить это будет в листики
02:15:32
посмотреть как они работают на пример
02:15:34
такой в статье я приводил что если мы не
02:15:38
знаю машинном обучении данные покрутим
02:15:40
по верхнему картинки построим но немного
02:15:42
мы эту цифру повысим но возможно не так
02:15:44
сильно скажем до 87 процентов но дерево
02:15:47
решений нам качество повышает но
02:15:49
все-таки
02:15:50
значительно давайте теперь собственно
02:15:58
последнее что перед практикой мы сделаем
02:16:00
это это дерево
02:16:02
нарисую тут я скажу из кто-то виндой
02:16:08
сейчас будет страдать с отрисовкой
02:16:09
деревьев но я в общем потом помогу там
02:16:12
могут быть проблемы давайте я напишу
02:16:16
дерево у себя посмотрим как она выглядит
02:16:19
для прессовки деревьев оттуда же из
02:16:22
скалярно 3
02:16:24
я импортирую вот такой метод экспорт
02:16:28
графику то есть попросту soccer он сам
02:16:30
деревне рисует он их экспортирует формат
02:16:34
dot и дальше граф визам их можно
02:16:36
открывать
02:16:39
работает это вот таким образом я беру
02:16:43
где у нас лучше а дерево сидит она сидит
02:16:46
у нас вот здесь без тасс тиммейтов
02:16:50
давайте посмотрим что у него вообще есть
02:16:54
да он подсказывает как-то перевести в
02:16:56
тот формат и он берет дерево решений
02:16:58
файлик на выходе может его ограничить по
02:17:01
глубине и признаки мы тоже можем
02:17:04
подписать еще как-то там раскрасить
02:17:07
можно field
02:17:08
давайте я возьму наше дерево файлик на
02:17:13
выходе это будет скажем целиком 3 и это
02:17:19
будет тот файл
02:17:27
фичер
02:17:28
фича names в дереве конечно хорошо бы
02:17:34
смотреть не на индексы признаков а чтобы
02:17:36
они были подписаны красиво вот для там
02:17:38
мы передаем вечерний мтс но с ними все
02:17:41
просто они у нас сидели все ли просто
02:17:46
до в исходной матрицы x это по сути то у
02:17:50
нас дат фрейм у нас есть название
02:17:53
признаков вот их-то мы и передаем но еще
02:17:59
сами вершины можно будет по раскрашивать
02:18:03
это вот ещё один аргумент и все что он
02:18:06
сделал он перевел это дерево в некий
02:18:09
формат dot но его дальше можно
02:18:11
софтиной открыть graphviz она
02:18:13
довольно-таки тяжеловесно можно с
02:18:16
расширением пойдут его перевести формат
02:18:18
картинок уже png
02:18:20
ну то есть смотрите если есть тут
02:18:23
отображу все что нас есть вот здесь
02:18:25
появился этот файлик появился или нет ну
02:18:33
да вот он лежит целиком 3 dot теперь я
02:18:36
его перевожу но одно заклинание вроде
02:18:39
как я вы даже запомнила вроде нет но вот
02:18:41
он подсказывает как в png формат
02:18:42
переводить это правда если установлена
02:18:45
пойдут утилитка короче в визуализация
02:18:47
деревьев питон ару проигрывает то есть
02:18:50
это не так юзер френдли но привыкнуть к
02:18:53
этому можно команды в терминале то есть
02:18:57
я начинаю простительно знака и вот этот
02:19:01
файлик он мне переведет в png формат и
02:19:08
вот картинку нас появилась дальше я ее
02:19:12
отображаю
02:19:19
отображать можно есть средства мира и
02:19:21
python но точно the html тег для этого
02:19:24
тоже легко запомнить им же сердце и вот
02:19:28
этот файлик мы рисуем не файлика
02:19:33
картинку мы просто отображаем в тетрадке
02:19:39
красиво или нет не очень наверное у png
02:19:46
у нас рядом лежит
02:19:47
это смотрите дерево на консультации мы
02:19:50
его построили глубины 6 как раз для
02:19:53
этого здесь еще есть аргумент mакс df
02:19:55
именно в визуализации да то есть это уже
02:19:57
готовое дерево он просто его нарисует
02:20:02
нарисует не полностью так можно сам png
02:20:12
файлик открыть давайте я все-таки
02:20:17
что сейчас сделаю я обучу дерево глубины
02:20:24
3 вот мы на него посмотрим явно задам
02:20:31
максимально глубину 3 и можно прямо так
02:20:33
вот в виде pipeline а его сразу обучить
02:20:39
можно даже посмотреть как оно сработает
02:20:42
на отложенной выборки сработает она чуть
02:20:51
хуже около 90 процентов будет но давайте
02:20:53
на него посмотрим на вот это второе
02:20:56
дерево и вот сюда его передам давайте
02:21:02
попусту на двоечка я поменял
02:21:16
do not
02:21:18
но это уже можно смотреть поэтому дерево
02:21:22
уже можно прогуляться что она нам рисует
02:21:27
во-первых первый признак по которым
02:21:29
прошло разбиение
02:21:30
начисление дневных total дейч
02:21:35
дневные начисления сравняться с порогом
02:21:38
45 у.е.
02:21:39
но видимо баксы вначале у нас было две
02:21:43
тысячи триста тридцать три объекта
02:21:44
соотношение класса была 1983 350 350 это
02:21:49
плохих клиентов 1983 хороших сама клетка
02:21:54
оранжевая по преобладанию вот именно
02:21:56
хороший клиент в начале джинни был 0025
02:22:03
50 g не отдельно не обсуждали это тоже
02:22:06
такой же точно
02:22:08
информационных критерий не такой уж
02:22:10
точно идея его точно такая же выбирать
02:22:12
хорош признаки это же 0 говорит о
02:22:16
порядке и в положительно значения
02:22:18
беспорядки на то есть мы это величина
02:22:21
будем уменьшать в принципе вот на
02:22:24
практике даже не надо перебирать джинни
02:22:27
или
02:22:28
или прирост информация то есть по
02:22:30
умолчанию g не достаточно хорошо
02:22:33
работает и на консультации там
02:22:35
перебирать либо джинни либо что то еще
02:22:37
можно это и не делать вот его видим у
02:22:41
нас пошел сплит по первому признаку
02:22:44
дальше там подключились другие признаки
02:22:48
вот как раз звонки в колл-центр тоже был
02:22:51
хорошим вот он сравниться с порогом и
02:22:53
так далее потом мы придем уже в листья в
02:22:57
листьях он нам пишет соотношение классов
02:22:59
там тоже тоже тоже джинни и число
02:23:03
примеров вот скажем синяя вершинка здесь
02:23:06
видите мы довольно хорошо выделили
02:23:08
плохих клиентов то есть тут 9 хороших и
02:23:11
67 плохих то есть придет новый человек
02:23:15
если у него мало дневных начислений
02:23:20
если он много звонит в колл-центр да еще
02:23:25
и на самом деле это проверка пошла по
02:23:29
тому же при
02:23:30
признаку мы это проверяли что они по
02:23:33
сути одно и то же минут приговоренные
02:23:35
днем и начисления это уже джонни здесь
02:23:39
вот в этой подгруппе когда мы
02:23:42
раз отделили 2 отделили то вот в этой
02:23:44
подгруппе джинни вот такой вот домашнее
02:23:48
задание как раз будет анапа регрессии
02:23:51
правда в статье посмотрите как дерево
02:23:54
решений для регрессе адаптируются но кто
02:23:57
захочет посмотрите предыдущую версию
02:23:59
этого 3 домашнее задание там вот
02:24:00
детально разбираться как дерево решение
02:24:02
строится на игрушечном примере и как там
02:24:05
работают жене и прироста информации вот
02:24:07
и здесь получаем уже да мы выделили лист
02:24:10
вот при таких условиях у нас видеть
02:24:13
намного чаще клиенты плохие
02:24:24
так и я еще вам обещал
02:24:28
проекты наверное зря обещал полчаса как
02:24:32
раз на практику давайте в общих чертах
02:24:36
только опишу
02:24:38
проект у нас примерно до 8 ноября но там
02:24:42
лежит делаю решим чтобы все дедлайны
02:24:45
пришлись на один день но зная вот pandas
02:24:50
и визуализацию может сделать первые
02:24:52
четыре пункта это вы сначала описывается
02:24:54
описывать свою задачу во первых что вы
02:24:57
решаете проект заточен под классификацию
02:25:00
ли регрессию но дать я буду
02:25:01
коментировать на примере вот как раз
02:25:02
оттока клиентов
02:25:03
тут вы описываете что задача только
02:25:05
клиентов она важна там как бизнес-задач
02:25:07
а вот мы получили какие-то данные если
02:25:10
это ваше собственное вы можете описать
02:25:11
как вы их получили как что сам
02:25:15
интересный коктейлей признак считается
02:25:16
вот именно отток и ну желательно на
02:25:20
хорошем русском там описать что за
02:25:22
признаками стоит то есть не просто тоске
02:25:24
глаз к постели там признаки так на
02:25:26
английском и оставили желательно все
02:25:28
таки расписать что за ними стоит какой
02:25:30
смысл может быть даже ваше предположение
02:25:32
что должно сработать
02:25:33
что вам там сосед эксперт сказал что
02:25:36
должно сработать вот дальше вы это
02:25:38
смотрите первичный анализ признаков то
02:25:40
что мы делали с пандусом seabourn
02:25:42
matplotlib поторопился на первичный
02:25:47
анализ а потом просто спада сам
02:25:48
первичный визуальный это уже картинки
02:25:50
может быть это вместе будет перемешано
02:25:52
но вы строите картинки причем не просто
02:25:55
так а который возможно вам помогут вы
02:25:58
должны иметь какой-то интуицию что вас
02:26:00
должно сработать если у вас признаков
02:26:04
много чуть-чуть подождите когда будем
02:26:06
обсуждать там случайно лес оценка
02:26:08
важности признаков вот сюда лучше
02:26:10
вставить чтобы понять вообще на какие
02:26:12
признаки лучше обращать внимание не
02:26:14
только за счет интуиции но и за счет
02:26:15
модели которые как-то признаки от
02:26:17
ранжирует по важности самое интересно
02:26:21
пожалуй это вот все что вы нашли
02:26:23
закономерности вот эти инсайты
02:26:24
особенности как вот мыс для данных по
02:26:27
току рисовали картинки вот видели некий
02:26:31
инсайты насчет числа звонков в
02:26:32
колл-центр вот это подмечать и
02:26:34
описывайте довольно интересно потом это
02:26:37
с работой или нет то есть вот первые четыре пункта
02:26:40
можно условно назвать
02:26:42
анализ данных то что дальше это пойдет
02:26:45
машины обучение привет привет обработка
02:26:47
то есть как мы подготовим данные к
02:26:49
обучению модели тут смотрите может быть
02:26:52
много всего борьба с выбросами
02:26:54
заполнения пропусков масштабирования
02:26:56
если она нужна вот про все это еще будем
02:26:58
говорить
02:26:59
создание признаков кросс валидация вот
02:27:02
подбор но на самом деле гипер параметров
02:27:04
и дальше мы еще поговорим про то как нам
02:27:10
определиться с размером до цвета и вот
02:27:13
та самая консультация которую мы делаем
02:27:16
ее можно тоже результаты нарисовать но
02:27:18
как-то мозгу приятие если картинка
02:27:20
нарисована понять какие-то выводы делать
02:27:23
затем прогноз для тестов выборки если
02:27:27
это соревнования бегал то у вас там
02:27:28
будет лидер борт публично и вот тогда
02:27:31
желательно послать значит посылку
02:27:36
каталоге извините но в общем сказать как
02:27:39
ваш подход сработал в конкретном
02:27:41
соревнования и конечно же оценка модели
02:27:44
то есть вы
02:27:47
желательно если это все таки какой то
02:27:49
более менее реальная задача то скажите
02:27:51
как вы оцениваете модель мы конечно же
02:27:54
про еще будем говорить
02:27:55
хороша ли вот метрика то доля верных
02:27:57
ответов или нам надо на что-то еще
02:27:59
смотреть ну и какие то выводы и в целом
02:28:03
смотрите если вы прям совсем ничего не
02:28:06
знаете за какие бы данный вам взяться
02:28:08
можно взять проект элис это где
02:28:13
идентификации пользователей по ученым
02:28:16
веб-сайтом на самом деле там конкретно
02:28:17
задачи классификации дано в пасе
02:28:20
посещенные сайты 10 штук там за полчаса
02:28:22
и надо понять это элис никто или кто-то
02:28:25
другой там бинарная классификации можете его
02:28:28
взять то есть он такой пошаговый по
02:28:30
пунктам прямо все из боитесь творчество
02:28:33
вам туда
02:28:34
но не на самом деле правда хорош потому
02:28:37
что действительно задача интересной
02:28:38
получилось и он уже довольно хорошо
02:28:39
проработан он там со специализацией
02:28:43
яндекса и физтеха
02:28:44
собственная же дел поэтому неудивительно
02:28:46
вот и ну там действительно можно по
02:28:52
сравнивать уже довольно интересной
02:28:53
модели и признаки там хорошо работают и
02:28:56
более того она идет соревнованием вторая
02:29:00
ситуация допустим вы его уже прошли и
02:29:02
по-честному не будете эти баллы это
02:29:03
набивать но если вы этот проект уже
02:29:05
приходили вот элис и все-таки хотите
02:29:07
индивидуальный проект
02:29:09
если вы не знаете все же за какие данные
02:29:11
взяться мы вам подскажем это и по 4 еще
02:29:14
и есть такой популярный это пегов просто
02:29:17
громадный пул любых доцентов по сути это
02:29:21
еще напишем и ну предпочтительный
02:29:27
вариант если у вас есть какая-то своя
02:29:28
задача ко мне уже подходили с советами
02:29:31
но прямо действительно интересные боевые
02:29:33
задачи там например видео про тегировать
02:29:36
предсказать метку там для видео по
02:29:39
текстам у описанию но если у вас что-то
02:29:40
есть насущная то желательно аккуратно
02:29:44
соблюсти этот трейдов 8 между интересом
02:29:48
проекта и сроками ну потому что
02:29:50
объективно говоря маловато меньше двух
02:29:52
месяцев и все таки лучше взять что то
02:29:54
такое что вы успеете
02:29:57
то есть вообще-то в боевом проекте можно
02:29:59
за это время и данный и не подготовить
02:30:01
то есть тут все таки лучше
02:30:02
ориентироваться на то что этот проект
02:30:04
такой который больше с методологии
02:30:06
знакомит и взять ну скажем под выборку
02:30:08
ваших данных или там просто доцент
02:30:11
какой-то похожий на другой и очень-то не
02:30:14
мучиться не страдать там big data но все
02:30:17
таки что то хотя бы покрутить что такое
02:30:19
локально считается тут будут некоторые
02:30:23
операции такие вычислительно затратные
02:30:25
но тогда советую всё-таки брать там
02:30:27
данных ну там скажем долл до гигабайта с
02:30:31
мегабайтами все-таки возиться в общем
02:30:34
канале все-таки я это писал вопросы
02:30:39
будут спрашивать и мы еще подробнее это
02:30:42
все опишем
02:30:43
и сейчас дайте перейдем к практике тут и
02:30:50
и мне все-таки надо прокомментировать
02:30:53
потому что там пара моментов применяются
02:30:55
таких которые мы не обсуждали это не
02:30:58
очень педагогично на тех сейчас
02:30:59
прокомментирую набор данных с титаником
02:31:02
делать мы будем в общем-то тоже самое ну
02:31:04
просто что позже вы попробовали дерево
02:31:06
обучить может быть даже его нарисовать
02:31:08
настроить параметры но здесь у нас
02:31:11
некоторые признаки категориальные мы их
02:31:14
перевели техникой ваншот encoding ем мы
02:31:18
еще обсудим подробно но вещь в общем-то
02:31:22
понятна и в кратце прокомментирую у нас
02:31:25
есть признак например и embark такой
02:31:28
типичный категориальный город в котором
02:31:30
человек сиона титаник 3 значение 3
02:31:34
лидеры по сути secu и с
02:31:36
сам саутгемптон шербур ее квинстаун
02:31:42
тут все-таки вкратце лучше
02:31:45
порисовать прокомментировать почему
02:31:47
плохо было бы взять их просто перевести
02:31:49
в числа нас есть признак дать его даже
02:31:54
сити назову три значения
02:31:57
уникальных и в общем-то вопрос как это
02:32:02
подать алгоритму и вот так взять
02:32:04
перекодировать с в единичку и в двойку
02:32:07
это плохая идея мы внесли порядок в наш
02:32:12
признак а это порядка не было нас вдруг
02:32:15
оказалось что поскольку двойка между
02:32:18
единицей тройкой так как бы у нас
02:32:20
получилось что си
02:32:21
оказалось тоже между с и кью
02:32:25
мы некий порядок внесли это плохо сразу
02:32:30
ли это означает что это не будет
02:32:32
работать нет в принципе модель как-то
02:32:33
будет работать но понятно что здесь мы
02:32:35
как-то жертвуем здравым смыслом техника
02:32:38
в pandas который называется get to miss
02:32:42
более популярна она называется в бан ход
02:32:45
including это создать по одному признаку
02:32:49
категориальном у вот в данном случае три
02:32:52
бинарных то есть первый это
02:32:56
город south bend он второй город шербур
02:33:01
и квинстаун
02:33:02
так ну ладно пусть грязно то есть
02:33:05
попросту сити равно все с и пью по
02:33:09
отдельности ну кто знаком с линейным
02:33:14
моделями тут возразит что надо нам не
02:33:16
три признака 2
02:33:17
это мы еще обсудим техника ван холт
02:33:19
encoding чисто берет коллить в
02:33:22
количестве равном уникальному числу
02:33:24
уникальных значений признака вот столько
02:33:26
же признаков мой новых и строим и они
02:33:28
все будут бинарные то есть если это
02:33:31
шербур то будет в строке единичка а
02:33:34
рядом два нолика
02:33:36
вот эта техника one hot including
02:33:39
который мы применяем здесь для некоторых
02:33:42
признаков доцент титаник и все это
02:33:49
вместе будет объединяться вот нос
02:33:56
предлагается в общем то сделать то же
02:33:58
самое дерево построить настроить если
02:34:01
успеете еще
02:34:02
нарисуйте как делать посылки накидал
02:34:06
можете сами разобраться я потом тоже
02:34:09
покажу в данном случае tsarina не очень
02:34:12
интересно с него все начинают но она
02:34:14
хреново честно говоря то есть там
02:34:16
распределение trainee теста не одинаковы
02:34:20
ну и вообще 900 объектов это мало о чем
02:34:24
говорит то есть не надо делать далеко
02:34:26
идущие выводы то что там посылка в этом
02:34:29
одной модели будет лучше чем другой
02:34:30
когда у нас там всего 900 объектов в
02:34:32
данном случает маловато хорошо тогда на
02:34:39
этом всем и трансляцию заканчиваем

Описание:

For lectures in English, check out this playlist https://www.youtube.com/watch?v=QKTuw4PNOsU&list=PLVlY_7IJCMJeRfZ68eVfEcu-UcN9BbwiX Это видео совпадает с https://www.youtube.com/watch?v=p9Hny3Cs6rk&index=3&list=PLVlY_7IJCMJdgcCtQfzj5j8OVB_Y0GJCl только звук улучшен (Denis Cera, Oleg Butko) На 3-ей лекции мы обсудим основы машинного обучения, поговорим про один из самых популярных видов задач – про задачи классификации, обсудим деревья решений, а также подход к выбору моделей и их оценке на основе кросс-валидации. Сайт курса https://mlcourse.ai/ О курсе на Хабре https://habr.com/en/companies/vk/articles/344044/ 3-ья тема на Хабре https://habr.com/en/companies/ods/articles/322534/ Jupyter-notebooks в репозитории курса https://github.com/Yorko/mlcourse.ai/tree/main/jupyter_russian/topic03_decision_trees_knn Демо-версия задания https://nbviewer.org/github/Yorko/mlcourse.ai/blob/main/jupyter_russian/assignments_demo/assignment03_decision_trees.ipynb При организационной поддержке Mail.Ru Group.

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Лекция 3. Классификация, деревья решений. Открытый курс ODS по машинному обучению mlcourse.ai"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Лекция 3. Классификация, деревья решений. Открытый курс ODS по машинному обучению mlcourse.ai" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Лекция 3. Классификация, деревья решений. Открытый курс ODS по машинному обучению mlcourse.ai"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "Лекция 3. Классификация, деревья решений. Открытый курс ODS по машинному обучению mlcourse.ai" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Лекция 3. Классификация, деревья решений. Открытый курс ODS по машинному обучению mlcourse.ai"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Лекция 3. Классификация, деревья решений. Открытый курс ODS по машинному обучению mlcourse.ai"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

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