Анализ результатов 2018 Kaggle ML & DS Survey
Kaggle — известная платформа для проведения соревнований по машинному обучению на которой количество зарегистрированных пользователей перевалило за 2.5 миллиона. В соревнованиях участвуют тысячи data scientist из разных стран, и Kaggle стал интересоваться тем, что из себя представляет аудитория. В октябре 2018 года был организован уже второй опрос и на него ответило 23859 людей из 147 стран.
В опросе было несколько десятков вопросов на самые разные темы: пол и возраст, образование и сфера работы, опыт и навыки, используемые языки программирования и софт и многое другое.
Но Kaggle — не просто площадка для соревнований, там также можно публиковать исследования данных или решения соревнований (они называются кернелы и похожи на Jupyter Notebook), поэтому датасет с результатами опроса был выложен в открытый доступ, и было организовано соревнование на лучшее исследование этих данных. Я тоже принимал участие и пусть денежный приз не получил, но мой кернел занял шестое место по количеству голосов. Я хотел бы поделиться результатами моего анализа.
Данных довольно много и их можно рассматривать с разных сторон. Меня заинтересовали различия между людьми из разных стран, поэтому большая часть исследования будет сравнивать людей из России (поскольку мы тут живём), Америки (как самая продвинутая страна в плане DS), Индии (как бедная страна с большим количеством DS) и других стран.
Большая часть графиков и анализа взята из моего кернела (желающие могут там увидеть код на Python), но есть и новые идеи.
Общий обзор
Сразу отмечу, что ответившие на вопросы — не совсем репрезентативная выборка data scientists. Не всем интересно тратить время на соревнования, кто-то просто не слышал об этой платформе, наконец, ~24 тысячи ответивших — лишь небольшая часть всех участников Kaggle. Тем не менее у нас есть только эти данные, поэтому в дальнейшем я буду считать, что имеющейся информации достаточно для того, чтобы делать выводы по странам и в целом.
На этой карте можно увидеть количество прошедших опрос в разных странах. Основная масса — Америка и Индия. В настоящее время Америку, пожалуй, можно назвать лидером в DS, плюс эта сфера стала там популярной раньше, что и объясняет такое количество людей. Индия — это страна с огромным населением, которая ещё давно стала уделять внимание IT. Благодаря курсам от Siraj Raval DS приобретает популярность и привлекает большое количество индусов. Китай сильно отстаёт, но предполагаю, что это объясняется закрытостью их Интернета.
В России, Канаде, Бразилии и Европе также довольно много DS, но в этих странах население значительно меньше, поэтому конкурировать по количеству участников Kaggle пока не могут.
Посмотрим сколько времени люди тратили на опрос. Как видно многие люди потратили на опрос 10–20 минут, что вполне достаточно для вдумчивого ответа на вопросы. Отвечавшие на вопросы меньше пары минут, видимо, просто сразу или почти сразу закрыли опрос. Кому-то мог не понравиться опрос, кому-то могло быть лень отвечать, кто-то не захотел отвечать на вопрос о своём поле (об этом ниже). Вообще говоря, ещё были люди, которые потратили на опрос десятки часов. Наверное, они просто забыли об открытой вкладке:)
Половозрастная структура
В целом картина не вызывает удивления. Больше всего в Kaggle участвуют молодые люди 22–29 лет или даже 18–34. Это школьники, студенты и недавние выпускники. Скорее всего все они либо стремятся приобрести знания, либо добиться впечатляющих результатов, чтобы получить преимущество при поиске работы. Мужчин значительно больше, чем женщин. В целом это неудивительно, учитывая, что наша сфера объединяет IT, математику и другие направления, в которых издавна наблюдается гендерный дисбаланс. Нужно ли что-то активно делать для исправления этого дисбаланса? Предпочитаю не обсуждать в данной статье.
Стоит заметить, что можно было также не указывать возраст или указать возраст самостоятельно. Давайте посмотрим на самые популярные варианты:
Среди ответов в свободной форме:
- non-binary (адекватно)
- Attack helicopter (клёво! правда хотелось бы посмотреть на родителей)
- Male (почему бы просто не выбрать этот вариант?)
- Who are you to insinuate I have a gender? (ну, потому что ты человек?)
- Kaggle (ну хоть не кагглосексуал)
- Your Highness (вы точно не спутали этот вопрос с другими?)
- A little sunshine. :) (это так мило!)
- Double male (прям мачо!)
- Male and female are sexes not gender. Gender is a regressive set of stereotypes associated with our sex. Ask what sex we are for demographic purposes, if that is what is important. (SWJ detected!)
Довольно интересно посмотреть на различия в половозрастной структуре разных стран.
В Америке доля женщин выше, чем в остальных странах. Это объясняется тем, что в последние несколько лет там происходит активная борьба с «гендерным неравенством». Нужна она или нет это вопрос, но результаты видны.
Индия выделяется большим количеством молодых DS. Похоже, что ребята заранее думают о будущем и прокачивают навыки ещё с детства. Позже мы увидим, что система образования в Индии оставляет желать лучшего.
Россия в целом похожа на другие страны.
Образование
Как уже было отмечено раньше, в Индии высока доля студентов или бакалавров, а вот обладателей докторской степени практически нет. Россия выделяется тем, что у многих DS нет формального образования (или они не захотели ответить). В целом это впечатляет — видимо они смогли своим трудом и упорством войти в сферу DS.
Интересно посмотреть на то, как в разных странах DS появляются из разных направлений. CS, IT и математика/статистика превалируют во всех странах, но в Индии виден уклон в техническое направление, в Америке важнее бизнес-дисциплины (в том числе экономика), а в России ещё и физика.
В этом вопросе людей спрашивали их мнение о том лучше или хуже качество курсов на онлайн-платформах по сравнению с традиционным образованием. И здесь видна разница между странами. Образование в Индии оставляет желать лучшего. Может быть просто не хватает учителей, может быть качество образования довольно низкое, в любом случае большинство индусов отдают предпочтение онлайн курсам. Америка же имеет развитую систему образования, в итоге почти треть людей считают, что образование в университетах имеет более высокое качество. В России и остальном мире качество традиционного образования является неплохим и почти не уступает конкурентам.
Должность
В рамках одного из вопросов просили указать должность, мне кажется, что для задач этого отчёта столько вариантов просто не нужно. После некоторых размышлений я сформировал 7 групп и получилась такая картина:
Здесь мы видим очередное подтверждение тому, что многие индусы на каггле — студенты и/или представители более технических направлений. Америка выделяется упором на аналитику, а Россия — прикладными направлениями.
Но давайте посмотрим на более подробную картину:
Здесь мы видим как долго человек проработал на текущей должности.
Первое, что бросается в глаза — подавляющее количество людей на всех должностях — новички. Я вижу 2 объяснения этому факту: либо выпускники вузов, либо сменившие сферу работы. Хайп по DS/ML начался недавно и, как мне кажется, только усиливается, в результате всё больше и больше людей хотят приобщиться к новому направлению и создать свой Искусственный Интеллект (ибо люди вне DS редко осознают, что никакого ИИ нет и не будет в ближайшие годы).
Другой интересный феномен — довольно большая доля опытных data engineer. Предполагаю, что немало опытных программистов решили перекатиться в DS, но DE было им ближе — для вывода ML решений в продакшн подходит большинство имеющихся навыков. Интересно, что в России доля DE с 5–10 и 10–15 лет опыта довольно высока, видимо это senior-ы разработки на Java и других языках, которые весьма востребованы для high-load систем. Лично меня отдельно удивляет высокая доля опытных исследователей в России, пока не понял причин этого.
Америка выделяется среди других стран высокой долей аналитиков. Можно найти много причин этому: и то, что в Америке DS часто берут на аналитические позиции, и то, что в ряде крупных компаний data analyst по факту выполняет DS работу, и то, что это могут быть переквалифицировавшиеся статистики.
Раз уж мы говорим о работе, но нельзя не затронуть вопрос зарплаты.
Тут всё довольно ожидаемо: зарплаты в Индии ниже всего, в России немного повыше, а Американские зарплаты самые высокие.
Уверенность в себе
Комбинация ответов на 2 вопроса показалась мне очень интересной. Первый вопрос — опыт работы в ML, второй — считаете ли вы себя DS. Здесь можно наблюдать либо разницу в мировоззрении и самовосприятии, либо разное понимание вопросов.
В большинстве стран новички с опытом работы меньше двух лет имеют смешанное мнение — кто-то уже уверен в себе, кто-то сильно сомневается. С ростом опыта уверенность в себе растёт. В России же подавляющее большинство начинающих считает себя DS, но с по мере получения опыта уверенность в этом падает.
Дальше пойдут вопросы, где можно было указать несколько ответов, так что суммирование долей вполне может дать больше 100%
Посещаемые ресурсы
Kaggle и Medium уважают все. В России любят читать статьи на ArXiV, в Америке предпочитают https://fivethirtyeight.com (причём в других странах его практически не посещают), а в Индии фанатеют от Siraj.
Отдельно хочется отметить ods.ai, который оказался самым популярным ресурсов, среди тех которые люди указали вручную. Кто ещё не состоит в нашем сообществе, присоединяйтесь :)
IDE и языки программирования
В плане использования IDE людей можно разделить на 2 основные группы: использующие IDE с встроенной визуализацией (Jupyter Notebook, RStudio, Spyder) и использующие классические IDE (VS Code, Vim).
Америка выделяется высокой долей аналитиков, использующих R и, как следствие, RStudio. Впрочем, такие ide как Vim или Atom тоже пользуются известностью. В России Pycharm популярен не только среди DS, но и в целом среди программистов, так что количество использующих его не вызывает удивления.
SQl, Java, Bash, C/C++ также являются важными языками для сферы DS.
Фреймворки
Для меня несколько удивительно то, что доля использующих DL фреймворки ненамного меньше доли использующих sklearn. Возможно многих привлекают нейронные сети, и они хотят изучать их с самого начала; может быть бизнес начинает применять нейронки в своих задачах;, а может быть дело просто в том, что многие участники Kaggle с интересом пробуют соревнования по картинкам и текстам.
Отдельно хотелось бы отметить высокую долю использующих Pytorch и библиотеки градиентного бустинга в России. LGB/XGB/catboost — самые известные имплементации градиентного бустинга, и они показывают высокое качество на табличных данных. Pytorch появился довольно давно, но стал приобретать высокую популярность в последние 1–2 года.
Визуализация
Какой же анализ данных без визуализаций! В целом картина неудивительна. R — это ggplot2 и shiny. Python — это matplotlib + seaborn, plotly/bokeh.
D3 позволяет создавать крутые визуализации, но с ним довольно сложно работать.
Altair — библиотека на Vega-Lite, у меня есть надежды, что в будущем она приобретет популярность благодаря интересным интерактивным визуализациям доступным в ней.
Tableau и другой BI софт продолжают сохранять популярность, что неудивительно — это качественные решения, которые поддерживаются и могут интегрироваться много с чем.
Платформы для онлайн образования
Coursera является лидером на рынке курсов для онлайн образования. Там можно найти курсы практически на любые темы и уровни. Немаловажным фактором является также то, что можно подать заявку на финансовую помощь и пройти курсы совсем бесплатно. Udacity, Udemy и edX менее популярны, но тем не менее на них тоже можно найти большое количество интересных курсов. Kaggle некоторое время назад запустил свою собственную образовательную инициативу. Приятно то, что курсы сделаны в виде кернелов, что даёт практику в использовании возможностей Kaggle. Курсы от DataCamp имеют уникальный формат, который позволяет дать точечную практику по определенным темам, но вряд ли эта платформа может дать глубокие знания.
Отдельно стоит отметить, что mlcourse.ai от ods.ai является самым популярным из вариантов, указанных пользователями. Недавно закончилась четвёртая сессия курса в которой было зарегистрировано более 7,5 тысяч человек. Благодаря тому, что основное общение происходит в слаке, курс заканчивает впечатляющая доля людей — значительно выше, чем у других бесплатных курсов по ML. Этот курс даёт не только теоретические знания и сложные домашние задания, но также практику участия в соревнованиях на Kaggle.
Инструменты для интерпретации
Наконец посмотрим, какими способами разные люди анализируют результаты работы моделей.
Анализ самих предсказаний и сравнение их распределения с распределением целевой переменной является базовым, но качественным способом анализа. Изучение коэффициентов линейных моделей или важности признаков у деревянных моделей позволяет найти признаки, которые больше всего влияют на предсказания.
Кроме того, в последнее время становятся популярны специальные фреймворки для анализа моделей: SHAP, LIME и ELI5. Они позволяют дать объяснение не только простым моделям, но даже некоторым из тех, которые считаются черными ящиками.
Итоги
Мы посмотрели, чем отличаются друг от друга DS в разных странах мира, а также узнали, что их сближает. Этот анализ не покрывает все доступные данные, но показывает те из них, которые показались мне наиболее интересными. Желающие могут провести своё исследование на этих данных :)
Спасибо за внимание!