Как бесплатно изучить науку о данных

Полный путь обучения, включая ресурсы, которые не будут стоить вам ни цента

Средняя стоимость получения степени магистра в традиционных учебных заведениях обойдется вам в сумму от 30 000 до 120 000 долларов. Даже программы на получение степени в области науки о данных в Интернете не дешевы и стоят минимум 9 000 долларов. Так что же делать, если вы хотите изучать науку о данных, но не можете себе этого позволить?

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

Учебная программа будет состоять из 3 основных частей, технических навыков, теории и практического опыта. Я буду включать ссылки на бесплатные ресурсы по каждому элементу обучения, а также буду включать некоторые ссылки на дополнительные «недорогие» варианты. Поэтому, если вы хотите потратить немного денег на ускорение обучения, вы можете добавить эти ресурсы в учебную программу. Я включу предполагаемую стоимость каждого из них.

Технические навыки

Первая часть учебной программы будет посвящена техническим навыкам. Я рекомендую сначала изучить их, чтобы вы могли применить сначала практический подход, а не сначала изучать математическую теорию. Python на сегодняшний день является наиболее широко используемым языком программирования, используемым в науке о данных. В опросе Kaggle Machine Learning and Data Science, проведенном в 2018 году, 83% респондентов заявили, что используют Python ежедневно. Поэтому я бы рекомендовал сосредоточиться на этом языке, но также потратить немного времени на другие языки, такие как R.

Основы Python

Прежде чем вы сможете начать использовать Python для науки о данных, вам необходимо получить базовое представление об основах, лежащих в основе этого языка. Итак, вы захотите пройти вводный курс Python. Есть много бесплатных, но мне больше всего нравятся программы Codeacademy, поскольку они включают в себя практическое программирование в браузере.

Я бы посоветовал пройти вводный курс для изучения Python. Это охватывает базовый синтаксис, функции, поток управления, циклы, модули и классы.

Анализ данных с помощью Python

Затем вы захотите получить хорошее представление об использовании Python для анализа данных. Для этого есть ряд хороших ресурсов.

Для начала я предлагаю пройти хотя бы бесплатные части пути обучения аналитика данных на dataquest.io. Dataquest предлагает полные схемы обучения для аналитиков данных, специалистов по данным и инженеров данных. Довольно много контента, особенно на пути аналитика данных, доступно бесплатно. Если у вас есть деньги, которые можно потратить на обучение, я настоятельно рекомендую потратить их на оплату нескольких месяцев премиальной подписки. Я прошел этот курс, и он дал фантастические знания основам науки о данных. Мне потребовалось 6 месяцев, чтобы пройти путь исследователя данных. Цена варьируется от 24,50 до 49 долларов в месяц в зависимости от того, платите вы ежегодно или нет. Лучше приобрести годовую подписку, если вы можете себе это позволить.

Python для машинного обучения

Если вы решили оплатить полный курс по науке о данных на Dataquest, тогда вы будете хорошо разбираться в основах машинного обучения с помощью Python. Если нет, то есть много других бесплатных ресурсов. Я бы сосредоточился на scikit-learn, который на сегодняшний день является наиболее часто используемой библиотекой Python для машинного обучения.

Когда я учился, мне посчастливилось посетить двухдневный семинар, проводимый Андреасом Мюллером, одним из основных разработчиков scikit-learn. Однако он опубликовал все материалы из этого и других курсов в этом репозитории Github. Они состоят из слайдов, заметок к курсу и записных книжек, с которыми вы можете работать. Я определенно рекомендую проработать этот материал.

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

SQL

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

Codeacamdemy предлагает бесплатное введение в Курс SQL. Опять же, это очень практично при полном кодировании в браузере. Если вы также хотите узнать о запросах к базе данных в облаке, тогда Google Cloud BigQuery очень доступен. Существует бесплатный уровень, поэтому вы можете бесплатно опробовать запросы, широкий спектр общедоступных наборов данных для тестирования и очень хорошую документацию.

R

Чтобы быть разносторонним специалистом по данным, неплохо было бы немного диверсифицироваться, используя только Python. Поэтому я бы посоветовал также пройти вводный курс в R. Codeacademy и пройти вводный курс по их бесплатному тарифному плану. Здесь, вероятно, стоит отметить, что, как и в случае с Dataquest, Codeacademy также предлагает полный план обучения науке о данных как часть своей профессиональной учетной записи (это стоит от 31,99 до 15,99 долларов в месяц, в зависимости от того, сколько месяцев вы платите вперед). Я лично считаю, что курс Dataquest намного более всеобъемлющий, но он может оказаться немного дешевле, если вы хотите следовать по пути обучения на единой платформе.

Программная инженерия

Хорошая идея - получить представление о навыках и передовых методах разработки программного обеспечения. Это поможет сделать ваш код более читаемым и расширяемым как для вас, так и для других. Кроме того, когда вы начнете запускать модели в производство, вам потребуется уметь писать качественный, хорошо протестированный код и работать с такими инструментами, как контроль версий.

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

Руководство по вкладу scikit-learn, хотя и написано для облегчения внесения вклада в библиотеку, на самом деле очень хорошо описывает передовой опыт. Он охватывает такие темы, как Github, модульное тестирование и отладка, и все написано в контексте приложения для анализа данных.

Глубокое обучение

Для всестороннего введения в глубокое обучение, я не думаю, что вы можете найти что-то лучшее, чем совершенно бесплатный и без рекламы fast.ai. Этот курс включает введение в машинное обучение, практическое глубокое обучение, вычислительную линейную алгебру и введение кода в обработку естественного языка. Все их курсы основаны на практическом подходе, и я их очень рекомендую.

Теория

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

В этом разделе я представлю ключевые фундаментальные элементы теории, которые вам следует изучить наряду с более практическими элементами.

Ханская академия бесплатно охватывает практически все перечисленные ниже концепции. Вы можете адаптировать предметы, которые вы хотели бы изучать, когда вы зарегистрируетесь, и тогда у вас будет хорошая индивидуальная учебная программа для этой части пути обучения. Установив все флажки ниже, вы получите обзор большинства элементов, которые я перечислил ниже.

Математика

Исчисление

Исчисление определяется Википедией как математическое исследование непрерывных изменений. Другими словами, исчисление может находить закономерности между функциями, например, в случае производных, оно может помочь вам понять, как функция изменяется с течением времени.

Многие алгоритмы машинного обучения используют исчисление для оптимизации производительности моделей. Если вы хоть немного изучили машинное обучение, то наверняка слышали о градиентном спуске. Это функционирует путем итеративной корректировки значений параметров модели, чтобы найти оптимальные значения для минимизации функции стоимости. Градиентный спуск - хороший пример того, как исчисление используется в машинном обучении.

Что тебе нужно знать:

Деривативы

  • Геометрическое определение
  • Вычисление производной функции
  • Нелинейные функции

Правило цепочки

  • Составные функции
  • Производные композитных функций
  • Множественные функции

Градиенты

  • Частные производные
  • Направленные производные
  • Интегралы

Линейная алгебра

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

Что вам нужно изучить:

Векторы и пробелы

  • Векторы
  • Линейные комбинации
  • Линейная зависимость и независимость
  • Векторные точечные и кросс-произведения

Матричные преобразования

  • Функции и линейные преобразования
  • Умножение матриц
  • Обратные функции
  • Транспонировать матрицу

Статистика

Вот список ключевых понятий, которые вам необходимо знать:

Описательная / сводная статистика

  • Как обобщить выборку данных
  • Разные типы раздач
  • Асимметрия, эксцесс, центральная тенденция (например, среднее, медиана, мода)
  • Меры зависимости и отношения между переменными, такими как корреляция и ковариация

Дизайн эксперимента

  • Проверка гипотезы
  • Отбор проб
  • Тесты значимости
  • Случайность
  • Вероятность
  • Доверительные интервалы и двухвыборочный вывод

Машинное обучение

  • Заключение о наклоне
  • Линейная и нелинейная регрессия
  • Классификация

Практический опыт

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

Однако при осознанной практике цель состоит не только в том, чтобы раскрыть свой потенциал, но и в его наращивании, чтобы сделать возможным то, что раньше было невозможно. Это требует сложного гомеостаза - выхода из зоны комфорта - и принуждения вашего мозга или тела к адаптации , Андерс Эрикссон, Пик: секреты новой науки опыта

Каггл и др.

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

Помимо Kaggle, существуют и другие площадки для соревнований по машинному обучению, в том числе Analytics Vidhya и DrivenData.

Репозиторий машинного обучения UCI

Репозиторий машинного обучения UCI - большой источник общедоступных наборов данных. Вы можете использовать эти наборы данных для создания собственных проектов данных, которые могут включать модели анализа данных и машинного обучения, вы даже можете попробовать создать развернутую модель с веб-интерфейсом. Хорошая идея - хранить ваши проекты где-нибудь в открытом доступе, например, на Github, так как это может создать портфолио, демонстрирующее ваши навыки, которые можно будет использовать в будущих заявках на вакансии.

Вклад в открытый исходный код

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

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

Спасибо за прочтение!

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