Я изучаю машинное обучение уже около полугода и чем больше узнаю, тем больше понимаю, как многого я не знаю.
По мере того, как я продвигался в ML, выявлялись новые темы, которые сначала я думал, что они совершенно разные, но вскоре я понял, что когда вы говорите о науке о данных, она охватывает несколько тем, которые необходимы для достижения успеха в этой области. Ниже приведен список широких тем, в которых должен разбираться хороший специалист по данным.
- Визуализация данных
- Информатика
- Математика
- Статистика
- Машинное обучение
- Экспертиза домена
- Коммуникация
Что вообще такое наука о данных?
Наука о данных — это междисциплинарная область, которая использует научные методы, процессы, алгоритмы и системы для извлечения знаний и идей из структурированных и неструктурированных данных, а также для применения знаний и практических идей из данных в широком диапазоне областей применения. — Википедия
Насколько я понимаю, наука о данных развилась из двух разных областей, информатики и статистики, и в результате многие термины используются взаимозаменяемо. Это может сбить с толку новичка, и ему может быть сложнее начать работу в этой области.
Приведенный выше список, на мой взгляд, содержит наиболее важные темы, которые пересекаются с CS и статистикой и которые необходимы для специалиста по качественным данным. В следующих нескольких абзацах я попытаюсь объяснить каждую из этих тем, что они означают, почему они важны и, что наиболее важно, некоторые ресурсы, которые помогут вам начать работу с ними.
Я также хотел бы упомянуть, что многие из этих идей взяты из книги Кэти О’Нил и Рэйчел Шутт «Doing Data Science» (я очень рекомендую эту книгу).
Визуализация данных
Проще говоря, визуализация данных — это задача графического представления информации и данных с помощью графиков, карт, диаграмм и вообще всего, что передает информацию.
Это может быть что-то такое простое, как построение линейного графика изменения цены с течением времени, или что-то столь же художественное, как Машина Шекспира.
Особенно сейчас, в эпоху больших данных, визуализация данных имеет решающее значение. Это позволяет нам быстро увидеть закономерности, тенденции и выбросы в данных, что без визуализации было бы невозможно даже с относительно небольшим набором данных.
Данные и визуальные эффекты должны работать вместе, и есть искусство сочетать отличный анализ с отличным повествованием. — Руководство для начинающих по визуализации данных: определение, примеры и учебные ресурсы
Чтобы быть более точным, вы используете визуализацию данных почти на каждом этапе процесса машинного обучения. От исследовательского анализа данных до разработки функций и оценки модели визуализация позволит вам понять данные и адаптировать свой процесс для получения лучшего результата.
Ниже я перечислю некоторые очень полезные статьи, веб-сайты и книги, которые помогут вам начать работу с визуализацией данных:
- https://datavizcatalogue.com/ — Список множества различных карт, графиков и диаграмм с примерами и описаниями.
- https://www.welcometothejungle.com/en/articles/btc-data-visualization-machine-learning — визуализация данных, касающихся машинного обучения.
- https://www.analyticsvidhya.com/blog/2015/07/guide-data-visualization-r/ — Практическое руководство по визуализации с использованием R.
- Элементы графических данных Уильяма Кливленда.
Информатика
Информатика — это изучение алгоритмических процессов, вычислительных машин и самих вычислений. Как дисциплина информатика охватывает целый ряд тем: от теоретических исследований алгоритмов, вычислений и информации до практических вопросов реализации вычислительных систем в аппаратном и программном обеспечении. — Википедия
Информатика — очень широкая тема, и, к счастью, не вся она нужна для науки о данных.
В основном, когда мы говорим о CS для науки о данных, мы говорим о ваших навыках разработки программного обеспечения, о том, насколько хорошо вы кодируете, и о процессе разработки программного обеспечения в соответствии с высокими (удобочитаемыми) стандартами. Кроме того, вы можете перейти к подтемам, которые также могут быть очень полезными, например, к оптимизации и интеллектуальному анализу данных.
Для новичка, я думаю, очень важно получить МНОГО практики в программировании. Я бы рекомендовал python для основного процесса машинного обучения (создание моделей), а затем R для EDA и другой визуализации данных.
Сосредоточьтесь на воспроизводимости кода. Наука о данных включает в себя множество экспериментов, поэтому она сэкономит вам много времени и головных болей, если вы с самого начала научитесь создавать код, который можно легко использовать повторно. Читаемость также очень важна, вы (и, возможно, другие) будете просматривать свой код снова и снова, поэтому крайне важно сделать его легко понятным.
Ниже я перечислю некоторые очень полезные статьи, веб-сайты и книги, которые помогут вам начать знакомство с информатикой:
- https://www.w3schools.com/python/python_intro.asp#:~:text=Python%20has%20a%20simple%20syntax, прототипирование%20can%20be%20very%20quick. — Основы питона.
- https://machinelearningmastery.com/machine-learning-in-python-step-by-step/ — Пошаговое руководство по машинному обучению в python.
- https://www.tutorialspoint.com/r/index.htm — основы R.
- Изучаем Python, Марк Лутц и Дэвид Ашер
Математика
Вероятно, самая важная часть математики, необходимая для науки о данных, — это статистика, но она рассматривается в следующем разделе.
Теперь вы будете рады услышать, что изучение математики для науки о данных — это не первое, что вы хотите сделать, на самом деле, это может быть одним из последних. Вы определенно должны сначала сосредоточиться на практическом подходе и сосредоточиться на изучении науки о данных сверху вниз вместо классического подхода снизу вверх.
Я бы посоветовал получить хорошую подготовку в практической части, и по мере вашего продвижения вы заметите пробелы в теоретической части, и тогда изучение математики будет не только проще, но и будет иметь гораздо больше смысла, поскольку вы сможете вписаться в нее. своими практическими знаниями.
По причинам, упомянутым выше, я не буду углубляться в эту тему, так как этот блог ориентирован на новичков, вместо этого я предоставлю вам несколько полезных ресурсов, которые вы можете изучить, когда почувствуете, что готовы.
- https://towardsdatascience.com/the-mathematics-of-machine-learning-894f046c568 — Хорошее место для начала.
- https://towardsdatascience.com/mathematics-for-data-science-e53939ee8306 — много хороших ресурсов.
- Линейная алгебра и ее приложения Гилберта Стрэнга
Однако я хотел бы сказать, что если вы немного заржавели в математике, вам следует пройтись по основам, просто чтобы вернуться в строй. Прочитайте основы исчисления и линейной алгебры. Вам не нужно иметь четкое представление об этих темах в начале, но неплохая идея освежить их в памяти по мере развития практических навыков.
Статистика
Статистика — это дисциплина, которая занимается сбором, организацией, анализом, интерпретацией и представлением данных. Применяя статистику к научной, промышленной или социальной проблеме, принято начинать с изучения статистической совокупности или статистической модели. — Википедия
Сначала я хотел бы обратить внимание на неправильное представление о разнице между статистикой и машинным обучением, поскольку часто спорят о том, о чем эти две темы на самом деле. Ниже лучшее объяснение, которое я нашел:
Машинное обучение — это все о результатах, это, вероятно, работа в компании, где ваша ценность определяется исключительно вашей производительностью. Принимая во внимание, что статистическое моделирование больше связано с поиском взаимосвязей между переменными и значимостью этих взаимосвязей, а также с прогнозированием. — Реальная разница между статистикой и машинным обучением
Как и в случае с математикой, статистика не должна быть вашим приоритетом в начале пути. Тем не менее, основы довольно важны и будут очень полезны, чтобы помочь вам понять данные и ваши модели, что, в свою очередь, поможет вам улучшить их.
Здесь я собираюсь пройтись по списку концепций, которые вы должны иметь базовое понимание. Я хочу подчеркнуть, что основы важны, но переход к более сложным темам следует делать тогда, когда вы чувствуете в них потребность, иначе вам будет трудно связать концепции с практическими приложениями, и вы можете разочароваться в этой теме.
- Вероятность — пожалуй, самая важная тема статистики. Понять основы не составит труда, поэтому я настоятельно рекомендую вам сразу же приступить к делу (хорошее место для начала)
- Распределения вероятностей. Прежде чем перейти к этому, освежите в памяти вероятность, здесь — отличная статья, чтобы изложить основные концепции.
- Проверка гипотез. Как только вы хорошо разберетесь с распределениями вероятностей, вы сможете ознакомиться с основами проверки гипотез здесь.
Статистика — очень широкая тема, и она очень полезна для науки о данных. Вышеупомянутые темы будут отличным началом, однако, если вы готовы к чему-то большему, ниже приведены еще несколько ресурсов, которые помогут вам:
- https://medium.com/pythoneers/statistics-in-ml-3d70b09d72b7 — Список полезных тем статистики для ML.
- https://elitedatascience.com/learn-statistics-for-data-science — отличное руководство для самостоятельного изучения статистики.
- Статистический вывод Джорджа Казеллы и Роджера Л. Бергера
Машинное обучение
Машинное обучение — это изучение компьютерных алгоритмов, которые автоматически улучшаются благодаря опыту и использованию данных. Это рассматривается как часть искусственного интеллекта. — Википедия
Во-первых, я хотел бы отметить, что я использовал термины «машинное обучение» и «наука о данных» несколько взаимозаменяемо. Это связано с тем, что в некоторых случаях они означают очень похожие вещи (в результате разработки статистиками и учеными-компьютерщиками по отдельности), но не в этом случае. В этом разделе, когда я буду говорить о машинном обучении (ML), я буду говорить о процессе ML.
Каждая часть процесса ML имеет подмножество тем, которые входят в них, в свою очередь, у этих тем есть другое подмножество, и так далее. В начале очень легко запутаться, поэтому я настоятельно рекомендую следующий подход.
- Во-первых, прочитайте краткое описание каждого шага в этом процессе. (хороший ресурс можно найти здесь)
- Получите базовое представление о типах машинного обучения. (описание найдено здесь)
- Следуйте инструкциям от начала до конца по базовому набору данных. (здесь отличный туториал по питону)
- Примите участие в вводных соревнованиях Kaggle, в любое время, когда вы застряли, вы можете просмотреть чью-то записную книжку или получить помощь от сообщества. (рекомендую начать с конкурса Титаник)
Отсюда вы можете углубиться в каждую тему, вы должны сосредоточиться на практическом аспекте, а не на теоретическом.
- Предварительная обработка данных — очистка и подготовка данных к использованию. ("ресурс")
- Разработка функций — большая и важная тема, но не торопитесь, и вы справитесь с ней без проблем. ("ресурс")
- Обучение / выбор модели — здесь вы найдете лучший алгоритм для использования. ("ресурс")
- Оценка — тема выяснения, хороша ли ваша модель. ("ресурс")
Я намеренно не включил сбор данных и развертывание модели. Это связано с тем, что в начале вы будете в основном работать с предварительно собранными наборами данных, и вам следует сосредоточиться на создании хороших моделей, прежде чем беспокоиться о развертывании.
Чтобы закончить этот раздел, вот две замечательные книги, которые помогут вам начать:
- Основы машинного обучения, Мехриар Мори, Афшин Ростамизаде и Амит Талвалкар.
- Введение в машинное обучение (адаптивные вычисления и машинное обучение) Этема Алпайдина
Экспертиза домена и общение
Я объединил эти две темы, поскольку они говорят сами за себя.
Экспертиза предметной области — это, по сути, ваши знания в области проблемы. Например, когда вы работаете с набором данных о больных раком и пытаетесь предсказать, есть ли у кого-то рак на основе некоторых переменных, то экспертность в предметной области будет относиться к тому, как много вы знаете о раке и связанных с ним медицинских темах. Некоторые люди утверждают, что для машинного обучения знание предметной области не важно, это люди, которые обычно предпочитают решения «черного ящика», а не способность объяснить, почему ваша модель сделала предсказания, которые она сделала.
Коммуникация, частично связанная с визуализацией данных, является важным навыком. Это особенно верно, если вы собираетесь перейти в область науки о данных на профессиональном уровне или хотите быть активным членом сообщества. Общение в основном относится к объяснению ваших открытий другим, это может быть с помощью сводной статистики, наглядных пособий или даже просто путем написания эссе или выступления. Мой главный совет для этого — убедиться, что вы сами полностью понимаете, что вы пытаетесь сообщить.
Вывод
В завершение я хочу дать вам полезный совет, который я недавно обнаружил, чтобы помочь вам отслеживать ваши успехи. Это очень субъективно, но если вы честны с собой, это может быть полезным руководством.
Совет состоит в том, чтобы нарисовать гистограмму вашего текущего уровня навыков по каждой теме, а также целевого уровня, которого вы хотите достичь за определенный период времени. Ниже мой после примерно 6 месяцев изучения ML.
Здесь используется шкала от 0 до 10, а цели устанавливаются на год вперед.
Я надеюсь, что эта статья была полезным руководством, чтобы лучше понять, куда вам нужно двигаться, чтобы стать великим специалистом по данным. Я буду выпускать более подробные блоги по каждой из этих тем в течение года, так что следите за обновлениями.