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

  1. отсутствие навыков программирования и взлома
  2. незнание теоретических принципов машинного обучения

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

Вверху моего списка стоит Машинное обучение для хакеров. Одна из причин, по которой мне нравится эта книга, заключается в том, что это на самом деле учебник по машинному обучению, предназначенный для хакеров. Он предполагает только самые базовые навыки программирования на R (которые могут быть получены новичками в течение нескольких недель) и позволяет читателю чувствовать себя комфортно с основами машинного обучения - достаточно, чтобы они могли извлечь базовые идеи из небольших наборов данных. Остальная часть моего списка содержит ресурсы, которые полностью соответствуют духу Машинное обучение для хакеров. Чтобы ресурс попал в этот список, он должен:

  1. это должно быть о машинном обучении или программировании,
  2. быть учебным ресурсом, т.е. он должен содержать учебный материал. Он должен особенно содержать код и теории. Так что исследовательские статьи и документация по API отсутствуют.

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

Обучение машинному обучению и его отраслям

  1. Будет ли это Python?: Перевод статьи Машинное обучение для хакеров на Python. Идеально подходит для людей, которые хотят видеть сценарии Python и записные книжки IPython для материала в книге.
  2. Понимание случайных лесов: на самом деле это докторская диссертация Жиля Луппа. Он великодушно сделал репозиторий на GitHub, содержащий скрипты Python, сопровождающие его диссертацию. Сценарии очень хорошо организованы по главам диссертации и очень хорошо аннотированы. Саму диссертацию можно найти здесь.
  3. Думай о Байесе: очень читаемая книга Аллена Дауни о байесовских методах. Цитата из обзора книги Эндрю Гельмана:
    Она очень удобочитаема и, что удивительно, практически не пересекается с байесовским анализом данных. Дауни обсуждает множество мелких проблем в разговорной манере. В некотором смысле это похоже на учебник по статистике старого стиля (хотя и с программным, а не математическим оттенком), поскольку примеры созданы для простоты, а не реализма. Все примеры кода тоже написаны на Python.
  4. Байесовские методы для хакеров: это замечательная книга / репозиторий по байесовским методам в Python, уступающая только предыдущей статье. Изучение этого ресурса гарантирует, что у вас есть все практические знания байесовских методов, которые могут вам понадобиться. Эти записные книжки также прекрасно используют библиотеку PyMC.
  5. PyLearn2 Notebook Tutorials: это набор очень ограниченных, но очень хорошо написанных руководств по некоторым основам глубокого обучения и нейронных сетей, в частности регрессии softmax, MLP, CNN и автоэнкодеров.
  6. Stanford CS231n: Это курс Стэнфордского университета по сверточным сетям для визуального распознавания, и у них есть много общедоступных материалов - на GitHub и YouTube.
  7. Учебники по коду глубокого обучения: это супер полный список статей и эссе по глубокому обучению и сопутствующему коду. Этот курс начинается с простых вещей, таких как логистическая регрессия, и заканчивается многими популярными архитектурами глубокого обучения.
  8. Машинное обучение - CS - Оксфордский университет: хороший курс для обучения машинному обучению через Lua и Torch.
  9. Peekaboo: блог Андреаса Мюллера, в котором он пишет о компьютерном зрении и научном обучении.
  10. Блог YHat: yHat - поставщик платформы для поддержки приложений для обработки данных. У них есть собственный API, который они продолжают демонстрировать в своих сообщениях в блогах. Это скрывает большую сложность лежащих в основе аналитических процессов, но именно это делает его идеальным для обучения. Вы вряд ли увязнете в технических тонкостях реализации, когда захотите провести анализ.
  11. Python для обработки сигналов от Jose Unpingco: этот репозиторий содержит записные книжки IPython, прилагаемые к учебнику Python для обработки сигналов. К счастью, вам не нужен учебник, чтобы просматривать тетради, поскольку они довольно самодостаточны и сложны математически.
  12. Johnmyleswhite.com: веб-сайт Джона Майлза Уайта, одного из авторов Машинное обучение для хакеров и разработчика Джулии. Он пишет о статистике и в своих сообщениях в основном использует R и Julia. Он очень хороший писатель, и его посты освежающе проницательны.
  13. Нейронные сети для машинного обучения: курс Coursera Джеффри Хинтона. Это очень хорошее введение в нейронные сети. Курс, в особенности не обремененный математикой, дает очень высокий обзор нейронных сетей.

Программное обеспечение и библиотеки для машинного обучения

  1. Заметки к лекциям SciPy: Как говорится на странице, Один документ для изучения чисел, естественных наук и данных с помощью Python. Достаточно прилежное изучение этих заметок даст читателю очень хорошее понимание NumPy, SciPy и некоторых scikits, которые помогут вам укротить ваши данные.
  2. Scikit-Learn Tutorials: я не уверен, принадлежит ли эта статья к этому разделу - это определенно гораздо больше, чем просто учебник по scikit-learn, так же как Машинное обучение для хакеров - это скорее R руководство. Scikit-learn, вероятно, является наиболее активно разрабатываемой и поддерживаемой библиотекой машинного обучения, о которой я знаю. Это, безусловно, самый современный уровень машинного обучения в экосистеме Python, и их документация достаточно богата, чтобы удовлетворить практически все практические варианты использования машинного обучения. (Кроме глубокого обучения)
  3. Руководство пользователя Scikit-Image: это не совсем относится к машинному обучению, но, учитывая повсеместную природу приложений компьютерного зрения, стоит развить хорошее понимание основ обработки изображений. Это руководство пользователя начинается с NumPy и охватывает множество наиболее распространенных концепций обработки изображений.
  4. Приступая к работе со статистическими моделями: это хорошее практическое руководство по подгонке статистической модели к набору данных, которое распространяется на множество сложных методов статистического моделирования.
  5. Theano Tutorials: эти уроки очень тесно связаны с 7-й записью в предыдущем разделе.
  6. Записные книжки Донна Мартина IPython: это огромный репозиторий GitHub, который содержит примеры записных книжек для ряда различных библиотек науки о данных, служб API и пакетов глубокого обучения.

Разные ресурсы

  1. Светящийся питон: как говорится в самом блоге, набор небрежных фрагментов для научных вычислений и визуализации данных на Python. Я считаю, что компонент визуализации данных в этой коллекции очень хорош. Я многое узнал о matplotlib только из этого блога.
  2. The Endeavour: это блог Джона Д. Кука. Джон - прикладной математик, который консультирует клиентов по самым разным дисциплинам, и он пишет большую часть своего кода на Python. В этом блоге всегда происходит что-то интересное, и вы можете быть уверены, что сможете воспроизвести это на Python. У Джона также есть много интересных аккаунтов в Твиттере: http://www.johndcook.com/blog/twitter_page/
  3. Учебное пособие Клива Молера по анализу Фурье для MATLAB: очень практичное и легкое для понимания введение о том, как выполнять базовый анализ Фурье в MATLAB.
  4. Линейная алгебра от MIT OCW: это классический курс, который ведет легендарный Гилберт Стренг.