Pull to refresh
71.44
ITMO
IT's MOre than a University

Подборка: Более 70 источников по машинному обучению для начинающих

Reading time 5 min
Views 103K


Индикатор кулачкового аналогового компьютера / Wiki

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

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

Машинное обучение – это лишь одна из математических дисциплин, связанных с понятием «данные». Чтобы разобраться в том, что такое аналитика данных, анализ данных, наука о данных, машинное обучение и большие данные, прочитайте этот материал.


Вот инструменты, которые вам понадобятся:

  • Python (Python 3 – наилучший вариант),
  • IPython и Jupyter Notebook (IPython Notebook),
  • Пакеты для расчетов: NumPy, Pandas, Scikit-Learn, Matplotlib.

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

Не страшно, если у вас установлен Python 2.7. Переходить на Python 3 нет необходимости. Вместо Anaconda вы можете воспользоваться pip или virtualenv. Не можете определиться? Прочитайте этот материал.

Для начала познакомьтесь с IPython Notebook (это займет 5-10 минут). Еще можете посмотреть это видео. Далее рассмотрите небольшой пример (это займет 10 минут) классификации цифр с использованием библиотеки scikit-learn.

Наглядное введение в теорию машинного обучения


Давайте побольше узнаем о машинном обучении: об идеях и особенностях. Прочитайте статью Стефани Йи (Stephanie Yee) и Тони Чу (Tony Chu) «Наглядное введение в машинное обучение. Часть 1».



Прочитайте статью профессора Педро Домингоса (Pedro Domingos). Во время чтения не торопитесь, делайте заметки. В статье можно выделить два основных момента:

Одних только данных недостаточно. Домингос писал: «…нет ничего удивительного в том, что для обучения нужны знания. Машинное обучение не может получить что-то из ничего, но может получить большее из меньшего. Обучение похоже на сельское хозяйство, где большую часть работы делает природа. Фермеры дают семенам питательные вещества, чтобы вырастить урожай. Так и здесь: чтобы создать программу, нужно совместить знания и данные».

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

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



Схема составлена на основе слайда из лекции Алекса Пинто (Alex Pinto) «Математика на страже безопасности: руководство по мониторингу с применением машинного обучения».

Обучайтесь на примерах


Выберете и рассмотрите один или два примера из представленных ниже.

  • Распознавание лиц на фотографиях из базы данных сайта Labeled Faces in the Wild.
  • Машинное обучение на основе данных о катастрофе Титаника. Здесь демонстрируются методы преобразования данных и их анализа, а также техники визуализации. Есть примеры методов машинного обучения с учителем.
  • Прогнозирование итогов выборов: использование модели Нейта Сильвера (Nate Silver) для составления прогноза итогов выборов президента США в 2012 году, опубликованных The New York Times.

Вот еще руководства и обзоры:


Другие источники, в которых можно найти блокноты IPython:

  • Галерея интересных блокнотов IPython: статистика, машинное обучение и наука о данных.
  • Большая галерея Фабиана Педрегозы (Fabian Pedregosa).


Курсы по машинному обучению


Будет полезно, если вы начнете работать над каким-нибудь небольшим самостоятельным проектом – так у вас будет возможность применить полученные знания на практике. Можете воспользоваться одним из этих наборов данных.

Еще часто рекомендуют книгу «The Elements of Statistical Learning», но она, как правило, выступает в роли справочника. Книга бесплатная, поэтому скачайте ее или добавьте в закладки браузера.

Еще есть вот эти онлайн-курсы:

  • Курс «Машинное обучение» профессора Педро Домингоса из Вашингтонского университета.
  • Практикум по науке о данных.
  • Наука о данных.
  • Видео «Введение в машинное обучение с scikit-learn» от Кевина Маркхэма (Kevin Markham). После просмотра видеоматериала, вы можете пройти интерактивный курс по науке о данных (есть его более ранние версии: 7, 5, 4, 3).
  • Гарвардский курс CS109 – наука о данных.
  • Продвинутый курс статистических вычислений (курс BIOS8366 университета Вандербильта).

Отзывы о курсах и различные обсуждения:

  • Ознакомьтесь с ответом Джека Голдинга (Jack Golding) на Quora. Там вы найдете ссылку на специализацию «Data Science» на Coursera – если вам не нужен сертификат, то можете пройти все 9 курсов бесплатно.
  • Другое обсуждение на Quora: как стать специалистом по обработке и анализу данных?
  • Большой перечень ресурсов по науке о данных от сайта Data Science Weekly, а также список открытых онлайн-курсов.

Изучаем Pandas


Чтобы работать с Python, вам необходимо познакомиться с пакетом Pandas. Вот список материалов, которые в этом помогут:

  • Основное: знакомство с Pandas,
  • Руководство: несколько вещей в Pandas, которые я бы хотел знать раньше (блокноты IPython),
  • Полезные фрагменты кода Pandas,

Вам также стоит уделить внимание этим ресурсам:


Еще больше материалов и статей


  • Доступная книга Джона Формана (John Foreman) «Data Smart»,
  • Курс по науке о данных с блокнотами IPython,
  • Статья: основные трудности раздела науки о данных (прочитайте статью и комментарий Джозефа Маккарти (Joseph McCarthy)),
  • IPython: ключевые навыки специалистов по работе с данными.

Вопросы, ответы, чаты


На данный момент лучшим местом для поиска ответов на свои вопросы является раздел о машинном обучении на stackexchange.com. Также есть сабреддит: /r/machinelearning. Присоединяйтесь к каналу по scikit-learn на Gitter! Еще стоит обратить внимание на обсуждения на Quora и большой перечень материалов по науке о данных от сайта Data Science Weekly.

Другие вещи, которые полезно знать


  • Наука о данных: статья Джона Формана (John Foreman), специалиста по обработке и анализу данных в MailChimp.
  • Статья: одиннадцать факторов, ведущих к переобучению, и как их избежать.
  • Достойная статья: «Машинное обучение: накладные расходы, которые влечет за собой технический долг» («Machine Learning: The High-Interest Credit Card of Technical Debt»). Цель данной статьи: определить специфические факторы риска при машинном обучении и создать шаблоны, с помощью которых можно их избежать.
  • Джон Форман: «Опасный мир машинного обучения».
  • Kdnuggets: «Издержки систем машинного обучения».

Вам нужна практика. Пользователь с ником Olympus на Hacker News отметил, что для этого необходимо участвовать в конкурсах и соревнованиях. Kaggle и ChaLearn – это платформы для исследователей, где можно попробовать свои силы, участвуя в различных состязаниях. Здесь вы найдете примеры кода для конкурса Kaggle. Еще вариант: HackerRank.

Послушайте и почитайте, что победители конкурсов Kaggle говорят о предложенных ими решениях. Например, почитайте блог «No Free Hunch».

Конкурсы или состязания лишь один из способов попрактиковаться. Вы можете начать проводить исследования:

  1. Начните с вопроса. «Самая важная вещь в науке о данных – это вопрос», – говорит доктор Джефф Лик (Dr. Jeff T. Leek). Начните с вопроса, затем найдите реальные данные и проанализируйте их.
  2. Огласите результаты и обратитесь за экспертной оценкой.
  3. Устраните найденные проблемы. Поделитесь своими открытиями.

Подробнее о научном методе вы можете узнать здесь и здесь.

Вот еще парочка руководств по машинному обучению:
Tags:
Hubs:
+27
Comments 16
Comments Comments 16

Articles

Information

Website
en.itmo.ru
Registered
Founded
Employees
Unknown
Location
Россия
Representative
itmo