Как улучшить стратегию тестирования с помощью кластеризации? С какими сложностями можно при этом столкнуться, и как их решать?
Очередная лекция с 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 бетону