- PVSM.RU - https://www.pvsm.ru -
Индикатор кулачкового аналогового компьютера / Wiki [2]
В нашем блоге мы уже рассказывали о разработке [3] системы квантовой связи и о том, как из простых студентов готовят [4] продвинутых программистов. Сегодня мы решили вернуться [5] к теме машинного обучения и привести адаптированную (источник [6]) подборку полезных материалов.
Это список предназначен для тех, кто только начинает изучать тему машинного обучения, например, с использованием Python (если вы хотите начать учить Python, вам в помощь эта [7] статья).
Машинное обучение – это лишь одна из математических дисциплин, связанных с понятием «данные». Чтобы разобраться в том, что такое аналитика данных, анализ данных, наука о данных, машинное обучение и большие данные, прочитайте этот [8] материал.
Вот инструменты, которые вам понадобятся:
Вы можете установить 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».
Прочитайте статью [20] профессора Педро Домингоса (Pedro Domingos). Во время чтения не торопитесь, делайте заметки. В статье можно выделить два основных момента:
Одних только данных недостаточно. Домингос писал: «…нет ничего удивительного в том, что для обучения нужны знания. Машинное обучение не может получить что-то из ничего, но может получить большее из меньшего. Обучение похоже на сельское хозяйство, где большую часть работы делает природа. Фермеры дают семенам питательные вещества, чтобы вырастить урожай. Так и здесь: чтобы создать программу, нужно совместить знания и данные».
Большое количество данных лучше детально продуманного алгоритма. Не пытайтесь изобретать велосипед и усложнять решения: выбирайте [21] кратчайший путь, ведущий к цели. Домингос говорит: «Как правило, «глупый» алгоритм с большим количеством данных превосходит «умный» алгоритм с небольшим количеством данных. В машинном обучении главную роль всегда играют данные».
Итак, знания и данные имеют решающее значение. Это означает [22], что усложнять алгоритмы нужно только тогда, когда у вас действительно нет выбора.
Схема составлена на основе слайда из лекции [23] Алекса Пинто (Alex Pinto) «Математика на страже безопасности: руководство по мониторингу с применением машинного обучения».
Выберете и рассмотрите один или два примера из представленных ниже.
Вот еще руководства и обзоры:
Другие источники, в которых можно найти блокноты IPython:
Будет полезно, если вы начнете работать над каким-нибудь небольшим самостоятельным проектом – так у вас будет возможность применить полученные знания на практике. Можете воспользоваться одним из этих [32] наборов данных.
Еще часто рекомендуют книгу [33] «The Elements of Statistical Learning», но она, как правило, выступает в роли справочника. Книга бесплатная, поэтому скачайте ее или добавьте в закладки браузера.
Еще есть вот эти онлайн-курсы:
Отзывы о курсах и различные обсуждения:
Чтобы работать с Python, вам необходимо познакомиться с пакетом Pandas. Вот список материалов, которые в этом помогут:
Вам также стоит уделить внимание этим ресурсам:
На данный момент лучшим местом для поиска ответов на свои вопросы является раздел [64] о машинном обучении на stackexchange.com. Также есть сабреддит: /r/machinelearning [65]. Присоединяйтесь к каналу [66] по scikit-learn на Gitter! Еще стоит обратить внимание на обсуждения [67] на Quora и большой перечень [48] материалов по науке о данных от сайта Data Science Weekly.
Вам нужна практика. Пользователь с ником Olympus на Hacker News отметил [73], что для этого необходимо участвовать в конкурсах и соревнованиях. Kaggle [74] и ChaLearn [75] – это платформы для исследователей, где можно попробовать свои силы, участвуя в различных состязаниях. Здесь [76] вы найдете примеры кода для конкурса Kaggle. Еще вариант: HackerRank [77].
Послушайте и почитайте, что победители конкурсов Kaggle говорят о предложенных ими решениях. Например, почитайте блог [78] «No Free Hunch».
Конкурсы или состязания лишь один из способов попрактиковаться. Вы можете начать проводить исследования:
Подробнее о научном методе вы можете узнать здесь [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/
Нажмите здесь для печати.