Когда я только начал своё путешествие к науке о данных, я потратил много времени на то, чтобы понять, с чего начать, что я должен узнать в первую очередь и какие ресурсы должен использовать. За последние два года я узнал несколько вещей, о которых хотел знать раньше, например о том, стоит ли сначала сосредоточиться на программировании или статистике, какие ресурсы я должен использовать для изучения новых навыков, как я должен подходить к изучению этих навыков и так далее. Таким образом, эта статья написана, чтобы дать направления и идеи для тех, кто изучает Data Science.
Оглавление:
Введение
1. Математика и статистика
2. Основы программирования
3. Алгоритмы и понятия машинного обучения
4. Проекты в области дата-сайнс
Введение
Я предполагаю, что как начинающий дата-сайентист вы захотите полностью понять концепции и детали различных алгоритмов машинного обучения, понятия дата-сайнс и так далее.
Поэтому я рекомендую вам начать с базы, прежде чем вы даже посмотрите на алгоритмы машинного обучения или приложения для анализа данных. Если у вас нет базового понимания математического анализа и интегралов, линейной алгебры и статистики, вам будет трудно понять лежащую в основе различных алгоритмов механику. Точно так же, если у вас нет базового понимания Python, вам будет трудно воплотить свои знания в реальных приложениях. Ниже приведен порядок тем, которые я рекомендую изучить:
- Математика и статистика.
- Основы программирования.
- Алгоритмы и понятия машинного обучения.
1. Математика и статистика
Как и во всём остальном, вы должны изучить основы, прежде чем приступать к интересным вещам. Поверьте, мне было бы гораздо легче, если бы я начал с изучения математики и статистики, прежде чем приступать к каким-то алгоритмам машинного обучения. Три общие темы, которые я рекомендую посмотреть, — это математический анализ/интегралы, статистика и линейная алгебра (без какого-то порядка).
Интегралы
Интегралы важны, когда речь заходит о распределении вероятностей и тестировании гипотез. Хотя вам не нужно быть экспертом, в ваших же интересах изучить основы интегралов. Первые две статьи предназначены для тех, кто хочет получить представление о том, что такое интегралы, или для тех, кому нужно просто освежить знания. Если вы абсолютно ничего не знаете об интегралах, я рекомендую вам пройти курс Академии Хана. Наконец, вот ссылки на ряд практических задач, чтобы отточить навыки:
- Введение в интегралы (статья).
- Ускоренный курс по интегралам (статья).
- Академия Хана: интегральное исчисление (курс).
- Практические вопросы (начните с блока 6).
Статистика
Если и есть какая-то тема, на которой вы должны сосредоточиться, то это статистика. В конце концов, дата-сайентист — это действительно современный статистик, а машинное обучение — это современный термин для статистики. Если у вас есть время, я рекомендую вам пройти курс Джорджии Тек под названием «Статистические методы», который охватывает основы вероятности, случайные величины, распределение вероятностей, тестирование гипотез и многое другое. Если у вас нет времени посвятить себя этому курсу, я настоятельно рекомендую посмотреть видео Академии Хана по статистике.
Линейная алгебра
Линейная алгебра особенно важна, если вы хотите погрузиться в глубокое обучение, но даже тогда это полезно знать для других фундаментальных концепций машинного обучения, таких как анализ основных компонентов и рекомендательные системы. Для освоения линейной алгебры я также рекомендую Академию Хана!
2. Основы программирования
Точно так же, как важно фундаментальное понимание математики и статистики, фундаментальное понимание программирования сделает вашу жизнь намного проще, особенно когда речь заходит о реализации. Поэтому я рекомендую вам потратить время на изучение базовых языков — SQL и Python, прежде чем погружаться в алгоритмы машинного обучения.
SQL
Не важно, с чего начинать, но я начал бы с SQL. Почему? Его легче изучить и полезно знать, если вы заняты в компании, которая работает с данными, даже если вы не дата-сайентист.
Если вы новичок в SQL, я рекомендую ознакомиться с туториалами Mode по SQL, так как они очень лаконичны и подробны. Если же вы хотите изучить более продвинутые понятия, посмотрите список ресурсов, где вы можете изучить продвинутый SQL.
Ниже приведены несколько ресурсов, которые вы можете использовать для практики SQL:
Python
Я начинал с Python и, вероятно, останусь с этим языком до конца жизни. Он далеко впереди, с точки зрения вкладов в Open Source, и его легко изучить. Не стесняйтесь обращаться к R, если захотите, но у меня нет никаких мнений или советов относительно R. Я обнаружил, что изучение Python с помощью практики гораздо полезнее. Тем не менее, пройдя несколько краш-курсов Python, я пришёл к выводу, что этот курс наиболее полный (и при этом бесплатный!).
Pandas
Пожалуй, самая важная библиотека, которую нужно знать, — это Pandas, которая специально предназначена для манипулирования данными и их анализа. Ниже приведены два ресурса, которые должны ускорить ваше обучение. Первая ссылка — туториал о том, как использовать Рandas, а вторая ссылка содержит множество практических задач, которые вы можете решать, чтобы закрепить свои знания!
3. Алгоритмы и понятия машинного обучения
Если вы дошли до этой части статьи, это означает, что вы построили свой фундамент и готовы изучать интересные вещи. Эта часть разделена на две другие: алгоритмы машинного обучения и понятия машинного обучения.
Алгоритмы машинного обучения
Следующий шаг — изучить различные алгоритмы машинного обучения, как они работают и когда их использовать. Ниже приведён неполный список различных алгоритмов машинного обучения и ресурсов, которые вы можете использовать для изучения каждого из них.
- Линейная регрессия (Georgia Tech, StatQuest).
- Логистическая регрессия (StatQuest).
- K ближайшим соседям (MIT).
- Деревья решений (StatQuest).
- Наивный Байес (Теренс Шин, Луис Серрано).
- Метод опорных векторов (туториал SVM, Алиса Чжао).
- Нейронные сети (Теренс Шин).
- Случайные леса (StatQuest).
- AdaBoost (Теренс Шин, StatQuest).
- Градиентный бустинг (StatQuest).
- XGBoost (StatQuest).
- Метод главных компонент (StatQuest).
Понятия машинного обучения
Кроме того, есть несколько фундаментальных понятий машинного обучения, которые вы также захотите изучить. Ниже приведён (не исчерпывающий) список понятий, которые я настоятельно рекомендую изучить. Многие вопросы интервью основаны на этих темах!
- Регуляризация.
- Дилемма смещения — дисперсии.
- Матрица путаницы и соответствующие метрики.
- Площадь под кривой ROC и ROC (видео).
- Бутстрэп-выборка.
- Ансамблевое обучение, бэггинг и бустинг.
- Нормализация и стандартизация.
4. Проекты в области дата-сайнс
К этому моменту вы не только построите прочный фундамент, но и обретёте твёрдое понимание основ машинного обучения. Теперь пришло время поработать над личными сайд-проектами. Если вы хотите ознакомиться с некоторыми простыми примерами проектов дата-сайнс, посмотрите некоторые из моих проектов:
- Прогнозирование качества вина с помощью методов классификации (статья, Github).
- Визуализация данных о коронавирусе с помощью Plotly (статья, Github).
- Система рекомендаций фильмов с совместной работой фильтров (Github).
Вот список проектов в области Data Science, которые вы можете посмотреть, чтобы придумать интересный сторонний проект.
Я надеюсь, что этот пост даст вам направление и поможет в вашей карьере в области Data Science. Нет никакой серебряной пули, так что не стесняйтесь относиться к этому посту скептически, но я действительно верю, что изучение основ принесёт свои плоды в будущем. А промокод HABR — добавит 10% к скидке на обучение, отраженной на баннере.
- Frontend-разработчик
- Профессия Веб-разработчик
- Курс «Python для веб-разработки»
- Продвинутый курс «Machine Learning Pro + Deep Learning»
- Курс по Machine Learning
- Курс «Математика и Machine Learning для Data Science»
- Профессия Этичный хакер
- Разработчик игр на Unity
- Курс по JavaScript
- Профессия Java-разработчик
- C++ разработчик
- Курс по аналитике данных
- Курс по DevOps
- Профессия iOS-разработчик с нуля
- Профессия Android-разработчик с нуля
Автор: Picard