Написать пост

Хочу шарить в машинном обучении. Что нужно знать?

Аватар Никита Прияцелюк

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

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

Практика нашей компании показывает, что до 70% времени на проектах, связанных с машинными обучением, занимает этап подготовки данных. Специалистов, занимающихся работой с данными (или Data Scientist), умеющих анализировать и визуализировать данные, на рынке сейчас сильно не хватает.

Ситуация обусловлена двумя факторами. Во-первых, внезапно взлетевшем спросом на экспертов по обработке данных. Сейчас каждая компания, деятельность которой так или иначе затрагивает сферу ИТ, стремится нанять такого специалиста к себе в штат. Если зайти на HH.ru или любой другой сервис по подбору персонала, можно увидеть огромное количество открытых вакансий на позицию Data Scientist в различных компаниях. Кроме того, это одна из самых высокооплачиваемых работ. Как следствие рынок перегрет по уровню заработной платы. Во-вторых, нехватка специалистов связана с тем, что дата-саентисты — это в первую очередь математики. Чем сложнее задача и методы, которые используются для анализа данных, тем более «хардкорная» математика нужна. Несмотря на то, что в России высокий уровень технического образования, рынок оказался не готов для того, чтобы предложить необходимое количество математиков с хорошими навыками программирования, умением строить алгоритмы и практическими знаниями методов статистического анализа данных.

Если у вас математический склад ума и вам интересна карьера с множеством возможностей для карьерного роста, обратите внимание обучающие курсы по работе с данными, например на Coursera, Khan Academy, Udacity или Kaggle.

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

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

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

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

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

Если говорить об общих навыках, то для специалистов Data Science выделяют три основных компетенции. Во-первых, наличие навыков программирования: умение писать код на Python (или, например, на R), знание библиотек машинного обучения. Во-вторых, уверенная математическая база — знание алгоритмов ML, теория вероятностей, математическая статистика, линейная алгебра. В-третьих, бизнес-экспертиза — понимание, как работает бизнес, опыт в бизнес-аналитике, навыки проведения исследований.

Сфера Data Science бурно развивается, но является недоспециализированной — во многих отраслях нет явно выделенных специальностей с чёткими требованиями. Поэтому в Data Science часто ищут full stack специалиста, который должен и хорошо писать код на Python, и обладать бизнес-экспертизой, и быть хорошим математиком, и уметь внедрять модели в продакшн, и быть хорошим менеджером проекта, и заниматься R&D и т. д. Эдакий и швец, и жнец, и на дуде игрец.

В нашем банке, как и во многих других организациях, есть своя специфика, поэтому при подборе специалистов к нам DS-команду мы даём два теста.

SQL-тест включает несколько задач на написание select-запросов. На него мы отводим 30–40 минут. Несмотря на то, что тестовые запросы пишутся в 5–7 строк, они составлены так, что отражают основные проблемы, с которыми аналитики сталкиваются в своей работе с базами данных. Многие кандидаты, к сожалению, не справляются с этими задачами, хотя этому тесту уже более 10 лет.

Take-home test на моделирование — домашнее задание на 2–3 дня, в котором требуется построить модель регрессии на данных, взятых из открытых источников. По результатам этого теста мы оцениваем уровень знания Python, основ моделирования, навыки работы с данными, навыки проведения исследования и интерпретации результатов.

Несмотря на стремительное развитие инструментов, применяющихся в машинном обучении — новых библиотек, фреймворков, архитектур нейросетей и всё более мощного оборудования, — навыки, необходимые специалисту по Machine Learning, почти не изменились за последние пять лет. Разумеется, в каждой конкретной области вам могут пригодиться какие-то определённые знания, но в целом можно выделить несколько основных требований:

  • Вам нужно хорошо знать C++ или Python, чтобы уметь писать высокопроизводительный код.
  • Базовые алгоритмы и структуры данных тоже важны — они помогают понять, как именно нужно писать более производительный код.
  • Необходимо разбираться в архитектуре «железа» — понимать, как выполняются распределённые и параллельные вычисления и уметь оптимизировать обработку больших данных.
  • Очень важный момент — знание математики, в первую очередь — линейной алгебры и теории вероятностей для понимания работы алгоритмов машинного обучения.
  • Хорошее знание основных методов Machine Learning и Deep Learning. Эти области не ограничиваются нейросетями: сюда входят и компьютерное зрение, и базовые алгоритмы классификации/кластеризации/регрессии, и обработка естественного языка, и многое другое.

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

Спрос на экспертов в сфере машинного обучения сегодня стремительно растёт. И несмотря на то, что набор необходимых профессиональных навыков и опыта зависит в первую очередь от места работы, существуют и общие тренды.

В настоящее время наблюдается расцвет нейронных сетей и алгоритмов глубокого обучения, в связи с чем требуется умение работать с двумя базовыми фреймворками глубокого обучения — PyTorch и Tensorflow (а также его надстройкой — Keras). Безусловно, очень важно, чтобы специалист уже имел опыт решения производственных задач в указанных средах, но плюсом будет также и авторство научных статей по данной тематике.

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

  • отслеживать профильные выставки и конференции, а также принимать в них участие;
  • участвовать в соревнованиях по машинному обучению, в том числе на платформе Kaggle;
  •  вступить в международные профильные сообщества, такие как OpenDataScience, чтобы обмениваться опытом и совершенствовать свои навыки.

Hard Skills

  • Знание основ математической статистики, теории вероятности.
  • Продвинутое знание одного из языков программирования, используемых для машинного обучения: Python/R.
  • Продвинутое знание методологии машинного обучения и дата майнинга (регрессия, классификация, кластеризация, древесные и линейные алгоритмы, нейросети).
  • Знание основных преимуществ и ограничений различных алгоритмов машинного обучения и умение выбора модели, соответствующей задачи.
  • Навыки работы с распространенными библиотеками, применяемыми для машинного обучения: Numpy, Pandas, Sklearn, XGBoost, Keras, TensorFlow, PyTorch.
  • Навыки EDA (exploratory data analysis) и умение работать с соответствующими библиотеками: Seaborn, matplotlib, Shiny.
  • Понимание методологии подготовки и очистки данных, feature engineering.
  • Понимание принципов оценки качества (валидации) моделей и используемых при этом метрик.
  • Понимание функционального / объектно-ориентированного программирования.

Soft skills

  • Продвинутые коммуникационные навыки. Способность доступно объяснить сложные технические концепции для не технической аудитории.
  • Навыки работы в команде / самостоятельной работы.
  • Навык учиться и применять полученные знания на практике, саморазвитие.
  • Навык глубокого погружения в проблему и критического её осмысления.
  • Навыки и умения решать незнакомые задачи и проблемы. Умения их структурировать.
  • Навыки решения проблем на основе принципов системного анализа, комплексного решения проблем.
  • Навыки творческого решения проблем. Креативность и гибкость мышления. Навыки генерации идей и нестандартного мышления.
  • Навыки качественного и ответственного выполнения работы.
  • Разностороннее развитие, эрудированность, многогранность навыков и умение их применять на практике.
  • Настойчивость и способности концентрации на решении поставленных задач.
  • Мотивация и умение мотивировать окружающих.

Опыт

  • 1–3 года прикладного математического моделирования в бизнес-ориентированной среде или в среде разработки.
  • Опыт внедрения моделей машинного обучения в производственную среду.
  • Опыт работы с большими датасетами, базами данных, экосистемой Hadoop, Spark.
  • Опыт работы с Git.

Естественно, всё зависит от области. Как я вижу, сейчас наиболее популярными областями являются Обработка Естественного Языка, Видеоаналитика и работа с Временными Рядами.

Однако вне зависимости от области важны как теоретические знания:

  • понимание основных алгоритмов/архитектур;
  • изучение последних достижений в сфере ИИ (например по материалам конференций).

Так и практические навыки:

  • владение языком программирования и мэйнстрим фреймворками;
  • умение собирать и подготавливать данные;
  • умение выбрать, обучить и развернуть модель;
  • умение презентовать результаты;

И, конечно, лучшее подтверждение имеющихся навыков — это факты успешного участия в реальных проектах или, например, на Kaggle.

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

Точно не обойтись без умения разобраться в бизнес задачах компании и перевести их на язык технического решения. Например, запрос — выяснить, почему ученик быстро уходит с определённых онлайн-заданий, можно обработать десятком различных способов. Но выбрать правильный, самый быстрый, недорогой и объективный метод можно только разобравшись в смысле задачи.

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

На наш взгляд, обязательны следующие 3 пункта:

1. Математика. Прежде всего, специалист по машинному обучению должен иметь хороший математический бэкграунд. Это обязательно для хорошего понимания того, как работают классические алгоритмы ML и что же происходит внутри современных нейросетей. Понадобится и линейная алгебра (операции с векторами и матрицами), и матанализ (дифференцирование сложных функций, интегрирование), и математическая статистика и, конечно, теория вероятностей. Поэтому в этой области data science (науки о данных) крайне желательно иметь профильное высшее образование — мехмат, ВМК.

2. Python. Понадобятся базовые знания основ программирования, для того чтобы не путаться хотя бы в собственном коде, а лучше — быстро разбираться в чужом. Понадобится знать Python — если раньше люди пользовались R, C++ в ML, то в наше время быстрого развития нейросетей удобный и простой Python вытеснил всё остальное. Кстати, его можно освоить довольно быстро. Подойдёт и как первый язык для изучения программирования.

3. Курсы, книги, участие в Kaggle. Нейросети завоевали лидерство в современном машинном обучении и сейчас имеет смысл развиваться в этом направлении. Благо появилось множество книг, бесплатных курсов и обучающих видео по ML и нейросетям. Например, мы можем смело рекомендовать курс «Deep Learning на пальцах» при Новосибирском Государственном Университете (бесплатные лекции можно найти на YouTube). Что касается книг, можем рекомендовать как первую книгу С.И. Николенко «Глубокое обучение. Погружение в мир нейронных сетей». Ну и конечно участие в конкурсах. Нет ничего лучше, чем практика, и конкурсы Kaggle (от Google) предоставляют отличную возможность попрактиковаться и посоревноваться в машинном обучении. Для успешного прохождения собеседований участие в Kaggle будет огромным плюсом.

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

Во-первых, это знание математики. В особенности это касается теории вероятности и математической статистики. Помните времена, когда школьники кричали: «Зачем мы это учим! Нам не пригодится это в жизни!»? Забудьте о них. В жизни сегодня пригодится всё. И с каждым днём этого всего становится больше.

Во-вторых, это Python. Сегодня все пишут ML на Python. Не нравится? Не проблема. Мы всегда найдём другого специалиста, которому нравится Python. Да, у этого высокоуровневого языка программирования есть свои недостатки. Но достоинств всё же больше. Всё-таки, «сейчас — лучше, чем никогда». Язык развивается, и за обновлениями и новинками следить обязательно.

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

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

Наконец, пятое качество — и требование одновременно — это воображение. Не нужно воображать работу специалистом по машинному обучению. Попробуйте, например, представить гиперплоскости в 100000-мерном пространстве. Получилось? Если нет, то в обязательном порядке стоит к этому стремиться — и следить за теми, у кого уже получилось.

Оценивать риски и прогнозировать бизнес-события с помощью Machine Learning сегодня хотят всё больше компаний. В частности, банкам нужен кредитный скоринг, ритейлерам — решения для предсказания спроса. В целом, в любом бизнесе есть маркетинговые или операционные данные для анализа, например для управления логистикой и другими процессами. Редко у кого всё выстроено оптимально, обычно всегда есть, что улучшать, поэтому спрос на решения Data Science и Machine Learning постоянно растёт.

Есть разные мнения, какие навыки важнейшие для ML-специалиста, мы с командой остановились на трёх:

  • Уметь эффективно учиться. Ориентироваться в новых подходах, фильтровать огромный поток информации и понимать, что действительно пригодится на практике.
  • Досконально знать алгоритмы. Нужно знать, применим ли алгоритм в конкретном кейсе, при каких условиях.
  • Переводить бизнес-задачи на язык математики. Так, говоря о предсказании спроса, важно понимать, какой именно параметр мы будем прогнозировать, как оценивать результат, какие будут ограничения.

Если речь идёт о начинающих специалистах, как и везде, требования сводятся к простой формуле: знать матчасть и нарабатывать практику. Применительно к ML, из теории нужно знать как минимум Python или R, основные библиотеки, алгоритмы, их ограничения, плюсы и минусы. Если вы уже являетесь разработчиком и располагаете хотя бы базовыми знаниями в теории вероятностей, статистике, мат. анализе и линейной алгебре, вы достаточно быстро разберётесь с этим. Для практики тоже большой простор: можно работать с публичными датасетами, участвовать в соревнованиях — например на платформе Kaggle.

Что касается базового образования, оно может быть разным — физика, прикладная математика, биоинформатика. Главное — иметь структурированное математическое мышление и не падать в обморок при виде матриц, формул и алгоритмов. ? Сроки обучения тоже у всех разные: бывает, что люди с бэкграундом осваивают Data Science за 3 месяца — с другой стороны, обучение на этом не заканчивается (и вообще не заканчивается никогда).

Чтобы не упустить ничего нового в ML, важно постоянное самообразование. Если нужно подтянуть теорию, то достаточно хорошие насыщенные курсы предлагают edX и Coursera. Для практики можно воспользоваться датасетами из UCI Machine Learning repository. Есть образовательный раздел на Kaggle и рассылки по машинному обучению и искусственному интеллекту, в частности от сообщества Open Data Science и издательства O’Reilly. А если есть время и желание разобраться в научной составляющей, то на arxiv.org и других ресурсах можно найти статьи по Machine Learning.

Какие навыки специалиста по машинному обучению сейчас наиболее востребованы

Бизнес ориентирован на внедрение систем искусственного интеллекта, а специалист по машинному обучению как раз призван научить машину «думать» и принимать решения в соответствии с умными алгоритмами. Отсюда и перечень требований к такому специалисту.

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

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

За последние 5 лет сформировался стандартный набор требований к специалисту по машинному обучению, который включает: сильную математическую подготовку (теорию вероятности, статистику, линейную алгебру), как минимум один из языков программирования Python/R (реже С++), знание и способность на практике реализовать модели машинного обучения.

Использование ML и AI стало повсеместной практикой, появилось множество новых технологий и подходов, соответственно, можно выделить навыки, наличие которых станет преимуществом:

Neural Networks и Deep Learning

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

Нейронные сети показывают отличный результат в ряде задач (CV/NLP/RL/GAN), что поспособствует развитию фреймворков tensorflow, keras, pytorch и т. п. Тем не менее, в ряде задач по прежнему превалируют традиционные ML-подходы и алгоритмы в силу меньших требований к вычислительным мощностям (для нейронных сетей чаще используют GPU) и объёму данных для обучения.

Опыт работы со стеком технологий BigData

Чаще всего, чтобы провести предварительный анализ, предобработку, обучение и тем более запуск самой модели, вычислительных мощностей одной машины не хватает, и весь пайплайн построения модели происходит на кластере с распределённым хранением и вычислением данных. В роли хранилищ могут выступать файловые системы (HDFS(Hadoop), Druid и пр.), NoSQL базы данных (Cassandra, MongoDB, CouchbaseDB и пр.), MPP базы данных (vertica, greenplum, clickhouse и пр.). Для анализа чаще всего используются Spark, HiveQL, либо другие внутренние фреймворки хранилищ. Более того, специалист должен уметь работать с технологиями, и понимать, как писать алгоритмы для распределённых вычислений, а также оценивать их ресурсоёмкость и эффективность.

Обработка изображений и видеопотоков

В большом количестве областей используется анализ изображений и видеозаписей (медицина, сельское хозяйство, госслужба, автопилотирование, IoT и многое другое). Обработка такого рода данных требует специальных навыков: детектирование объектов, выделение границ, классификация, сегментация объектов. В качестве технологий могут использоваться OpenCV, DLIB, алгоритмы R-CNN, Fast R-CNN, Faster R-CNN, YOLO и др.

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

Важно учитывать потребности бизнеса, а бизнесу нужно то, что очень хорошо работает с высокой долей надёжности, т. е. даёт минимум 90–95 % точности.

Сейчас во всём мире тренд на Deep Learning, компьютерное зрение, нейросети. Нейросети можно использовать для предсказания спроса, рекомендации товара, персонализированного маркетинга. Однако, чтобы понять, как эти технологии работают, нужно иметь углублённые знания, быть Data Scientist. В отличие от Deep Learning, методы классического машинного обучения — матричного разложения, факторизационных машин — гораздо легче интерпретируются бизнесом, то есть с их помощью можно объяснить, почему те или иные товары были интересны, какие основные драйверы спроса. Также ограничения на интерпретируемость моделей бывает на законодательном уровне, например в фарме или банках.

В последнее время быстро развивается тренд на Generative Adversarial Networks (GANs). Эти алгоритмы позволяют на основании входящих данных генерировать новые данные, которые очень похожи на настоящие. Возьмём, например, картинку, где машина едет по пустыне, и картинку средней полосы России. Накладываем одно на другое, и вот уже машина едет по полю. Популярные приложения FaceApp и Prisma работают на данной технологии. Есть целый веб-сайт, генерирующий лица людей, которые на самом деле не существуют, при этом выглядят они как настоящие.

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

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

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

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

Благодаря технологиям МО компании принимают лучшие решения в сфере риск-менеджмента. По данным IBM, к 2021 году бизнес не сможет принимать большинство важных решений без помощи искусственного интеллекта.

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

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

  • умение анализировать и моделировать данные при помощи высокоуровневого языка программирования Python 3;
  • знание дискретной математики, теории вероятностей и статистики;
  • обладание такими базовыми инструментами, как Pandas, Numpy, SciPy, Scikit-learn (где особенно важно знать алгоритм классификации Logistic regression), Jupyter Notebook;
  • умение работать с любой из библиотек бустинга: XGBoost, lightGBM, CatBoost;
  • владение базами данных SQL или NoSQL (важно не только понимать теорию, но и знать, как составлять сложные запросы);
  • обладание инструментами визуализации данных: Matplotlib, Plotly, Brunel и т. д.;
  • умение разворачивать готовые решения в виде сервисов (Flask, Django и т. д.), упакованных в Docker.

Стоит отметить, что компании часто отдают предпочтение дипломированным дата-аналитикам.

Помимо риск-менеджмента, Data Scientist работает с нейросетями для анализа текстов, изображений, звуковых и видеорядов, моделирования временных рядов.

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

Итак, чего хотят от специалистов по машинному обучению?

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

  • от кандидатов обычно ждут хорошую математическую базу — линейная алгебра, статистика, теория вероятностей, алгоритмы машинного обучения и всё такое;
  • нередко нужно уметь подготавливать данные для дальнейшей работы;
  • нужно знать язык программирования, обычно это Python, иногда R. Там, где нужен высокопроизводительный код, ждут знание C++;
  • также от специалиста хотят, чтобы он был немного бизнес-аналитиком, понимал, как работает бизнес и чего хочет заказчик;
  • иногда хотят, чтобы человек ещё умел и развернуть готовое решение в виде сервиса;
  • само собой, ценится умение учиться, быстро во всё вникать и быть в курсе всего нового.

Напоминаем, что вы можете задать свой вопрос экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков рубрики. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на experts@tproger.ru, мы расскажем, как это сделать.

Следите за новыми постами
Следите за новыми постами по любимым темам
25К открытий25К показов