- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Изучаем Pandas

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вот еще парочка руководств по машинному обучению:

Автор: Университет ИТМО

Источник [86]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/razrabotka/111258

Ссылки в тексте:

[1] Image: http://habrahabr.ru/company/spbifmo/blog/276479/

[2] Wiki: https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80#.D0.91.D0.B0.D0.B7.D0.BE.D0.B2.D1.8B.D0.B5_.D1.8D.D0.BB.D0.B5.D0.BC.D0.B5.D0.BD.D1.82.D1.8B_.D0.90.D0.92.D0.9C

[3] разработке: https://habrahabr.ru/company/spbifmo/blog/269127/

[4] готовят: https://habrahabr.ru/company/spbifmo/blog/275071/

[5] вернуться: https://habrahabr.ru/company/spbifmo/blog/271027/

[6] источник: https://github.com/hangtwenty/dive-into-machine-learning

[7] эта: http://www.diveintopython.net/

[8] этот: http://www.quora.com/What-is-the-difference-between-Data-Analytics-Data-Analysis-Data-Mining-Data-Science-Machine-Learning-and-Big-Data-1/

[9] Python: https://www.python.org/

[10] IPython и Jupyter Notebook: http://ipython.org/

[11] Anaconda Python: https://www.continuum.io/downloads

[12] этот: http://conda.pydata.org/docs/_downloads/conda-pip-virtualenv-translator.html

[13] познакомьтесь: http://opentechschool.github.io/python-data-intro/core/notebook.html

[14] видео: https://www.youtube.com/watch?v=qb7FT68tcA8

[15] пример: http://scikit-learn.org/stable/tutorial/basic/tutorial.html

[16] scikit-learn: http://scikit-learn.org/stable/index.html

[17] статью: http://www.r2d3.us/visual-intro-to-machine-learning-part-1/

[18] Стефани Йи: https://twitter.com/stephaniejyee/

[19] Тони Чу: https://twitter.com/tonyhschu/

[20] статью: http://homes.cs.washington.edu/~pedrod/papers/cacm12.pdf

[21] выбирайте: http://www.artima.com/intv/simplest3.html

[22] означает: http://c2.com/cgi/wiki?DoSimpleThings

[23] лекции: https://www.youtube.com/watch?v=TYVCVzEJhhQ

[24] Распознавание лиц: http://nbviewer.ipython.org/github/ogrisel/notebooks/blob/master/Labeled Faces in the Wild recognition.ipynb

[25] Машинное обучение: http://agconti.github.io/kaggle-titanic/

[26] Прогнозирование итогов выборов: https://github.com/jseabold/538model

[27] опубликованных: http://fivethirtyeight.blogs.nytimes.com/fivethirtyeights-2012-forecast/

[28] Введение: http://amueller.github.io/sklearn_tutorial/

[29] Обучение: http://bugra.github.io/work/notes/2014-11-22/an-introduction-to-supervised-learning-scikit-learn/

[30] Галерея: https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks#statistics-machine-learning-and-data-science

[31] галерея: http://nb.bianp.net/sort/views/

[32] этих: https://github.com/caesar0301/awesome-public-datasets

[33] книгу: http://statweb.stanford.edu/~tibs/ElemStatLearn/

[34] Курс: https://www.coursera.org/course/machlearning

[35] Практикум: http://radimrehurek.com/data_science_python/

[36] Наука о данных: http://learnds.com/

[37] Видео: http://blog.kaggle.com/2015/04/08/new-video-series-introduction-to-machine-learning-with-scikit-learn/

[38] курс: https://github.com/justmarkham/DAT8

[39] 7: https://github.com/justmarkham/DAT7

[40] 5: https://github.com/justmarkham/DAT5

[41] 4: https://github.com/justmarkham/DAT4

[42] 3: https://github.com/justmarkham/DAT3

[43] курс: http://cs109.github.io/2014/

[44] курс: http://stronginference.com/Bios8366/lectures.html

[45] ответом: https://www.quora.com/Is-it-worth-it-to-pay-9-*-49-for-a-data-science-specialization-on-Coursera/answer/Jack-Golding

[46] «Data Science» : https://www.coursera.org/specializations/jhudatascience

[47] обсуждение: https://www.quora.com/How-can-I-become-a-data-scientist?redirected_qid=59455

[48] перечень: http://www.datascienceweekly.org/data-science-resources/the-big-list-of-data-science-resources

[49] список: http://www.datascienceweekly.org/data-science-resources/data-science-moocs

[50] Основное: http://pandas.pydata.org/pandas-docs/stable/10min.html

[51] Руководство: http://nbviewer.ipython.org/github/rasbt/python_reference/blob/master/tutorials/things_in_pandas.ipynb

[52] кода: http://www.swegler.com/becky/blog/2014/08/06/useful-pandas-snippets/

[53] Cookbook: http://pandas.pydata.org/pandas-docs/stable/cookbook.html

[54] Структуры данных: http://pandas.pydata.org/pandas-docs/stable/dsintro.html

[55] DataFrame: http://pandas.pydata.org/pandas-docs/stable/dsintro.html#dataframe

[56] Изменение формы: http://pandas.pydata.org/pandas-docs/version/0.15.0/reshaping.html

[57] Вычислительные средства: http://pandas.pydata.org/pandas-docs/stable/computation.html

[58] SE: http://stats.stackexchange.com/questions/29713/what-is-covariance-in-plain-language

[59] Groupby: http://pandas.pydata.org/pandas-docs/stable/groupby.html

[60] Визуализация: http://pandas.pydata.org/pandas-docs/version/0.15.0/visualization.html

[61] книга: http://www.john-foreman.com/data-smart-book.html

[62] Статья: http://cacm.acm.org/blogs/blog-cacm/169199-data-science-workflow-overview-and-challenges/fulltext

[63] IPython: http://nbviewer.ipython.org/github/jmsteinw/Notebooks/blob/master/IndeedJobs.ipynb

[64] раздел: http://stats.stackexchange.com/questions/tagged/machine-learning?sort=frequent&pageSize=15

[65] /r/machinelearning: https://www.reddit.com/r/machinelearning

[66] каналу: https://gitter.im/scikit-learn/scikit-learn

[67] обсуждения: http://www.quora.com/What-is-the-difference-between-Data-Analytics-Data-Analysis-Data-Mining-Data-Science-Machine-Learning-and-Big-Data-1

[68] Наука о данных: http://www.john-foreman.com/blog/surviving-data-science-at-the-speed-of-hype

[69] Статья: http://hunch.net/?p=22

[70] статья: https://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/43146.pdf

[71] Джон Форман: http://www.john-foreman.com/blog/the-perilous-world-of-machine-learning-for-fun-and-profit-pipeline-jungles-and-hidden-feedback-loops

[72] Kdnuggets: http://www.kdnuggets.com/2015/01/high-cost-machine-learning-technical-debt.html

[73] отметил: https://news.ycombinator.com/item?id=10508565

[74] Kaggle: http://www.kaggle.com/competitions

[75] ChaLearn: http://www.chalearn.org/

[76] Здесь: https://github.com/apeeyush/machine-learning

[77] HackerRank: https://www.hackerrank.com/domains/ai/machine-learning/page/1

[78] блог: http://blog.kaggle.com/

[79] говорит: https://github.com/DataScienceSpecialization/courses/blob/master/01_DataScientistToolbox/03_02_whatIsData/index.Rmd#the-data-is-the-second-most-important-thing

[80] здесь: http://101.datascience.community/2012/06/27/the-data-scientific-method/

[81] здесь: http://customerthink.com/getting-insights-using-data-science-skills-and-the-scientific-method/

[82] Машинное обучение для разработчиков: http://xyclade.github.io/MachineLearning/

[83] Материалы: http://www.jacksimpson.co/2015/06/07/materials-for-learning-machine-learning/

[84] Гидеон Вульфсон: https://docs.google.com/document/d/1YN6BVdReNAYc8B0fjQ84yzDflqmeEPj7S0Xc-9_26R0/edit

[85] Доктор Рэндал Олсон (Randal Olson): https://github.com/rhiever/Data-Analysis-and-Machine-Learning-Projects/blob/master/example-data-science-notebook/Example Machine Learning Notebook.ipynb

[86] Источник: https://habrahabr.ru/post/276479/