Как улучшить стратегию тестирования с помощью кластеризации? С какими сложностями можно при этом столкнуться, и как их решать?
Очередная лекция с TMPA School 2018: «Кластеризация дефектов в программном обеспечении», из которой вы узнаете, как заявленная методика применяется в управлении дефектами, а также увидите, как происходит кластеризация ошибок программного обеспечения на практике. Лекцию прочитала Анна Громова, руководитель отдела анализа данных в . Презентация прошла в рамках саратовской TMPA School в ноябре 2018 года и будет полезна начинающим исследователям и всем, кто интересуется наукой о данных и обеспечением качества ПО https://programnew.ru/
00:09
меня зовут грома ванная руководитель
00:11
отдела анализа данных как
00:12
практика технических наук и сегодня мы с
00:15
вами будем говорить о кластеризации
00:17
отчетов об ошибках программного
00:18
обеспечения
00:19
но наш курс будет состоять из двух
00:21
частей сегодня мы говорим больше по
00:23
теоретической части то есть такой
00:25
кластеризация какие бывают методы зачем
00:27
это надо с чем это едят и поговорим
00:30
немножко о том что такое
00:32
отчеты об ошибках программного
00:34
обеспечения зачем они нужны какие они
00:36
бывают какие-то могут быть вообще
00:38
проблемные случае особенно в контексте
00:40
кластеризации а вот уже завтра мы с вами
00:43
будем пытаться класс there'sa воевать
00:45
ошибки уже на скажу так практическом
00:48
занятии будем писать код на питоне вы
00:51
сами попробуйте ручками это все поделать
00:52
но я еще вернусь к теме практике она она
01:02
не фуршет
01:03
куда-куда
01:10
о
01:12
отлично давайте начнем с базовая вещь а
01:15
что вообще такое кластеризация зачем она
01:17
вообще нужна если говорить такому
01:20
классической классическом правильном
01:22
определении кластеризация это не тот
01:24
который позволяет разбивать объекты на
01:26
группы таким образом что внутри группы
01:28
объекты максимально похоже
01:29
а вне группы соответственно максимально
01:31
различные здесь я обычно привожу свой
01:33
любимый пример про то что у нас например
01:35
есть какое то помещение где сидят
01:37
животное и нам нужно их разбить на
01:39
группы у нас получается группа кошечек
01:42
группа птичек и групп группа рыбак
01:44
внутри группы с кошечками все пушистые
01:46
всеми опыт внутри группы с рыбками все с
01:49
чешуей все молчат и не от летающих
01:51
кошечек нет милку щих рыбак да то есть
01:53
внутри группы максимально похоже не
01:55
групп максимально различные понятно что
01:57
пример такой немножко искусственные
01:58
утрированный в реальности в жизни все
02:00
было от обычно сложнее для чего же мы
02:03
это вообще дело ну во-первых
02:05
самая первая попытка это понять природу
02:08
объектов представляем да у нас выборки
02:10
может быть тысячи миллионы
02:12
10 миллионов за огромное количество
02:14
объектов и вот то тут взглянув на них и
02:17
понять что они себя представляет очень
02:18
тяжело ну допустим у нас с вами есть мы
02:21
с вами небольшой какой-нибудь интернет
02:23
магазин и мы хотим понять а какая же у
02:25
нас аудитория да наш какая-то таргетная
02:27
группа мы что для этого делаем а мы
02:29
пытаемся оценить наших потенциальных
02:31
клиентов там разбить их на группы так
02:33
чтобы нам было понятно вот это вот
02:34
например группа и не знаю там молодых
02:37
мам которые там покупают вот такие
02:38
товары
02:39
а это группа не знаю там людей которые
02:43
покупают в основном какие-то там гаджеты
02:45
и различную технику во вторых это
02:48
уменьшить объем данных но на самом деле
02:50
вытекает из первого когда мы с вами
02:52
разбиваем объекты на группы на кластер
02:55
чаще всего мы пытаемся этот кластер как
02:57
это характеризовать другими словами
02:59
выделить у него какого-то представителя
03:00
который обычно представляет собой некий
03:02
усредненный некоего усредненного
03:05
представителя ну допустим когда мы с
03:07
вами помните кластер из говорила вам про
03:10
пример кластеризация на животных мы
03:12
понимаем что средний представитель
03:13
кошечка что такое мигающая пушистая там
03:16
на лапках свой стиком понятно что высота
03:18
лапок может быть различные не знаю длина
03:20
шерсти но в общем среднем и предста
03:22
там что эсеры что как выглядит эта кошка
03:25
и тогда мы уменьшаем объем данных путем
03:28
кластеризации мы работаем уже не с
03:29
миллионом объектов а только с нашими
03:31
представителями кластер разбили наших
03:34
животных на 3 кластер и работаем по сути
03:36
не с миллионом животных а всего с тремя
03:38
с кошечкой птичкой рыбкой в третьих это
03:41
найти нетипичные объекта но на самом
03:42
деле то же вытекает из первых двух в тот
03:45
момент когда у нас появляется какой-то
03:48
объект который не похож ни на кошку не
03:50
на рыбку не на птичка не знаю там
03:51
допустим это корова у нее
03:54
об этой она мучит мы понимаем что это
03:56
вот какой то отдельный элемент нужно
03:58
подумать что с ним делать если бы у нас
04:00
была речь например о наших таргетных
04:03
покупателях до наших клиентах это могут
04:05
какая-то специфическая узкая группа с
04:08
которыми возможно нужно проводить там не
04:10
знаю отдельную какую-то политику продаж
04:12
или еще что-то или может это вообще
04:13
просто случайное какие-то покупатели
04:18
такие здесь можно еще добавить момент во
04:20
первых кластеризация
04:22
в отличие от классификации от обучении
04:25
без учителя нам не известно заранее
04:28
количество кластеров
04:30
мы пытаемся как раз собственно эти
04:32
кластеры выявить случаи задачах
04:34
классификации у нас обычно эта задача
04:37
обучения с учителем нам заранее известны
04:40
все классы и мы просто пытаемся понять
04:42
какому из этих классов
04:43
относится объект если бы у нас была
04:45
задача классификации у нас были бы
04:47
классно пример кошка рыбка птичка мы бы
04:50
уже заранее знали какие объекты
04:52
относятся каким классом и просто бы
04:54
обучали модель в случае с кластеризации
04:56
мы вообще можем заранее знать что там на
04:58
выходе может нам будет не только птички
05:00
и рыбки кто-нибудь еще
05:01
а теперь такое более формальное описание
05:04
базовой базовое описание кластеризацию
05:08
себя представляет у нас есть некий набор
05:10
объектов до объект и каждый из этих
05:13
объектов и жито характеризуется набором
05:15
переменных да это вектор x каждая
05:18
переменная дождись на примере x h
05:20
соответственно ваш это тот набор
05:24
значений которые может принимать
05:25
переменная на может бинарный сатана
05:28
принимает нолик единички она может быть
05:30
континиус дату принимает любое значение
05:33
непрерывная переменная может быть
05:35
категориальный принимать какое-то
05:36
конечное количество значений так далее и
05:39
у нас с вами есть вектор c это колечко
05:44
классификаторе классе кластеры наши и
05:46
задача сводится к тому чтобы
05:49
сформировать кластер таким образом чтобы
05:51
между объектами например и жидкая и бета
05:54
их дистанция была меньше какой-то там
05:56
заданной тогда не по у нас попадает в
05:58
один кластер
05:59
если говорить с точки зрения геометрии
06:01
до чтобы это было легче понимать и
06:03
представлять у нас допустим есть
06:06
двумерное пространство ним проще всего
06:08
представлять и у нас точки имеют
06:12
координаты в нашем случае координаты это
06:14
как раз ось x это например у нас x1 а
06:18
ось игрок это x2
06:20
поэтому каждая точка на пространстве по
06:22
сути у нас описывается двумя атрибутами
06:25
и по их скоплению мы можем сформировать
06:26
вот у нас на кластер синеньких кластер
06:28
красных а то что мы видим в крест
06:31
посерединке это как раз наш центроид наш
06:34
усредненный представитель ну или еще ее
06:35
называют центр масс кластера а здесь я
06:40
обычно привожу ну такое чтобы вот не
06:41
просто abstract надо было понятно
06:43
представьте что мы хотим класс there'sa
06:45
вать животных у нас по оси x
06:47
вес животного а по оси y высота в холке
06:52
и у нас тогда вот синие точки это у нас
06:55
какие-то маленькие животные не зато
06:57
кошки крики
06:58
а соответственно красной точке на нас
07:01
куча такие большие крупные животные
07:03
корова бык и так далее то есть
07:06
соответствие здесь если мы описали у нас
07:08
было бы например здесь вес rose а здесь
07:11
могла бы быть какая-то непрерывная
07:13
переменная числовая а что же мы
07:18
рассчитываем
07:18
ну во первых как мы уже с вами сказали
07:21
да с точки зрения геометрии нам нужно
07:23
рассчитать расстояние между точками
07:25
чтобы понять насколько они близко к друг
07:27
другу находится поэтому мы должны
07:29
рассчитать построить матрицу
07:31
дистанции матрицу расстояние до здесь у
07:34
нас наше в-себе нашей все точки вот эти
07:37
все животные например на пересечении
07:39
расстояния между точками как они
07:41
рассчитываются есть разные типы из
07:43
евклидова могла но без сочи мыши в и так
07:45
далее
07:45
не отличаются почему в каких случаях как
07:48
убрать безусловно это остается во первых
07:51
на совесть самого исследователя
07:52
во-вторых мы их берем обычно исходя из
07:55
того какие у нас данные есть у нас
07:57
корреляционной зависимости нет потому
07:59
что разные дистанции соответствуют
08:02
разным скажем так методом и учитывают
08:05
разные ситуации когда например от метода
08:08
требовать чтобы он был более радостным
08:09
более устойчивым пример тем же крыльцо
08:11
нам зависимостям какие бывают алгоритмы
08:15
ну вот конкретно здесь представлен одна
08:20
из точек зрения как можно их
08:21
классифицировать вы можете найти в
08:23
литературе
08:23
другие варианты но мы условных
08:26
раздельной иерархически не иерархически
08:29
иерархически здесь более менее должно
08:31
быть понятно это те которые стоят
08:33
строят оксана мил или же древовидную
08:36
структуру самый простейший пример то что
08:39
вы знаете это когда например ну животных
08:40
разбивать там не знаем млекопитающие
08:42
потом оттуда хардовый тогда и так далее
08:44
получаться такое дерево его обычно
08:47
строить можно двумя способами мы сейчас
08:49
об этом поговорим и не иерархический
08:51
алгоритмы которая строит недель его
08:53
возвращает какое-то количество кластеров
08:54
на да еще и вместе с центроида me это
08:57
янки men's самые простейшие есть плотно
09:01
сны и такие как дабы скан на основе
09:04
нейросетей самоорганизующаяся карты
09:06
кохонена например и допустим affinity
09:09
пропадешь ни мы с вами некоторые
09:12
разберем мы разберем те которые будут
09:15
завтра представлены нас с вами на
09:17
практическом занятии мы начнем самого
09:20
простейшего chemins к средних его еще
09:23
называют
09:25
самый простой самый быстрый и коса жизнь
09:29
тоже имеет определенные минусы что она
09:31
себя представляет ну во-первых мы
09:32
пытаемся минимизировать значение нашей
09:34
целевой функции что оно представляет из
09:36
себя x это у нас собственно наша . а это
09:39
наш центроид и мы стремимся к чему чтобы
09:42
расстояние между точкой центроида было
09:44
минимальным если так то они попадут у
09:46
нас в общей кластер смысл . отнесется к
09:50
кластеру центроид относительно центроида
09:53
которого она считается и соответственно
09:56
как я уже говорил а центроид центр масс
10:00
кластера как это происходит взяли
10:03
изначально
10:05
например рандомно какие-то точки назвали
10:08
их центроида me потом начали просто
10:10
простая ним смотреть какие точки к ним к
10:12
этим центроидом ближе если расстояние
10:14
меньше какой вот какого-то заданного
10:18
значения то соответственно мы их
10:20
объединяем в группу и у нас получается
10:21
кластер в чем минус этого алгоритма ну
10:24
во первых он не учитывает варианты
10:27
перекрываем асти кластеров да он хороший
10:30
хорошо работа только в тех случаях когда
10:32
кластер и хорошо разделяются и
10:36
это к сожалению не всегда хорошо плюс
10:39
она не всегда бывает на практике плюс к
10:42
тому же у него есть такой недостаток
10:44
как то что его работа очень сильно
10:47
зависит от того как вы выберите
10:48
непосредственно вот эти вот первые класс
10:51
1 центроида там самом деле есть
10:54
различные способы можно улучшать работу
10:57
алгоритмы путем выбора более более
11:00
оптимального выбора класть цен дроидов
11:04
но это уже отдельная история
11:06
есть его более мягкая вариация да дело в
11:10
том что в случае с chemins и мы говорим
11:12
что каждый элемент принадлежит только
11:14
одному класть you to этот элемент может
11:16
быть он только кошечкой или только
11:19
рыбкой а.е.м. алгоритм это аббревиатура
11:24
the expectation к 7 женщин сюда
11:27
соответственно два шага он же говорит не
11:30
так он говорит все объекты принадлежат
11:32
всем кластером но просто с разной
11:34
вероятностью и мы говорим что объекты
11:37
надлежит к этому кластеру в том случае
11:39
если его вероятность надежности вот
11:41
именно как класть его на и больше по
11:43
сравнению с другими как из себя что из
11:46
себя представляет он
11:47
мы говорим ok давайте представим что у
11:49
нас во всех кластеров распределения
11:51
данных нормальны
11:52
а раз она нормально это мы можем в
11:54
принципе посчитать основные
11:55
характеристики матожидания дисперсии и
11:58
поэтому зная теперь
12:01
данная выборки до нашего вектора x наших
12:04
объектов мы можем посчитать вероятности
12:07
принадлежности этого объекта
12:09
жидкому класть а зная вероятности мы
12:12
можем переоценить заново произвести
12:14
переоценку мат ожидания и дисперсии и
12:17
все это происходит на зациклена до тех
12:19
пор пока наши ну скажем так разница
12:25
между шагами не перестанет колебаться то
12:28
есть на скажем так устаканится в чем
12:29
плюсы у него хорошего первых алгоритма
12:31
статистическая основа во вторых клад он
12:36
учитывать перекрываем масть кластеров и
12:38
кластер получаются часто например какой
12:40
то эллипсовидной формы в этом смысле да
12:45
он гораздо мягче гибче чем кейнс но
12:49
наверное как минус тоже есть не всегда
12:52
скажем так распределение может быть
12:54
нормальным поэтому это тоже как
12:57
некоторый вариант недостатки ну как
13:00
некий недостаток а вы протянете про
13:02
повешен а это кстати относительно не
13:07
очень старый алгоритм потому что он там
13:10
году в двухтысячных уже появился что на
13:14
себя представляет вот мы говорили что в
13:15
случае кейнс мы выбрали
13:17
начальных начальной центрально начальных
13:20
представителей и потом просто на
13:21
операциях и уху точнее мы начнем точнее
13:23
а в случае с
13:25
affinity проводишь некстати большинство
13:28
большая часть литературы на английском
13:30
по вот этому методу
13:32
на русском я не видела какой-то
13:34
официальный и литературы на нем поэтому
13:36
можно и в принципе она красива перевести
13:39
как метод распространения сходство да
13:42
как мне кажется такой более красиво
13:45
вариант но тем ни менее буду просто
13:47
употреблять англоязычную темноты просто
13:50
в силу того что большинство уборщик
13:51
литературы которой официально то есть
13:53
различные статьи и прочее прочее она все
13:55
идет на английском и на русском варианте
13:57
вы может какие-то версии различных
14:00
ребят которые на форуме могут предложить
14:02
свой вариант перевода того или иного
14:04
термина
14:05
значит так кейнс как у сказали выбрали
14:07
изначально
14:08
центроида и потом просто их у точнее а
14:11
вовсе не типа повешен идет
14:13
другой вариант в принципе все точки
14:16
могут быть представителями то есть все
14:18
точки могут быть потенциально центроида
14:21
me
14:22
вопрос только понять какие из них больше
14:24
этого достойны то здесь есть термин
14:27
preference предпочтение как раз
14:29
регулируя его мы можем задавать какое
14:33
количество потенциальных представителей
14:34
с дым его побольше говорим о кей значит
14:36
представители потенциальных будет больше
14:38
задаем меньше их будет не так много
14:40
респон себе эти availability в чем они
14:43
говорят значит первая то что когда где
14:45
ответственность это те ну скажем назовем
14:48
их сообщения которые идут от членов
14:51
кластера к потенциальным кандидатам да
14:54
то есть готовность стать участником
14:57
этого кластера а это соответственно
14:59
оборот от потенциальных кандидатов к
15:02
участникам кластером ребята давайте я
15:04
буду вашим представителем сходство ли
15:08
подобия до говорящий о том насколько наш
15:11
представитель может объяснить данная
15:14
дата будет скажем так выполнять свою
15:16
обучающую способность по отношению к
15:18
участникам своего кластер а у него есть
15:24
да ну как я уже сказал плюс в том что у
15:26
него все в принципе потенциальные
15:27
участники потенциальные участники битвы
15:30
за то чтобы быть представителем глостера
15:32
быть его центроидом и точно так же как в
15:35
теме нэ соответствие мы можем увести
15:36
центроида давим мы уже вывести их не
15:39
можем но мы можем увести прицепить к
15:41
среднее значение иерархические алгоритмы
15:44
те что строят иерархическую структуру и
15:48
слегла мира тивно есть две земные
15:50
агломераты вно и это когда мы строим
15:52
снизу вверх когда мы говорим каждый
15:54
элемент в своем отдельном кластере
15:57
а теперь объединим этот элемент и этот и
15:59
потихоньку потихоньку мы их начинаем
16:01
объединять пока они там все не дойдут не
16:03
зайдут в 1 классе
16:04
поэтому очень логично что мы их
16:06
объединяем как по принципу
16:09
минимального расстояния между двумя
16:12
элементами то они друг другу ближе вот
16:14
их объединим деви земные те которые
16:18
строятся сверху вниз мы разбиваем
16:20
все-в-одном кластер и разбили на 2 потом
16:22
там еще на 3 на 4 так далее
16:24
как-то разбивать разбиваются здесь идет
16:26
обратный тесный эффект мы разбиваем как
16:28
которая максимально друг от друга
16:30
расположены
16:32
я увидела что формула некрасиво поехал
16:35
ничего сейчас ей песню так считается
16:37
расстояние мы берем 2 это например для
16:43
примера кламмера тивных алгоритмов мы
16:45
берем два кластера у и в объединяемых и
16:50
смотрим относительно другого кластер а
16:52
то есть что будет если я объединю в
16:55
и как это соотносится с другими
16:56
кластерами даст вес вот такая страшная
16:59
формула у его те которые объединяемые с
17:02
какой-то другой кластер
17:04
другой элемент и
17:07
например расстояние города как считается
17:11
на самом деле там есть расстояние
17:14
их очень много почему показала вам ему
17:17
гордон просто будет завтра на практике
17:18
чтобы вы могли посмотреть форму настю
17:21
что там наверное там не поправлю это
17:26
пример того эта картинка взята из
17:30
библиотеки с колен это библиотека от
17:33
языка программирования тон который
17:36
посвящена машины методам машинного
17:37
обучения и здесь показано как различные
17:40
алгоритмы могут разбивать
17:42
одни и те же данные хорошо на показывает
17:46
и заодно можно видеть как кевин и
17:48
алгоритмы справляется стильными
17:50
ситуациями
17:52
теперь к вопросу о том как оценить
17:56
кластеризацию оценить ее работу когда мы
18:00
с вами говорим о классификации например
18:02
мы с вами можем использовать какие-то
18:04
там характеристики от типа точность
18:05
полнота и этот миг средняя гармоническая
18:08
скоро можем использовать коэффициент
18:12
корреляции нм эти усы можем использовать
18:14
площадь под рог кривой и так далее и
18:17
потом значением понимать наш
18:19
классификатор работает хорошо или плохо
18:20
с мы пытаемся с вами оценить регрессию
18:23
допустим мы тоже можем написать коммент
18:24
среднюю ошибку абсолютную ошибку и тоже
18:26
исходя из эти значения этих ошибок
18:28
понимать а как у нас вообще модель
18:30
регрессионной работает
18:32
чтобы к сожалению вот такой точные
18:35
метрики который говорит ваши кластер
18:37
построились плохо ваши глостер
18:39
построились отлично такой метр и к
18:41
сожалению нет мы с вами можем только
18:44
вынести некую гипотезу о том какое
18:48
количество кластеров для этой задачи
18:49
оптимально не оптимально
18:50
ну и впоследствии пытаясь их
18:53
интерпретировать
18:54
понять насколько хорошо это все прошло
18:57
но какой то конкретно его вот ответа что
19:00
ваши кластер эллипсовидной формы должно
19:03
быть пять штук мне должна быть ссылка
19:04
такое к сожалению нет давайте разберем
19:06
несколько критериев тоже посмотрим и
19:09
завтра они тоже будут ну во первых это
19:11
силуэт на яндекс вообще на самом деле
19:14
различных индексов кластеризации очень
19:16
много чуть позже я когда будет список
19:20
литературы я вам покажу как раз есть
19:21
очень хорошие источник где их описания
19:23
там что 20 силуэт не индекс достаточно
19:26
простой мне кажется есть во многих
19:27
пакетах и не только там в питании сим
19:29
матлабе и веке что они себя представляет
19:33
сама ванна очень простой даже по формула
19:36
на самом деле синдра что их тут много ну
19:38
во первых мы должны посчитать некий
19:41
коэффициент для этой точке причем так он
19:45
считается эта сумма расстояний между
19:46
этой точкой и еще одной
19:49
они друг другу не равны и эта точка в
19:52
том же кластере что и наши м это
19:54
то есть другими словами посчитать
19:56
расстояние между точками внутри кластера
19:58
надо конкретно потом мы берем тоже .
20:04
расстояние считаем от этой же этой точке
20:06
но уже до точки из другого кластер а то
20:10
есть теперь смотрим расстояние не внутри
20:12
кластер относительно точки в этом
20:13
кластере и относительно других точек в
20:15
других кластерах находим минимальная
20:19
относительно этой величины и получаем
20:22
некий средневзвешенный коэффициент для
20:24
каждой точки после чего находим
20:29
средневзвешенный показатель для каждого
20:31
кластера итоговое значение для всей
20:36
модели мы можем посчитать это для двух
20:39
кластеров для трех до четырех пяти там
20:41
100 и так далее
20:42
и выбрать нужно то где вот этот
20:45
финальный
20:45
в рамочке критерий максимальный на самом
20:50
деле как я уж сказалось много index of a
20:52
nifty тоже представлены в пакетах там
20:55
критерий дэвиса болдуина критерий дано
20:58
они в принципе все очень чем-то похожи
21:00
которая по сути просто повод этим
21:02
расстоянием смотрят насколько с кучка
21:05
ванны и точки внутри кластере на сколько
21:07
раз кучу кованы в других кластеров еще
21:12
одни критерии это критерия каяки и
21:15
бойцовский информационной критерий они
21:18
на самом деле вообще нужны не только их
21:21
используется кластеризации например
21:22
использовать для оценки регрессионных
21:24
моделей они говорят о том используется
21:28
для выбора модель то есть что понять
21:30
какая модель лучше всего подходит для
21:32
нашего варианты что это из себя
21:35
представляет
21:35
они в принципе похоже какое-то
21:38
количество параметров системы с
21:41
крышечкой это у нас максим функции
21:44
правдоподобия и над выборка
21:46
элементов если применять кластеризации
21:51
то это надо интерпретировать так кайт у
21:56
нас количество кластеров или с крышечкой
21:58
определяет то насколько у нас наша
22:02
модель правильно насколько оно
22:06
соотносится с показателями нашего
22:07
объекта то есть в идеальном варианте
22:10
когда у нас каждый объект в отдельном
22:13
своем пластик
22:13
там функци продуктами будет нас
22:15
максимально ну понятно почему потому что
22:18
всякий раз как только мы начинаем
22:19
группировать объекты в в группы понятно
22:24
что там уже есть некая разница
22:26
начинается этой же функции правдоподобно
22:28
начинает отклоняться поэтому царь глядя
22:30
на график вот мы видим что здесь это нас
22:32
здесь количество кластеров здесь
22:35
значение критерия
22:35
мы видим что чем больше кластеров тем у
22:38
нас она будет расти чем меньше она будет
22:44
уменьшаться но для того чтобы эта участь
22:47
как раз здесь идет страхование
22:49
параметров и поэтому как раз оптимальный
22:52
будет вариант вот здесь у нас функции
22:55
вы больше но будет хуже с параметрами и
22:57
наоборот поэтому где-то на пересечении
23:00
должно быть оптимальный вариант
23:02
обычно берется минимум то здесь это
23:04
где-то должна быть вот три кластер метод
23:15
локтя чем-то похожи по графику кажется
23:21
но другое уже объяснение что на себя
23:24
представляет он служит для того чтобы
23:28
оценить тот момент когда происходит
23:30
уменьшение внутри кластерных расстояний
23:33
до альтам исходить им нужно внутри
23:35
кластерной дисперсии другими словами
23:39
например в тот момент когда допустим мы
23:42
с вами обвинили кошечек и коровок в одну
23:45
группу
23:47
но за счет того что у них разные
23:49
показатели там роста понятно что у нас
23:51
будет расстояние
23:52
достаточно большое внутри кластер мы
23:54
представили да там даже если мы вес
23:56
будем отмечать
23:56
и объединим их в один кластеров них
23:58
будет просто 7.7 очень большой дельта
24:00
хотите спереди поэтому в тот момент
24:04
когда начинает снижаться до здесь это
24:05
как раз по совпадению 3 класс тира мы
24:08
считаем что это оптимальный вариант для
24:10
то есть три кластер оптимальны для нашей
24:12
модели как я уже сказала здесь нет
24:16
четкого ответа как будет форму вашей
24:19
кластеров оптимальное и как они должны
24:21
себя представлять но те так или иначе вы
24:24
можете оценить
24:24
до попробовать оценить по разным
24:26
критериям и предположить какое
24:28
количество кластеров будет оптимальным
24:30
управление дефектами да мы переходим ко
24:33
второй части как применить кластеризацию
24:36
по отношению к богам и что из этого
24:37
должно получиться в итоге на самом деле
24:41
если мы с вами посмотрим литературу
24:43
которая посвящена исследованиям в
24:46
области в акре паркинга и в области
24:48
дефект менеджмента мы найдем несколько
24:50
областей
24:50
если вы некоторые достаточно популярны
24:56
но мы с вами на кластеризация в большей
25:00
степени это к вопросу об оценке качества
25:02
отчетов и о прогнозировании метре
25:05
тестировать
25:08
что же такое отчет об ошибке
25:11
программного обеспечения на секреторная
25:15
расскажу просто на тот случай если мало
25:16
ли там я думаю на самом деле мониторе
25:18
все примерно знают что это такое когда
25:20
мы с вами находим дефект программного
25:23
обеспечения до который как обычно на
25:24
сочетается несоответствием ожидаемому
25:26
поведение фактического
25:27
мы это могут быть в принципе не только
25:31
инженер по тестированию это могут быть и
25:34
бизнес-аналитики почему не это те же
25:36
самые программисты мы заносим некий
25:39
отчет о том что же мы обнаружили здесь
25:42
представлены на слайде
25:44
окна достаточно популярного бак
25:46
треккинговая как треккинговая система
25:48
jira то есть только дамы как заносим это
25:52
как это выглядит уже в жизни здесь могут
25:56
быть и на количество полей здесь может
25:58
быть и краткое описание самаре полные
26:00
дискрипшн и и приоритеты
26:02
статус и так дале тому подобные коса
26:04
лично очень много и в этом на самом деле
26:07
уже существует большой плюс дефектов с
26:11
точки зрения анализа данных то что они в
26:14
принципе уже представляют собой плоский
26:16
структурированный datasette
26:17
до плоскую структурированную выборку
26:20
потому что очень часто бывает в случае с
26:22
анализом данных когда например
26:24
не плоский хоть иерархически ли какой-то
26:26
достаточно сложный так еще нужно выявить
26:28
все эти атрибуты понять что там что там
26:31
и как друг с другом устроена здесь же мы
26:34
уже имеем хороший плоский
26:35
to the set в котором более-менее кажется
26:38
как на первый взгляд кажется что все
26:40
понятно зачем пластеризуется зачем а все
26:45
класть рисовать баги
26:46
ну во-первых если мы с вами снова
26:48
вернемся к целям к целям кластеризации
26:51
это во первых чтобы понимать природу
26:52
ошибок понимать природу что там вообще
26:55
а вдруг у нас выяснится что у нас все
26:57
reject баги связаны с тем ты или мы
27:00
постоянно перри открываем такета багере
27:02
у нас есть кластер багов которые чинятся
27:05
невероятно долго или допустим выяснится
27:08
что есть какая-то область тестирование
27:09
которое неизбежно сопровождается
27:11
каким-то огромным количеством
27:12
комментариев и растягиванием починки
27:14
бага и так далее вообще чтобы понять и
27:17
что мы имеем
27:18
может а когда у нас проект только
27:19
стартанул там 510 богов вам легко и
27:22
держать в голове а когда у вас 1000 2000
27:25
уже труднее выявлять какие-то
27:28
характеристики более того я вам скажу
27:31
что когда например
27:32
общаюсь с теми ребятами че для чьих
27:36
проектов я анализировала баги
27:38
они часто выносят какие-то гипотезы но
27:41
мы считаем что у нас с богами вот то-то
27:43
и вот тот а иногда части гипотез
27:45
действительно правда ну не оправдываться
27:47
действительно подтверждается а какая-то
27:49
часть гипотез совершенно неожиданно
27:52
может измениться а играть ну мы вообще
27:54
не ожидали что окажется вот так тем не
27:56
менее так получается 2 понимаете
27:59
уязвимости программное обеспечение но
28:00
здесь больше
28:01
допустим вдруг высились вы выясните что
28:04
все ваши critical баги они вот в области
28:06
вот в такой то и завязаны на
28:10
завязано на какие-то определенные
28:12
параметры ну и соответственно
28:14
улучшать стратегии тестировать
28:16
тестирование почему когда я знаю что у
28:19
меня за баки когда я понимаю какие там
28:21
паттерн и когда я вижу как эта
28:22
зависимость
28:23
них я могу собственно говоря этим
28:25
управлять и как-то корректировать не за
28:28
может быть релизную политику может быть
28:30
стратегию тестирования на самом деле
28:33
если мы с вами обратимся к другим
28:34
источникам другим научным статьям о
28:39
кластеризация чаще всего они
28:40
используются для пример для поиска
28:42
дубликатов но это логично то-есть это
28:44
характерно для проектов с открытым кодом
28:48
где в принципе баг может быть заносить
28:51
снесен любым участником сообщества и
28:54
может то получится что я еще 10 человек
28:57
мы все дружно занесли один и тот же бак
28:59
но просто по-разному по-разному его
29:02
описали а соответственно
29:04
project-менеджера нагрузка на то чтобы
29:06
это разобрать или например
29:07
тестирую разработчику чтобы все эти ваши
29:10
маги прочитать оценить и понять что на
29:12
самом то деле все было про одно и тоже
29:14
да то есть снижение нагрузки
29:18
непосредственно команду разработки это
29:22
автоматизация тестирования на
29:25
прогнозировании тестовой нагрузки и так
29:26
далее на самом деле достаточно разные
29:28
задачи можно решать тоже использую
29:31
сейчас мы быстренько не быстренько на
29:34
самом деле пробежимся под а потому как
29:37
класс there'sa вать баги но с точки
29:38
зрения именно классического решение для
29:41
маленького задач да я очень люблю эту
29:44
съемку мы сейчас по ней пройдемся ну во
29:47
первых нам нужно оценить предметную
29:49
область за то что там было бизнеса на
29:50
стенде мы должны взять из нашей бак
29:55
треккинговой системы и допустим
29:56
выгрузить наши баги здесь на самом деле
29:58
уже существует энное количество камней
30:00
подводных во первых от того в каком
30:02
формате лучше выгрузить данные даже
30:04
например захватить наибольшую
30:07
большую информацию о них что из себя
30:11
представляют наши атрибуты
30:13
каких они типов и чтобы понимать как
30:18
потом и впоследствии обрабатывать и что
30:20
там может быть вообще просто
30:22
познакомиться с предметной областью
30:24
более то вам скажу я работала с
30:26
проектами как с коммерческими так
30:28
анализировала концертные проекты
30:31
все проекты ну если скажем так если
30:36
перефразировать фразу льва николаевича
30:37
толстого все счастливы и проекты
30:39
счастливы одинаково все несчастные
30:40
проектах и сейчас мы по разному потому
30:43
что у всех есть свои тонкости и
30:46
особенности тонкости и разработки и
30:48
тонкости ведения проектов и уж молчу про
30:50
особенности непосредственно каких-то
30:52
технических аспектов и так далее мы с
30:56
вами то вам уже нас очень практично
30:57
взять и я еще раз вернусь к вот этим
30:59
ссылкам это та
31:00
над какими богами мы будем завтра
31:02
работать ну и начинаем самого
31:06
замечательного эта оценка данных это
31:08
вообще понять акс какие что с чем мы
31:10
вообще работаем что нам вообще досталось
31:12
ну во первых нужно понять
31:16
подойти допустим самого простейшего то
31:19
оценить репрезентативность выборки
31:21
точность информации непротиворечивость и
31:23
так далее вообще вот те баги которого
31:26
выкрутили недостаточно чтобы сделать
31:27
какие-то выводы сколько их нужно
31:30
выгрузить
31:32
если у вас например есть несколько
31:35
проектов которой зиждется на одной
31:37
платформе достаточно одного проекта
31:40
выгрузить чтобы судить о работе всей
31:41
платформы или нет
31:43
или нужно выгрузить все или сколько или
31:45
чем больше тем лучше это нужно еще
31:48
решать статистическая оценка данных ну
31:52
здесь классика жанра там от ожидания
31:55
дисперсия я на квантиль и так далее так
31:57
далее для чего это нужно но во первых
31:59
опять чтобы понимать данные которые мы
32:01
работаем что понимать как они
32:05
распределены и впоследствии допустим
32:08
если они раз принесли есть выбросы да
32:10
вот о чем говорил ростислав на
32:11
предыдущем на предыдущем докладе
32:14
если есть например у нас выброс это
32:16
понимать у нас есть выбросы руки не все
32:18
методы хорошо работают с этими выбросы
32:19
выбросами надо иметь ввиду
32:22
значит нужно применять какие-то другие
32:24
методы или избавляться от этих выбросов
32:26
не знаю там путем нормализации если мы
32:29
например видим что наши данные есть там
32:31
высокая корреляция хорошо тогда иметь
32:34
это в виду и использовать какие-то
32:35
методы которые робастные да по отношению
32:38
к этим традиционным данным то есть в
32:40
первую очередь знакомится со своими
32:41
данными понимать как как они что не себя
32:44
представляют оценка загрязненности но
32:47
наличие шумов здесь я ну чуть позже
32:51
расскажу как с какими суммами я
32:53
столкнулась выбросы но это могут быть
32:56
могут быть в принципе да на если мы
32:59
говорим о каких-то нормальных значениях
33:01
но не зная какой нибудь бак старый
33:03
который висит он один единственный висит
33:05
четыре года никто его не чини да пусть
33:07
ну дубликаты а не бывает действительно и
33:10
как мы уже говорили если отдельная
33:11
задача поиска дубликатов багов пропуске
33:15
пропуске каких-то главных полей обычно
33:19
не бывает потому что когда вы заполняете
33:20
бак там обычно стоит
33:22
звездочку обязательных полей о тех у
33:24
которых нет значений потому что они не
33:27
обязательно их тоже можно каким-то
33:29
образом обрабатывать пропуске оставлять
33:31
просто так нельзя их можно либо каким-то
33:33
образом восстанавливать мы сейчас
33:34
поговорим как либо же что-то с этим
33:37
делать
33:39
про оценку данных здесь кстати вот
33:42
приведены несколько по чартов вещи самых
33:45
прокомментирую ну во первых когда мы
33:47
смотрим на статус например и на резолюшн
33:50
что мы можем обратить внимание большую
33:53
часть вот этого патча рта составляет
33:55
какой-нибудь вариант статус или какой-то
33:57
там вариант решения по бабу есть
33:59
очень-очень вот такие
34:02
совсем небольшие группы различных
34:06
решений по баку и статусов вы это сейчас
34:11
обратите в голове задержите и потом мы с
34:14
вами заметен в чем это нам аукнется
34:16
почему-то нам аукнется когда мы будем с
34:19
вами говорить о как обрабатывать
34:20
категориальные данные для кластеризации
34:23
то же самое папину по приоритетам все
34:26
более-менее проще вам такой вариант тоже
34:29
посмотреть что из себя выглядят
34:31
гистограммы например для времени починки
34:34
для прикрепленных файлов для
34:36
комментариев и как может выглядеть
34:38
тепловая карта корреляцией по нашим
34:41
атрибутом чтобы мы заранее видели есть у
34:45
нас корреляции видели если у нас
34:47
какие-то странные выбросы кстати я
34:49
обидела только на одном проекте где вот
34:52
у татар гистограмма была такая 2 горба
34:54
большей видел один единственный проект
34:56
таким с таким интересным распределением
35:00
вычисление неявных атрибутов что за
35:04
неявные атрибуты у нас очень я например
35:07
время починки дефектом в прямом смысле у
35:09
вас его нигде нет у вас есть только
35:12
время создания бага и время его починки
35:16
но в принципе логично предположить что
35:18
время починки будет составлять эту
35:21
разницу но что делать с открытыми богами
35:23
у которых этой разницы нет еще пока
35:25
потому что время починки она в принципе
35:28
пустое а нам хочется уже как-то
35:30
посмотреть но в таком случае вот как раз
35:32
к вопросу о пропусках о которых мы
35:34
говорили нет данных что можно сделать
35:36
можно попробовать заполнить например от
35:39
текущего дня до посчитать раз он еще не
35:41
закрыт значит можно считать что дает
35:43
resort у него какой-то вот не меньше
35:46
сегодняшнего дня и построить 2 более
35:53
сложно атрибут эта область тестирования
35:56
он достаточно сложен и с точки зрения
35:58
какого-то бизнес аспекта и с точки
36:00
зрения его на самом деле вычисления ну
36:03
во первых что это такое область
36:05
тестирование и
36:08
некая сущность которой можно
36:11
характеризовать как со стороны бизнес
36:13
аспектов так странно технических
36:14
архитектурных и
36:16
этим этим разрезом данных у нас
36:20
пользуется тестировщики оценивая обычно
36:22
проблемные богини как программистом и
36:26
табак вот этого метода или это бак вот
36:28
этой функции отдела какой-то более
36:31
скажем так широкий давая широкое
36:34
определение широк описании там и табак
36:36
баз данных или там это баг скриптов
36:39
которые посвящены там дипломе туда
36:40
разворачиванию или и табак документации
36:43
или и табак интерфейса фанатам
36:45
протоколов каких-то так далее потому что
36:47
они обычно под этим подразумевает
36:48
какой-то набор компонентов но еще в
36:51
завершение к этому некий аспект
36:55
предметная область штольни бизнес аспект
36:58
добавляет почему его сложно
37:00
выявлять ну во-первых он в принципе не
37:02
привели да то есть нигде не написано или
37:05
нет такого отдельного поле
37:06
а тем не менее сами тестировщики когда
37:08
формируют и стратегию тестирования смоук
37:11
тесты и не знаю regression библиотеки
37:14
формируют они все равно как раз
37:15
оперируются вот этими направлениями
37:16
которые сами знают что тестировать а
37:19
нам-то тоже надо как то это все понять
37:21
потому что когда мы говорим у нас 5 хай
37:23
багов ну 5 а когда мы году у нас пять
37:26
хай багов из которых все пять вот
37:28
например по базе данных нас это уже
37:30
начинает тревожить
37:31
добавляет какой-то конкретике становится
37:34
описание менее плоским но в то же время
37:36
не понятно как это выявлять для этого
37:39
нужно к сожалению анализировать к
37:41
сожалению этого нужно анализировать
37:43
текст нашего бага и пытаться компонент
37:47
метка они больше нужны для того чтобы
37:48
облегчить разметку потому что когда мы
37:51
пытаемся определить область тестирования
37:54
здесь как раз работать задача
37:56
классификации давайте я приведу пример
38:00
что такое область стирание как еще
38:02
происходит но представьте
38:04
мы все снам допустим сообщили мы знаем
38:08
это уже давно известный факт что вбд
38:10
источника
38:12
и сущности ну не все сущности n-нное
38:14
количество сущностей тыт над начало дня
38:18
имеют свойство пропить иван
38:21
фолз вчера к нам поступило документация
38:26
в которой сказано что у одной из этих
38:30
сущностей т1 property он труп мы идем
38:36
наш там тестовый in warming где уже
38:38
развернут наша новая версия и смотрим
38:40
там видим что вбд источника бы до
38:44
источника у нас находится на true
38:45
а по какому то протокол допустим из
38:48
этого блюда источник куда-то там еще
38:49
одна выходит она вообще идёт
38:51
ну и вот где бак и табак ну во первых
38:58
нам прошиваться что скорее всего бак вот
39:00
здесь связан до в протоколе то есть это
39:02
интеграция с базой данных там что-то не
39:04
так передаются данные так далее раз
39:06
может быть это баг документации но
39:09
кто-то пропустил на самом деле здесь
39:10
должна быть falls а может быть нет это
39:13
может быть в принципе и бак самой базы
39:16
что там не так устанавливается и почему
39:19
то есть принципе я могу сказать что
39:20
занести бак и написать что он относится
39:23
к протокола к базе данных и документации
39:25
ну или опять
39:26
если у меня моё личное видение я могу им
39:28
совершена ток от протоколы к
39:29
документации мы понимаем что один бак
39:32
мат может подбежать к разным областям
39:33
тестированием говоря папа про обработку
39:40
данных вот как раз у нас начинается
39:42
самое веселое вот допустим мы с вами
39:45
решили оценить наш текст и понять какой
39:49
области тестирование он относится я
39:51
думаю вам уже как раз вчера рассказывали
39:53
на первой лекции про обработку
39:55
естественного языка да да
40:00
но я так я долго насильно становятся не
40:03
буду просто напомним даже на 100 может
40:04
быть разбиение на то 100 или n-граммы
40:07
это удаление стоп-слов это там стивен
40:10
климатизации возвращения к начальной
40:11
форме слова и построение какой-то тиран
40:13
документной матрицы а самом деле даже
40:15
здесь мы уже можем оценить с вами
40:18
качество бага сейчас вам расскажу пример
40:21
и обычно внутри компании рассказам
40:23
немножко другой но чтобы было
40:25
поинтереснее всем приведу пример из open
40:27
source снова иссоп интересного проекта я
40:31
анализировала баги одного испанца разных
40:33
проектов это комьюнити
40:35
проектов посвященных серверу приложений
40:37
jboss и когда я стал например оценивать
40:40
reject баги в топ reject багов в топ
40:44
термов reject банов вышла слова front
40:50
естественно меня это заинтересовало
40:52
подумал при чем тут фрэнд пишем
40:54
фронтовым reject багов а выяснилось что
40:59
первое предположение было меня было что
41:01
раз это open source на проект и
41:03
поскольку это открытая комьюнити все
41:05
могут вносить баги думаю может быть они
41:06
просто все по умолчанию пишут тандем
41:08
frends the дорогие друзья там у меня вот
41:10
такой табак но нет когда я стал
41:12
анализировать выяснилось что поскольку у
41:14
нас мы помним доставим климатизации они
41:16
у нас вырезают слова фрэнд это были
41:20
основные части от слов френдли и френдс
41:24
и когда стала смотреть эти реджепа не
41:27
содержали такие описания как например
41:28
тыс интерфейс is not easy фронтмена или
41:32
до из компонентов без frends
41:34
и так далее теперь вы понимаете почему
41:36
эти банки стали получать статус reject
41:39
программист читая описание видел слова
41:42
френдли френдс
41:44
и говорил ну это для тебя не рефрен для
41:46
меня для меня вполне себе то есть это
41:49
описание уже изначально уже употреблении
41:52
этого термы изначально бригад могло
41:57
способствовать тому что бак получит
41:59
reject
42:01
а у другого panzer снова проекта я
42:03
заметил другую интересную особенность у
42:05
него reject получали те баги которые
42:07
являлись богами но не будут подчинены в
42:09
ближайшее время
42:10
программиста писали да мы знаем это баг
42:13
но в ближайшие полгода чинить не будем
42:14
reject и вот тут мы с вами снова
42:17
вспоминаем а задача кластеризация
42:20
понимание о том природа наших дефектов
42:22
мы должны понимать почему наши маги
42:24
реджи птицы потому что у нас не очень
42:26
хорошо их описывают тестировщики
42:28
используется во френд или потому что
42:31
наши богини будут подчинены в ближайшие
42:33
полгода поэтому чего они будут нас
42:34
висеть а может быть еще какие-то причины
42:40
числовая категориальные атрибуты
42:42
возвращаемся к ним стандартизация да ну
42:45
вот классика жанра мы берем значение
42:47
минус монтаже на неделе на
42:49
среднеквадратическое отклонение для чего
42:50
нужно чтобы сгладить вот эти вот выброс
42:52
представим что у нас выборка багов баги
42:55
чинятся от 0 до 170 дней до 1770 дней
42:59
понятно что в среднем они чинятся не не
43:02
пополам да там не 800 не в среднем они
43:04
могут чинить чинить например вообще за
43:06
150 дней даже меньше но вот эти выбросы
43:08
чтобы изгладить мы можем выполнить
43:10
стандартизация дискретизации для чего
43:13
нужно чтобы разбить нашу непрерывно
43:16
перемены на какие-то интервалы для чего
43:17
нужно опять-таки историй одного из за
43:21
панцирных проектов смотрю и вижу что в
43:24
среднем подчиниться два года полным сну
43:28
это пан source на проекты у них немножко
43:30
иное видение разработки в среднем два
43:32
года для них прогнозирования времени
43:35
починки будет ли для них она актуальным
43:39
если мы будем прогнозировать точностью
43:41
до дня ваш вам быть подчинен не за
43:45
семьсот двадцать дней а за 721
43:47
навряд ли им важнее например скорее
43:50
прогнозировать какой-то период например
43:52
не знаю по полу году хотя бы до от полу
43:54
год от полугода до года от года до
43:57
полутора и так далее бинаризации
44:02
для чего нужна она
44:04
помните мы с вами говорили про
44:06
приоритеты да например
44:08
что у нас есть приведет не очень уж
44:10
вариант статусы про статус и
44:12
что у нас есть сейчас вернусь к этому
44:14
пай черт я же обещала у нас есть клаус
44:21
топ он и так далее и тому подобное все
44:22
замечательно но когда мы с вами начинаем
44:26
говорить о кластеризации с точки зрения
44:29
геометрии
44:31
еще до него вот как на этой оси
44:36
разместить статус и клаус ты об как
44:42
понять какое из этих атрибутов ближе а
44:45
какое дальше мы же не можем так это если
44:48
мы просто с вами их закодируем что клаус
44:51
это один опыт это два там не знаю рио
44:53
пункта 3
44:54
мы им как бы насильственно при простым
44:57
приоритеты но это будет неверно потому
44:59
что мы не можем с точки зрения скажет
45:01
геометрий пространств сказать какой из
45:03
них ближе к к и дальше
45:04
поэтому используется бинаризации яда или
45:08
иначе называться даме мы превращаем нашу
45:11
категориальной переменную в на
45:14
количество бинарных по сути мы берем наш
45:16
статус где клаус топан прочее прочее
45:19
прочее и создаем столько же отдельных
45:22
осей и у нас здесь получается у женилась
45:25
статус а у нас есть оси клаус ось у пэн
45:28
о силе локоны так далее тогда на ней мы
45:30
собственно размещаем наши нолики и
45:32
единички в чем подвох возвращаюсь
45:35
обратно копай чартов когда мы с вами
45:41
сделаем вот такую бинаризации у нас сами
45:43
что будет у нас будет у аси клаус
45:48
огромное количество единичек а вот вот в
45:51
этой фиолетово-это что у нас там
45:55
[музыка]
45:56
ryobi а вот у этой фиолетово вариант
46:00
будет ну сколько пара единичек остальные
46:03
нули и когда кластеризация начнет с этим
46:07
совсем работать это будет
46:10
для работы будет не очень здорово
46:13
кластеризации у нас будет такие вот
46:15
одинокие одинокий элемент который как бы
46:17
не не содержит явно явного признака
46:21
поэтому для таких случаев можно что
46:23
сделать можно их объединять объединять
46:27
чем-нибудь но вот например в случае
46:30
здесь можно объединять те которые будут
46:35
в резолюцию не очень удобно например
46:36
взять те которые old out of date они
46:39
называются и допустим те которые были
46:42
перенесены вообще в другую
46:43
информационную систему там играть это на
46:45
заре с мы можем их объединять тем самым
46:48
просто увеличивая количество единичек и
46:50
тем самым позволяя кластеризация
46:53
выполнять более хорошо работу поэтому
46:56
это нужно тоже иметь ввиду этот тонкий
46:59
нюанс с бинаризации поэтому когда мы при
47:03
добра батанов чем пустой как мы получили
47:05
наши исходные данные о богах мы должны
47:09
обязательно предобработки
47:10
и подать кластеризации на вход тоже чем
47:13
она сможет работать до сам числовые
47:15
данные и бинарные с priority
47:20
10 опечаткой с priority priority
47:23
казалось бы тоже у нас категориальная
47:26
переменная да давайте снова вернусь к
47:28
чёрту где оно тоже категориальные
47:31
переменные еще скажите а давайте это же
47:33
by на лизу им но с ней есть тонкий
47:35
подвох это не просто категориальное
47:37
кардинальная перемена у нее есть порядок
47:39
потому что вот как раз
47:41
critical х и медью мы можем разместить
47:44
на оси потому что у них известен порядок
47:46
да мы знаем что у critical приоритет
47:48
выше чем у hai au хай выше чем у медиума
47:51
поэтому мы можем их разместить на оси
47:53
для этого мы можем спокойно просто
47:56
заматировать ну то есть поставить им
47:58
просто уже там 1 2 3 4 5 это будет окей
48:01
то что у них есть порядок в отличие там
48:04
вот статус
48:05
resolution про 4 5 6 мы поговорим завтра
48:10
на практическом занятии
48:13
поговорим про сами смоделируем с вами
48:18
кластер на методы сами их оценим и сами
48:22
посмотрим что получится в итоге и
48:23
подумаем что с этим делать я единстве
48:26
что вам напоминаем для тех кто завтра
48:28
придет приходите с макбуком
48:31
желательно чтобы на этом ноутбуке был
48:33
установлен питон были установлены вот
48:35
эти библиотеки которые вы видите я от
48:41
себя такая рекомендация
48:43
я бы вам предложила поставить среду
48:46
разработки читатель ноутбук скажем так
48:49
она может с точки разработки но не само
48:52
удобно да с точки зрения
48:53
научно-исследовательского аспекта с
48:54
точки зрения аналитики она гораздо будет
48:56
удобней но если вы были вас установлен
48:59
как анти диету почему нет что у нас там
49:04
по времени а все уже почти до отличном
49:07
как раз заканчиваем это просто небольшие
49:09
пару слайдов о том что у нас есть
49:11
компании тоже замечательный тон который
49:14
основан на мышечном обучение в нем тоже
49:16
замечательно всякие модель которые
49:18
позволяют как раз позволяют как раз
49:22
прогнозировать вероятности приоритета
49:26
вероятности будет ли бак пофикшен будет
49:28
равна 3 джек чин позволяет строить
49:30
разные различные
49:32
распределению и характеристики числовые
49:36
то есть к тому что это все есть не
49:38
работает это не просто только сухая
49:40
теория
49:40
список литературы
49:45
все кина не будет ничего страшного ладно
49:49
там в принципе список литературы
49:51
он там на 3 из 3 частей это какие-то
49:55
рекомендации по кластеризации
49:57
рекомендации по тому что можно почитать
50:00
по машинному обучению по богам и что
50:04
можно почитать по питону сейчас мы так
50:10
быстренько да бежим бежим вот кластерный
50:17
анализ
50:18
я большинстве своем написала на всяк
50:22
пожарный большей степени русского
50:25
русскоязычные источники но к сожалению
50:29
например есть вещи которых нет на
50:30
русском языке
50:31
хорошие по крайней мере и вот что
50:33
обещала дисграфия индексы для
50:37
определения количество кластеров
50:39
очень хорошие affinity повешена тоже к
50:42
сожалению вы на русском не найдете ну
50:43
может на хабре какой-нибудь описание по
50:47
багрепорт am некоторый список
50:48
это опять-таки очень небольшой то есть
50:50
чего можно просто начать почитать
50:52
посмотреть че вообще люди делают и по
50:55
бетону
Источник: youtu.be
Комментарии: