Найти в Дзене
Dark_Hack

Какие алгоритмы и структуры данных нужно освоить начинающему специалисту по Data Science — отвечают эксперты

Привет, c вами DARK_HACK Data Science — обширная сфера, поэтому начинающим специалистам может быть сложно понять, что им нужно изучать. Узнаём у экспертов, на какие алгоритмы и структуры данных нужно обратить внимание в первую очередь. Для специалиста по Data Science важно знать прежде всего алгоритмы и структуры данных, которые применяются в алгоритмах машинного обучения. Например, для того, чтобы знать, как устроены решающие деревья, нужно знать, как создать класс узла дерева, а затем построить само дерево, используя рекурсию. Если специалист по Data Science решает оптимизационные задачи или задачи, связанные с геоданными, социальными сетями, то нужно знать соответствующие графовые алгоритмы, например алгоритм Дейкстры, алгоритмы поиска в глубину и ширину. Для специалистов, работающих с текстовым поиском, полезно знать алгоритм Кнута-Морриса-Пратта (поиск подстроки в строке), а для тех, кто работает в области NLP, хорошо бы знать алгоритм Хаффмана, использующийся, в частности, в w
Оглавление

Привет, c вами DARK_HACK

Data Science — обширная сфера, поэтому начинающим специалистам может быть сложно понять, что им нужно изучать. Узнаём у экспертов, на какие алгоритмы и структуры данных нужно обратить внимание в первую очередь.

@Алгоритмы
@Алгоритмы

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

Если специалист по Data Science решает оптимизационные задачи или задачи, связанные с геоданными, социальными сетями, то нужно знать соответствующие графовые алгоритмы, например алгоритм Дейкстры, алгоритмы поиска в глубину и ширину.

Для специалистов, работающих с текстовым поиском, полезно знать алгоритм Кнута-Морриса-Пратта (поиск подстроки в строке), а для тех, кто работает в области NLP, хорошо бы знать алгоритм Хаффмана, использующийся, в частности, в word2vec.

Для инженера машинного обучения — специалиста, который не только применяет модели машинного обучения, но и внедряет их, а иногда и модифицирует, важно знать всё те же алгоритмы, которые должен знать обычный программист, начиная от простейших (сортировки, обход деревьев) до специфичных для Data Science.

Преподаватели вузов говорят о том, что из 100 поступивших на IT-факультеты до выпуска доходят не более 50 человек. При этом по профессии начинает работать едва ли половина из них. Эксперты онлайн-университета «Нетология» отмечают, что прирост блока Data Science в онлайн-обучении в 2019 году составил целых 700 %. Это сигнализирует о том, что в условиях высокой конкуренции специалисту в DS нужно обладать обширным набором знаний для успешной самореализации.

Алгоритмы и структуры данных — это больше теоретическая основа для работы программистом. Так, в «джентльменский набор» программиста входит: асимптотическая оценка сложности, быстрая сортировка, хеш-таблицы, сбалансированные деревья поиска, алгоритмы на графах и знание NP-полных задач.

Data Science-специалисту как минимум надо овладеть следующим инструментарием и знаниями:

  • Основы программирования на Python + Python для анализа данных. Это и управляющие структуры, и умение написать небольшую процедуру, например для очистки данных, и базовые знания Pandas, NumPy.
  • Визуализация данных для интерпретации результатов и обсуждения с бизнес-заказчиками. Для начала можно использовать matplotlib — библиотеку на языке Python для визуализации данных двумерной 2D и 3D-графикой — она наиболее распространённая.
  • Математические основы: работа с линейными операторами (матрицами).
  • Матанализ и методы оптимизации (например градиентный спуск, метод наименьших квадратов).
  • Знание статистики и теории вероятности. Тут важна теорема Байеса и понимание, как проверять статистические гипотезы.
  • Умение анализировать временные ряды (метод скользящего среднего).
  • Оценка качества алгоритмов (схемы валидации и метрики, например HoldOut, K-Fold, метрики: MSE, F1-Score, ROC-AUC). Это нужно, чтобы проанализировать, правильно ли работают налаженные вами процессы и насколько они эффективны.
  • Основные модели машинного обучения (это logistic regression, random forest, desicion tree, XGBoost, SVM, k-means). Применяются в зависимости от конкретной прикладной задачи, либо в ансамбле многоуровневой модели.
  • Deep learning и нейронные сети — Back Propagation, Pytorch, основные архитектуры сетей. Начать можно со свёрточных сетей вроде AlexNet, так как они самые простые для выполнения задач классификации.
  • Оценка эффективности моделей в реальных бизнес-задачах, умение коррелировать внутренние метрики с бизнес-показателями.
  • Сложно будет и без soft-skills: ML-модели строятся под конкретные цели заказчиков, поэтому важно уметь объяснить клиенту — либо своему project-менеджеру — мотивацию своих действий и решений, чтобы выстроить грамотный «мостик» между работой программиста и задачами бизнеса.

Эксперты отмечают Data science среди необходимых в 2020 году навыков, так как 14 % всех рабочих задач могут быть автоматизированы в ближайшие годы. Хорошему специалисту DS нужны не только диджитал-навыки и высокий уровень понимания процессов, но и soft skills для успешной коммуникации с командой и заказчиками.

Статья была написана каналом - DARK_HACK

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