Создает и настраивает модели по которым компьютер учится на получаемых данных

Обновлено: 07.07.2024

Процесс разработки моделей и их исследования на компьютере можно разделить на несколько основных этапов.

1. Постановка задачи . На первом этапе исследования объекта или процесса обычно строится описательная информационная модель. Такая модель выделяет существенные, с точки зрения целей проводимого исследования, параметры объекта, а несущественными параметрами пренебрегает. На этом же этапе создается формализованная модель, то есть описательная информационная модель записывается с помощью какого-либо формального языка. В такой модели с помощью формул, уравнений, неравенств и пр. фиксируются формальные соотношения между начальными и конечными значениями свойств объектов, а также накладываются ограничения на допустимые значения этих свойств.

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

1) построение алгоритма решения задачи и его кодирование на одном из языков программирования;

2) построение компьютерной модели с использованием одного из приложений (электронных таблиц, СУБД и пр.).

3. Компьютерный эксперимент . Третий этап исследования информационной модели состоит в проведении компьютерного эксперимента (запустить программу на выполнение и получить результаты или провести сортировку или поиск данных, построить диаграмму или график и так далее).

4. Анализ результатов . Четвертый этап состоит в анализе полученных результатов и корректировке исследуемой модели. В случае различия результатов, полученных при исследовании информационной модели, с измеряемыми параметрами реальных объектов можно сделать вывод, что на предыдущих этапах построения модели были допущены ошибки или неточности.

Задача . Моделирование геометрических операций.

Вся история геометрии связана с практикой построений при помощи подручных средств для измерения недоступного. В Древнем Египте, задолго до доказательства Пифагором его знаменитой теоремы, использовали треугольник со сторонами, соотносящимися как 3:4:5, для получения прямых углов в строительстве. Фалесу Милетскому, жившему в VI в. до н. э., приписывается метод измерения расстояния до кораблей, находящихся в море, с использованием признаков подобия треугольников.

К задачам, поставленным еще в древности, относятся задачи деления отрезков и углов на две равные части.

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

При отсутствии специальных инструментов (линейки, транспортира, циркуля) смоделировать основные геометрические операции.

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

МОДЕЛЬ 1. Деление отрезков (моделирование функций линейки).

Алгоритм деления отрезка пополам приведен на рисунке 1.1. Построение основано на том, что высота в равнобедренном треугольнике является одновременно биссектрисой и медианой. Для построения достаточно инструмента Линия и клавиши Shift .

Алгоритм деления отрезка на n равных частей (для n =3) приведен на рисунке 1.2. Для выполнения операции деления используется отрезок произвольной длины х. Построение основано на подобии треугольников. Параллельность линий достигается копированием.

МОДЕЛЬ 2. Построение окружности заданного радиуса и определение ее центра (моделирование функций циркуля).

Окружность в графическом редакторе вписывается в квадрат со стороной, равной удвоенному радиусу. Алгоритм построения окружности изображен на рисунке 1.3.

МОДЕЛЬ 3. Деление угла пополам (моделирование функции транспортира)

На рисунке 1.4 приведен один из вариантов алгоритма деления.

1. Тестирование построенной по заданному алгоритму модели 1 со-вмещением отрезков, полученных при делении.

2. Тестирование построенной по заданному алгоритму модели 2 со-вмещением исходного и повернутого на 90° отрезка с радиусами полученной окружности.

Докажите правильность алгоритмов построения.

Если результаты тестирования отрицательные, увеличить точность выполнения алгоритма за счет работы в увеличенном масштабе (под лупой).

Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

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

Статья Megan Dibble с Medium Towards Data Science это максимально простое объяснение работы ML моделей.

Если вы новичок в data science, заголовок не был направлен на то, чтобы вас обидеть. Это мой второй пост на тему популярного вопроса на интервью, который звучит примерно так: «объясните мне [вставить техническую тему], как вы бы объяснили пятилетнему ребенку.»

Выходит, достичь уровня понимания пятилетнего ребенка довольно сложно. Так что, хоть эта статья может быть не совсем ясна детсадовцу, она будет понятна тому, кто практически не имеет опыта в data science (и если вы поймете, что это не так, пожалуйста, напишите об этом в комментариях).

Я начну с объяснения понятия машинного обучения, а также его различных типов, а затем перейду к объяснению простых моделей. Я не буду особо вдаваться в математику, но подумываю сделать это в своих будущих статьях. Наслаждайтесь!

Illustration of Machine Learning

Машинное обучение – это когда вы загружаете большое количество данных в компьютерную программу и выбираете модель, которая «подгонит» эти данные так, чтобы компьютер (без вашей помощи) мог придумывать прогнозы. Компьютер строит модели, используя алгоритмы, которые варьируются от простых уравнений (например, уравнение прямой) до очень сложных систем логики/математики, которые позволяют компьютеру сделать самые лучшие прогнозы.

Название – машинное обучение - очень удачное, потому что как только вы выбираете модель, которую будете использовать и настраивать (другими словами, улучшать с помощью корректировок), машина будет пользоваться моделью для изучения закономерностей в ваших данных. Затем вы можете добавить новые условия (наблюдения) и она предскажет результат!

Обучение с учителем — это тип машинного обучения, в котором данные, которые вы засовываете в модель «помечаются». Пометка просто означает, что результат наблюдения (то есть ряд данных) известен. Например, если ваша модель пытается предсказать пойдут ли ваши друзья играть в гольф или нет, у вас могут быть такие переменные, как погода, день недели и так далее. Если ваши данные помечены, то ваша переменная будет иметь значение 1, в том случае если ваши друзья пошли играть в гольф, и значение 0, если они не пошли.

Как вы наверно могли угадать, когда речь идет о помеченных данных, обучение без учителя является противоположностью обучения с учителем. В обучении без учителя, вы не можете знать пошли ваши друзья играть в гольф или нет – только компьютер может найти закономерности с помощью модели, чтобы угадать, что уже произошло или предсказать, что произойдет.

[Требуется присутствие взрослых]

Логистическая регрессия используется для решения проблемы классификации. Это значит, что ваша целевая переменная (та которую вы хотите предсказать) состоит из категорий. Эти категории могут быть да/нет, или что-то вроде числа от 1 до 10, которое обозначает удовлетворенность клиента. Модель логистической регрессии использует уравнение, чтобы создать кривую с вашими данными, а затем использует эту кривую, чтобы спрогнозировать результаты нового наблюдения.

На графике выше, новое наблюдение получило бы в прогнозе 0, потому что оно попадает на левую часть кривой. Если посмотреть на данные, по которым построена кривая, это логично, потому что в области графика «прогнозируемое значение 0» большинство точек по оси y имеют значение 0.

Довольно часто линейная регрессия становится первой моделью машинного обучения, которую люди изучают. Связано это с тем, что ее алгоритм (проще говоря уравнение) достаточно просто понять, используя только одну переменную x – вы просто-напросто рисуете наиболее подходящую линию – концепция, которой учат еще в начальной школе. Наиболее подходящая линия затем используется для прогнозирования новых точек данных (см. иллюстрацию).

Линейная Регрессия чем-то напоминает логистическую регрессию, но используется, когда целевая переменная – непрерывная, а это значит, что она может принимать практически любое числовое значение. На самом деле, любая модель с непрерывной целевой переменной может быть классифицирована как «регрессия». Примером непрерывной переменной может служить цена продажи дома.

Линейная регрессия хорошо интерпретируется. Уравнение модели содержит коэффициенты для каждой переменной, и эти коэффициенты показывают, насколько сильно меняется целевая переменная при малейшем изменении независимой переменной (х-переменной). Если показывать это на примере цен на продажу дома, это означает, что вы могли бы посмотреть на уравнение регрессии и сказать что-то типа «о, это говорит мне о том, что за каждый дополнительный 1м2 от размера дома (х-переменная), цена продажи (целевая переменная) увеличивается на $25.»

Эта модель может быть использована для классификации или для регрессии. Название - «К Ближайших Соседей» не должно сбить вас с толку. Для начала модель выводит все данные на график. Часть «К» в названии относится к числу ближайших соседних точек данных, на которые модель смотрит, чтобы определить каким должно быть прогнозное значение (см. иллюстрацию ниже). Вы, как будущий data science специалист, выбираете значение K и можете поиграть с ним, чтобы увидеть, какое из значений дает лучшие прогнозы.

Все точки данных, находящиеся в круге K=__, получают “голос " относительно того, каким должно быть значение целевой переменной для этой новой точки данных. Значение, которое получает большинство голосов – это значение, которое KNN прогнозирует для новой точки данных. В иллюстрации выше, 2 ближайших соседей – class 1, в то время как 1 соседей – class 2. Таким образом, модель бы спрогнозировала class 1 для этой точки данных. Если модель предсказывает числовое значение, а не категорию, то все «голоса» - числовые значения, которые усредняются, чтобы получить прогноз.

Принцип работы опорных векторов заключается в том, что они устанавливают границы между точками данных, где большинство из одного класса падает на одну сторону границы (как пример, в двумерном пространстве это будет линия) и большинство из другого класса падает на другую сторону границы.

Способ работы также заключается в том, что машина стремится найти границу с наибольшим пределом. Предел определяется расстоянием между границей и ближайшими точками каждого класса (см. иллюстрацию). Новые точки данных затем строятся и помещаются в определенный класс, в зависимости от того, на какую сторону границы они попадают.

Я объясняю эту модель на примере классификации, но вы также можете ее использовать для регрессии!

Про это я уже рассказывала в предыдущей статья, вы можете найти ее здесь (Деревья Решений и Случайные Леса ближе к концу):

[Читайте с осторожностью]

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

Когда вы используете K кластеризацию, вы должны начать с предположения, что в вашем датасете присутствует K кластеров. Поскольку вы не знаете, сколько групп на самом деле в ваших данных, вы должны попробовать различные значения K и с помощью визуализации и метрик понять, какое значение K подходит. Метод K средних лучше всего работает с круговыми кластерами одинаковых размеров.

Этот алгоритм сначала выбирает лучшие точки данных K, чтобы сформировать центр каждого K кластера. Затем, он повторяет 2 следующих шага для каждой точки:

1. Присваивает точку данных ближайшему центру кластера

2. Создает новый центр, взяв среднее значение всех точек данных из этого кластера


В данный момент вы не можете посмотреть или раздать видеоурок ученикам

Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобрев в каталоге.

Получите невероятные возможности



2. Раздавайте видеоуроки в личные кабинеты ученикам.


3. Смотрите статистику просмотра видеоуроков учениками.

Конспект урока "Основные этапы разработки и исследования моделей на компьютере"

· основные этапы компьютерного моделирования;

· построение компьютерной модели.

XXI век – это век информационных технологий. И естественно компьютер используется для разработки и исследования моделей. Компьютерное исполнение информационных моделей, очень удобно, так как становится возможным проведение вычислительного эксперимента и осуществление прогнозирования.


Компьютерная модель – это компьютерная программа, работающая на отдельном компьютере, суперкомпьютере или множестве взаимодействующих компьютеров, реализующая представление объекта, системы или понятия в форме, отличной от реальной, но приближенной к алгоритмическому описанию, включающей и набор данных, характеризующих свойства системы и динамику их изменения со временем.

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


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

Компьютерное моделирование незаменимо:

1. когда реальные объекты очень сложные. Число факторов, которые относятся к решаемой проблеме, выходит за пределы человеческих возможностей.

2. необходимость проведения экспериментов. На практике встречается много ситуаций, когда экспериментальное исследование объектов ограничено высокой стоимостью или вовсе невозможно (опасно или вредно).

3. необходимость прогнозирования. Важное достоинство моделей состоит в том, что они позволяют «заглянуть в будущее», дать прогноз развития ситуации и определить возможные последствия принимаемых решений.

Компьютерное моделирование состоит из двух этапов.

1. для исследования объекта или процесса, составляется описательная информационная модель. Что это значит? Здесь необходимо определить цель исследования. И в зависимости от цели, выделить главные (существенные) свойства модели, необходимые для данного исследования.

2. создаётся формализованная модель. Разберёмся что это значит.

Формализованная модель – это перевод описательной информационной модели на формальный язык. Формальный значит специальный, то есть язык формул, уравнений, неравенств. Здесь мы устанавливаем формальные взаимосвязи между начальными и конечными значениями свойств объектов, а также задаём некоторые ограничения на допустимые значения этих свойств.

То есть чем больше значимых свойств будет выявлено и перенесено на компьютерную модель – тем более приближенной она окажется к реальной модели, тем большими возможностями сможет обладать система, использующая данную модель.

Компьютерное же моделирование заключается в проведении серии вычислительных экспериментов на компьютере, целью которых является анализ, истолкование и сопоставление результатов моделирования с реальным поведением изучаемого объекта и, при необходимости, последующее уточнение модели.

Выделим основные преимущества компьютерного моделирования.

Компьютерное моделирование даёт возможность:

· расширить круг исследовательских объектов - становится возможным изучать не повторяющиеся явления, явления прошлого и будущего, объекты, которые не воспроизводятся в реальных условиях;

· визуализировать объекты любой природы, в том числе и абстрактные;

· исследовать явления и процессы в динамике их развёртывания;

· управлять временем (ускорять или замедлять);

· совершать многоразовые испытания модели, каждый раз возвращая её в первичное состояние;

· получать разные характеристики объекта в числовом или графическом виде;

· находить оптимальную конструкцию объекта, не изготовляя его пробных экземпляров;

· проводить эксперименты без риска негативных последствий для здоровья человека или окружающей среды.

Современные компьютеры позволяют строить весьма сложные модели, достаточно полно отражающие реальные объекты или процессы.

Рассмотрим основные этапы компьютерного моделирования

1. Постановка задачи: описание объекта и определение цели моделирования.

На этом этапе необходимо выяснить, с какой целью создаётся модель. Определить, какие исходные данные нужны для создания модели и что ожидается получить в результате.

2. Построение информационной модели.

Здесь необходимо определить параметры модели и выявить взаимосвязь между ними. Оценить, какие из параметров важны для данной задачи, а какими можно пренебрегать. А также математически описать зависимость между параметрами модели.

3. Разработка метода и алгоритма реализации компьютерной модели.

То есть нужно выбрать или разработать метод получения исходных результатов. Составить алгоритм получения результатов по избранным методам. И проверить правильность алгоритма.

4. Разработка компьютерной модели.

Здесь выбираются средства программной реализации алгоритма на компьютере. Разрабатывается компьютерная модель. Проверяется правильность созданной компьютерной модели.

5. Проведение эксперимента.

На этом этапе разрабатывается план исследования. Проводится эксперимент на базе созданной компьютерной модели. Анализируются полученные результаты. И в конце делают выводы.

Рассмотрим основные этапы компьютерного моделирования на примере.

Лесной участок оценивается в 200000 кубометров древесины. Ежегодно этот объём увеличивается на 7% за счёт естественного прироста. Начиная с четвёртого года на хозяйственные нужды вырубается 20 000 кубометров ежегодно.

· наступит ли уменьшение объёма древесины на участке до 100 000 кубометров и на каком году.

· что произойдёт, если, начиная с седьмого года естественный прирост уменьшится до 6%.

· какой может быть максимально вырубка леса, чтобы объём древесины на участке не сокращался.

Итак, первый этап. Постановка задачи: описание объекта и определение цели моделирования.

Для нашей задачи объектом моделирования является лесной участок. Наша цель – сделать прогноз, на каком году наступит уменьшение объёма древесины на участке до ста тысяч.

Второй этап. Построение информационной модели.

Построим математическую модель.

Пусть V0 – это начальный объём древесины на участке. P – процент естественного прироста леса. Ri – это объём вырубки леса в i-том году. Vi – объём древесины в i-том году.

В нашей задаче мы будем учитывать естественный прирост древесины и пренебрегать остальными свойствами объекта, например, влияние погодных условий.

Третий этап. Разработка метода и алгоритма реализации компьютерной модели.


Аналогично будем поступать далее, пока не ответим на поставленные вопросы.

Четвёртый этап. Разработка компьютерной модели

Решим эту задачу с помощью электронных таблиц, например, Microsoft Excel.

Назовём нашу модель: Вырубка леса. Заполним исходные данные.

Теперь приступим к разработке компьютерной модели. То есть нам нужно заполнить Расчётную таблицу.


В столбец «Год» введём числа от 0 до 30. Мы увеличим количество лет, если это понадобится при решении задачи.

Начнём заполнять столбец «Объём древесины в начале года». В ячейку B9 необходимо ввести начальный объём древесины, то есть: =A3. Далее нам известно, что на следующий год объём древесины увеличится на 7% за счёт естественного прироста. Значит, в ячейку B10 вводим формулу: =B9+$A$4*B9-C10.

Заполним столбец «Вырубка». Мы знаем, что, начиная с четвёртого года на хозяйственные нужды вырубается двадцать тысяч кубометров древесины ежегодно, значит первых три года вырубка не производилась, ставим нули, а далее заполняем столбец до конца значением двадцать тысяч.

То есть в ячейку C13 запишем формулу: =$A$5.

Теперь скопируем её в диапазон ячеек C14; C39.

Вернёмся к столбцу «Объём древесины в начале года». Скопируем формулу в диапазон ячеек B11; B39.

Теперь проверим правильность скопированных данных. Проверим данные для второго года. Объём древесины в начале второго года равен значению в ячейке B10. То есть формула записана правильно.

Проверим правильность созданной компьютерной модели.

Мы построили модель в соответствии с условием задачи.

Ответим на первый вопрос нашей задачи. Уменьшение объёма древесины до 100000 кубометров наступит на 25 году, то есть в начале 26 года объём древесины будет уже меньше 100000 кубометров.

Пятый этап компьютерного моделирования. Проведение эксперимента.

В задаче необходимо ответить ещё на два вопроса:

Итак, для того чтобы выяснить, что произойдёт, если, начиная с седьмого года естественный прирост уменьшится до 6% введём в электронную таблицу ещё одно исходное значение. Теперь необходимо в ячейке B15 изменить формулу, то есть теперь у нас будет ссылка на ячейку A6, причём ссылка абсолютная. Скопируем формулу в диапазон B16; B39.

Обратите внимание, теперь уменьшение объёма древесины до 100000 кубометров наступит на 20 году, то есть в начале 21 года объём древесины будет меньше 100000 кубометров.

То есть чем меньше естественный прирост древесины, тем быстрее происходит вырубка леса.

Чтобы ответить на последний вопрос нашей задачи, необходимо заметить, что для того чтобы объём древесины на участке не сокращался максимальная вырубка леса должна быть равна естественному приросту.

Проведём эксперимент для начальных условий.

Нам нужно изменить значение в ячейке C13. Естественный прирост составляет 7% от начального объёма. Значит запишем формулу: =B12*$A$4.

Обратите внимание, для того чтобы объём древесины на участке не сокращался максимальная вырубка леса должна быть равна 17150,602 кубометра.

Пришло время подвести итоги урока.

Компьютерная модель – это компьютерная программа, работающая на отдельном компьютере, суперкомпьютере или множестве взаимодействующих компьютеров, реализующая представление объекта, системы или понятия в форме, отличной от реальной, но приближенной к алгоритмическому описанию, включающей и набор данных, характеризующих свойства системы и динамику их изменения со временем.

К основным этапам компьютерного моделирования относятся:

Первый. Постановка задачи: описание объекта и определение цели моделирования.

Второй. Построение информационной модели

Третий этап. Разработка метода и алгоритма реализации компьютерной модели

Четвёртый этап. Разработка компьютерной модели

И пятый этап. Проведение эксперимента.

Также сегодня на уроке мы с вами рассмотрели пример построения компьютерной модели.


Жизненный цикл модели машинного обучения — это многоэтапный процесс, в течении которого исследователи, инженеры и разработчики обучают, разрабатывают и обслуживают модель машинного обучения. Разработка модели машинного обучения принципиально отличается от традиционной разработки программного обеспечения и требует своего собственного уникального способа разработки. Модель машинного обучения — это приложение искусственного интеллекта (ИИ), которое дает возможность автоматически учиться и совершенствоваться на основе собственного опыта без явного участия человека. Основная цель модели заключается в том, чтобы компания смогла использовать преимущества алгоритмов искусственного интеллекта и машинного обучения для получения дополнительных конкурентных преимуществ. Над каждым этапом работает SCRUM-команда. Сотрудничество команд организуется по методике SCRUM of SCRUMs.

Содержание

На этом этапе необходимо вместе с заказчиком сформулировать проблемы бизнеса, которые будет решать модель. Также, требуется понять, кто участвует в проекте со стороны заказчика, кто выделяет деньги под проект, и кто принимает ключевые решения. Вдобавок необходимо узнать существуют ли готовые решения и, если да, чем они не устраивают заказчика.

Главная задача этого этапа — понять основные бизнес-переменные, которые будет прогнозировать модель. Такие переменные называются ключевыми показателями модели. После этого необходимо определить какие метрики будут использоваться, чтобы определить успешность проекта. Например, может потребоваться спрогнозировать количество абонентов, которые хотели уйти от своего оператора, но в итоге остались у него. К моменту завершения проекта требуется чтобы модель уменьшила отток абонентов на X%. С помощью этих данных можно составить рекламные предложения для минимизации оттока. Метрики должны быть составлены в соответствии с принципами SMART.

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

Нужно описать вероятные риски проекта, а также определить план действий по их уменьшению. Типичные риски следующие:

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

После того, как задача описана на языке бизнеса, необходимо поставить ее в терминах машинного обучения. Особенно нужно узнать ответы на следующие вопросы: Какая метрика будет использована для оценки результата модели(например: accuracy, precision, recall, MSE, MAE и т.д.)? Каков критерий успешности модели (например, считаем точность (англ. accuracy) равный 0.8 — минимально допустимым значением, 0.9 — оптимальным)?

После необходимо сформировать команду проекта, распределить роли и обязанности между его участниками; создать расширенный поэтапный план проекта, который будет дополняться по мере поступления новой информации. Команда проекта состоит из менеджера, исследователей, разработчиков, аналитиков и тестировщиков.

На этом этапе осуществляется анализ, сбор и подготовка всех необходимых данных для использования в модели. Основные задача этого этапа состоит в том, чтобы получить обработанный, высококачественный набор данных, который подчиняется некоторой закономерности. Анализ и подготовка данных состоят из 4 стадий: анализ данных, сбор данных, нормализация данных и моделирование данных.

Задача этого шага – понять слабые и сильные стороны в имеющихся данных, определить их достаточность, предложить идеи, как их использовать, и лучше понять бизнес-процессы заказчика. Требуется провести анализ всех источников данных, к которым заказчик предоставляет доступ. Если собственных данных не хватает, тогда необходимо купить данные у третьих лиц или организовать сбор новых данных. Для начала нужно понимать, какие данные есть у заказчика. Данные могут быть: собственными, сторонними и «потенциальными» данными (нужно организовать сбор, чтобы их получить). Также требуется описать данные во всех источниках (таблица, ключ, количество строк, количество столбцов, объем на диске). Далее, с помощью таблиц и графиков смотрим на данные, чтобы сформулировать гипотезы о том, как данные помогут решить поставленную задачу. Обязательно до моделирования требуется оценить, насколько качественные нужны данные, так как любые ошибки на данном шаге могут негативно повлиять на ход проекта. Типичные проблемы, которые могут быть в данных: пропущенные значения, ошибки в данных, опечатки, неконсистентная кодировка значений (например «w» и «women» в разных системах).

Сбор данных — это процесс сбора информации по интересующим переменным в установленной систематической форме, которая позволяет отвечать на поставленные вопросы исследования, проверять гипотезы и оценивать результаты. Правильный сбор данных имеет важное значение для обеспечения целостности исследований. Как выбор подходящих инструментов сбора данных, так и четко разграниченные инструкции по их правильному использованию снижают вероятность возникновения ошибок. Прогнозирующие модели хороши только для данных, из которых они построены, поэтому правильная практика сбора данных имеет решающее значение для разработки высокопроизводительных моделей. Данные не должны содержать ошибок и должны быть релевантными.

Следующий шаг в процессе подготовки — это то место, где аналитики и инженеры данных обычно проводят большую часть своего времени: очистка и нормализация "грязных" данных. Часто это требует от них принимать решения на основе данных, которые они не совсем понимают, например, что делать с отсутствующими или неполными данными, а также с выбросами. Что еще хуже, эти данные нелегко соотнести с соответствующей единицей анализа: клиентом. Например, чтобы предсказать, уйдет ли один клиент (а не сегмент или целая аудитория), нельзя полагаться на данные из разрозненных источников. Инженер по данным подготавливает и объединяет все данные из этих источников в формат, который могут интерпретировать модели машинного обучения.

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

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

На этом шаге происходит обучения модели. Обучение моделей машинного обучения происходит итерационно – пробуются различные модели, перебираются гиперпараметры, сравниваются значения выбранной метрики и выбирается лучшая комбинация.

Вначале нужно понять, какие модели будут использоваться. Выбор модели зависит от решаемой задачи, используемых признаков и требований по сложности (например, если модель будет дальше внедряться в Excel, то Дерево решений или AdaBoost не подойдут). При выборе модели обязательно принять во внимание следующие факторы:

  • Достаточность данных (обычно, сложные модели требуют большого количества данных).
  • Обработка пропусков (некоторые алгоритмы не умеют обрабатывать пропуски).
  • Формат данных (для части алгоритмов потребуется конвертация данных).

Далее необходимо определить, на каких данных будет обучаться модель, а на каких тестироваться. Традиционный подход – это разделение набора данных на 3 части (обучение, валидация и тестирование) в пропорции 60/20/20. В данном случае обучающая выборка используется для обучения модели, а валидация и тестирование для получения значения метрики без эффекта переобучения. Более сложные стратегии обучения модели подразумевают использование различных вариантов кросс-валидации. Также на данном шаге требуется определить, как будет происходить оптимизация гиперпараметров моделей, сколько потребуется итераций для каждого алгоритма, будет ли использоваться grid-search или random-search.

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

  • Необычные закономерности (Например, точность предсказания модели на 95% объясняется всего лишь одним признаком).
  • Скорость обучения модели (Если модель долго обучается, то стоит использовать более эффективный алгоритм или уменьшить обучающую выборку).
  • Проблемы с данными (Например, в тестовую выборку попали объекты с пропущенными значениями, и, как следствие, значение метрики было посчитано не полностью, и она не позволяет целиком оценить модель).

После формирования списка из подходящих моделей, нужно еще раз их детально проанализировать и выбрать лучшие модели. На выходе необходимо иметь список моделей, отсортированный по объективному и/или субъективному критерию. Задачи шага: провести технический анализ качества модели (ROC, Gain, K-S и т.д.), оценить, готова ли модель к внедрению в корпоративное хранилище данных, достигаются ли заданные критерии качества, проанализировать результаты с точки зрения достижения бизнес-целей. Если критерий успешности (выбранная метрика) не достигнут, то необходимо или улучшить текущую модель, или использовать другую. Прежде чем переходить к внедрению нужно убедиться, что результат моделирования понятен и логичен. Например, прогнозируется отток клиентов и значение метрики GAIN равно 99%. Слишком хороший результат – повод проверить модель еще раз.

Результатом предшествующего этапа является построенная модель машинного обучения и найденные закономерности. На данном этапе происходит оценивание результатов проекта.

Если на предыдущем этапе оценивались результаты моделирования с технической точки зрения, то здесь происходит оценка результатов с позиции достижения бизнес-целей. Например, насколько качественно полученная модель решает поставленные бизнес-задачи. Также, необходимо понять найдена ли в течении проекта какая-то новая полезная информация, которую стоит выделить отдельно. Далее необходимо проанализировать ход проекта и сформулировать его сильные и слабые стороны. Для этого нужно ответить на следующие вопросы:

  • Какие этапы проекта можно было сделать эффективнее?
  • Какие ошибки были сделаны? Возможно ли их избежать в будущем?
  • Были ли не сработавшие гипотезы? Если да, стоит ли их повторять?
  • Были ли неожиданности при реализации шагов? Как их предусмотреть в будущем?

Затем, если модель устраивает заказчика, то необходимо или внедрить модель, или, если существует возможности для улучшения, улучшить модель. Если на данном этапе несколько подходящих моделей, то нужно выбрать модель, которая будет дальше внедряться.


Внедрение модели машинного обучения в производство означает доступность модели для других бизнес-систем. Внедряя модель, другие системы могут отправлять ей данные и получать от модели прогнозы, которые, в свою очередь, используются в системах компании. Благодаря внедрению модели машинного обучения, компания сможет в полной мере воспользоваться созданной моделью машинного обучения. Основная задача, решаемая на этом этапе - ввод модели в эксплуатацию. Необходимо развернуть модель и конвейер в рабочую или близкую к ней среду, чтобы приложения могли к ней обращаться. Создав эффективно работающую модель, требуется ввести ее в эксплуатацию для взаимодействия с другими системами компании. В зависимости от бизнес-требований, модель исполняет прогнозы в режиме реального времени или в стандартном режиме. Для развертывания модели, необходимо внедрять модель с помощью открытого API-интерфейса. Интерфейс упрощает использование модели различными приложениями, например:

  • Веб-сайты.
  • Электронные таблицы.
  • Панели мониторинга бизнес-приложения.
  • Серверные приложения.

Также необходимо понять, собирается ли компания использовать Платформу как Сервис (англ. Platform as a Service, PaaS) или Инфраструктуру как Сервис (англ. Infrastructure as a Service, IaaS). PaaS может быть полезен для создания прототипов и компаний с меньшим трафиком. В конце концов, по мере роста бизнеса и / или увеличения трафика компании придется использовать IaaS с большей сложностью. Есть множество решений от больших компаний (AWS, Google, Microsoft). Если приложения контейнеризованы, развертывание на большинстве платформ / инфраструктур будет проще. Контейнезирование также дает возможность использовать платформу оркестровки контейнеров для быстрого масштабирования количества контейнеров по мере увеличения спроса. Далее, нужно убедиться, что развертывание происходит через платформу непрерывного развертывания(англ. Continuous Deployment platform).

На данном этапе осуществляется тестирование, мониторинг и контролирование модели. В основном тесты моделей машинного обучения делятся на следующие части:

Происходит сравнение результатов, данных новой моделью, и результатов, данных старой моделью для стандартного набора тестовых данных. Необходимо настроить чувствительность этих тестов в зависимости от варианта использования модели. Эти тесты могут быть жизненно важны для обнаружения модели, которая выглядит работающей, но, на самом деле, таковой не является, например, когда устаревший набор данных использовался в обучении или модель обучилась не на всех признаках. Такие проблемы, присущие машинному обучения, не приведут к ошибке на стандартных тестах.

Тесты сравнивают время, затрачиваемое либо на обучение, либо на предоставление прогнозов из модели от одной версии к другой. Они мешают вводить неэффективные добавления кода в модели машинного обучения. Опять же, это то, что трудно уловить с помощью традиционных тестов (хотя некоторые инструменты статического анализа кода могут помочь).

Это не совсем специфичные тесты для модели машинного обучения, но с учетом необычно больших требований к ЦП / памяти в некоторых моделях машинного обучения такие тесты особенно стоит использовать.

Еще один популярный способ тестирования - A/B-тестирование. Этот метод также называется сплит-тестированием (англ. split testing ). A/B-тестирование позволяет оценивать количественные показатели работы двух вариантов модели, а также сравнивать их между собой. Чтобы получить статистически значимый результат, очень важно исключить влияние моделей друг на друга.

Все вышеперечисленные тесты намного проще использовать с контейнеризованными приложениями, так как это делает раскрутку реалистичного производственного стека тривиальной.

Мониторинг и оповещение могут быть особенно важны при развертывании моделей. По мере усложнения системы потребуются возможности мониторинга и оповещения, чтобы сообщать, когда прогнозы для конкретной системы выходят за пределы ожидаемого диапазона. Мониторинг и оповещение также могут быть связаны с косвенными проблемами, например, при обучении новой сверточной нейронной сети расходовать ежемесячный бюджет AWS за 30 минут. Также понадобятся панели управления, позволяющие быстро проверить развернутые версии моделей.

Читайте также: