Еще с давних времен многие ученые рассуждали о тех временах, когда машины смогут понимать окружающий мир и самостоятельно с ним взаимодействовать. Такие машины должны были бы получать опыт извне и на его основе принимать самостоятельные решения. И, хотя такие машины все еще не появились в том состоянии, о котором мечтали люди, мы уже довольно близки к этому. Существует множество математических алгоритмов, которые находят какие-то сложные шаблоны в данных и на их основе принимают решения.
Первые решения, которые можно отнести к машинному обучению, появились уже в середине XX-го века. Тогда данная тема очень популяризировалась в научных кругах, а также в прессе, что вызывало большой ажиотаж и грезы об автоматизированном будущем. Постоянно появлялись новые алгоритмы и улучшались старые. Многие алгоритмы были описаны только теоретически и тогда не было возможности их проверить на больших данных. Но уже создавались и работающие реализации обучающейся программы для игры в шашки, также, были простейшие программы для ведения диалогов, которые отвечали на вопросы пользователя. Данные программы стали прародителями нынешних программ, которые обыгрывают чемпионов мира в различные настольные игры, и программ, которые обеспечивают голосовое взаимодействие с компьютером. Появилась первая в мире экспертная система, которая путем взаимодействия компьютера с пользователем методом “вопрос-ответ”, могла дать довольно точный диагноз пациенту.
Однако, в 70-ых годах вышла в свет статья известного ученого, в которой описывались проблемы данной области и говорилось, что реализация таких вещей почти невозможна. Все это привело к длительному застою в данной области. Идея самообучающихся программ была отложена и все занимались только созданием программ, рассчитанных на определенные действия.
По прошествии этого времени, с развитием вычислительных мощностей и компьютерных наук, информатика начала пересекаться со статистикой. Рос объем данных, и эти данные нужно было обрабатывать. Алгоритмы машинного обучения, появившиеся уже давно, начали применять в различных сферах. Это были и финансовые рынки, где их начали применять для предсказания роста/падения, и медицина, для установления диагноза, и банковская система, для задач кредитного скоринга. Данные алгоритмы очень помогли автоматизировать многие вычисления. С теми задачами, которыми раньше занимались множество опытных математиков, справлялась всего одна хорошо обученная программа.
Актуальность данной дипломной работы заключается в том, что, в последние несколько лет, машинное обучение довольно быстро уходит в массы. Сейчас каждый пользователь сети интернет имеет доступ к большому количеству данных, а вычислительная производительность домашнего компьютера уже достаточна, чтобы эти данные обработать. Но, для того, чтобы самостоятельно использовать данные алгоритмы, необходимо хорошо с ними разобраться, затем подобрать наилучший метод для вашей задачи, а потом настроить модель на получение наилучшего качества. Именно этому посвящена данная работа.
Постановка задачи
Постановка задачи - анализ и сравнение моделей машинного обучения для задач классификации, кластеризации и регрессии. Для этого необходимо:
^ Ознакомиться с различными методами
^ Рассмотреть различные инструменты для работы с алгоритмами
^ Выбрать критерии оценки качества работы алгоритмов
^ Найти наборы данных для проведения тестов
^ Применить каждый алгоритм к набору данных
^ Произвести сравнение алгоритмов
^ Сделать выводы на основе произведенной работы
В данной дипломной работе были изучены различные модели машинного обучения. Было проведено ознакомления с каждой из них. Был описан алгоритм работы каждого алгоритма. Рассмотрены критерии качества алгоритмов и их поведение на данных.
Результаты работы превзошли ожидание и, даже на не самых простых наборах данных, давали хорошие результаты. И, хотя, на таких объемах данных невозможно построить модель с максимальной точностью, данные модели неплохо подходят для простых задач в небольших проектах.
В ходе работы выяснились слабые и сильные стороны различных алгоритмов. Была проведена оптимизация каждого из них.
В работе стали очевидны проблемы линейных моделей, проблемы переобучения и недообучения, а также проблемы интерпретации моделей. Для оценки методов кластеризации был использован набор данных для классификации, так как такие методы сами находят по каким признакам разделить данные, мы смогли увидеть насколько реальные классы отличаются от собранных кластеров на этом наборе данных.
В данной развивающейся теме еще не было работ, которые бы рассматривали данные методы машинного обучения и сравнивали их работу на одном и том же наборе данных. Не было работы, в которой бы рассматривались общие критерии оценки качества для моделей из разных задач. Также, в данной работе рассматривалась параметризация каждой модели и настройка ее для получения наилучшего качества.
Каждый специалист, ознакомившийся с работой, сможет найти применение этим алгоритмам в своих задачах.
Мое мнение, что данная область сейчас будет развиваться еще быстрее. А такие алгоритмы будут использоваться повсеместно. Все, прежде хранимые и необработанные поступающие данные, будут обрабатываться и на их основе будут происходить различные улучшения.
1. Stanford Universitv. Machine Learning, Andrew Ng
2. МФТИ и Яндекс. Специализация Машинное обучение
3. Machine Learning Foundations: A Case Study Approach
4. Nils J Nilsson. Introduction To Machine Learning. Department of Computer Science Stanford University, 1997
5. Л. П. Коэльо, В. Ричарт. Построение систем машинного обучения, 2016
6. http://lektsii.net/1-111806.html— Регрессионный анализ
7. https://habrahabr.ru/post/171759/ — Энтропия и деревья принятия решений
8. https://habrahabr.ru/company/ods/— Открытый курс машинного обучения