Уроки опроса Stack Overflow — значения SHAP для страны, многолетний опыт и многое другое

Цель этой статьи — количественно оценить основные вклады, влияющие на заработную плату различных типов разработчиков (не только специалистов по данным). Исследование основано на Опросе Stack Overflow от мая 2022 года с набором данных, который уже общедоступен на Kaggle. Как и в предыдущих историях, анализ основан на значениях Shapley Additive exPlanations (SHAP). Полная информация об анализе также доступна в общедоступной записной книжке на Kaggle.

Шаг 1 — предварительная обработка данных

Здесь предварительная обработка данных состоит из следующих шагов:

  • выбор стран и типов разработчиков с репрезентативно большим количеством респондентов;
  • изменение масштаба столбца меток до тысяч долларов США в год;
  • удаление 5% (5%) ответивших с наибольшими (наименьшими) компенсациями;
  • отбрасывание неинтересных для данного анализа столбцов;
  • замена нулевых значений.

Шаг 2 — настройка модели машинного обучения для прогнозирования годовой компенсации

Данные, подготовленные на предыдущем шаге, случайным образом распределяются между обучающей и тестовой выборками и моделируются с помощью модели CatBoostRegressor, которая явно учитывает категориальные признаки. Среднеквадратическая ошибка (RMSE) полученной модели составляет около 55 тысяч долларов США в год, что улучшение по сравнению со среднеквадратичной ошибкой базовой модели, составляющей около 73 тысяч долларов США в год ( при одинаковой годовой компенсации в размере около 101 000 долларов США в год для каждого респондента).

Шаг 3 — объяснение полученной модели машинного обучения.

Здесь мы используем метод Shapley Additive ExPlanations (SHAP), один из наиболее распространенных для изучения объяснимости моделей машинного обучения. Таким образом, единицы стоимости SHAP выражены в тысячах долларов США в год.

Во-первых, мы изучаем диапазон значений SHAP для 30 наиболее интересующих нас функций:

Как мы видим, самый большой диапазон значений SHAP связан со страной их местонахождения. Более подробное представление значений SHAP по странам показывает разницу примерно в 90 тысяч долларов США в год между странами с самой высокой зарплатой (США) и странами с самой низкой зарплатой (Индией и Бразилией):

Еще одним важным фактором, влияющим на годовое вознаграждение разработчиков, является количество лет профессионального кодирования (переменная YearsCodePro). Здесь мы видим, что разработчики с более чем 10-летним опытом профессионального программирования получают в среднем примерно на 20 000 долларов США в год больше, чем разработчики со стажем только 1 год, с очень небольшим изменением после 10+ лет. лет опыта:

Неудивительно, что работа в более крупных организациях (переменная OrgSize) также приводит к более высокому годовому вознаграждению: разработчики, работающие в очень крупных организациях (более 5000 сотрудников), получают в среднем на 16 000 долларов США в год больше, чем работа в очень небольших организациях (до 19 сотрудников):

Однако, как мы отмечаем ниже, это увеличение должно сочетаться со значениями SHAP, полученными в результате увеличения опыта программирования (столбец YearsCode) и опыта работы (столбец WorkExp).

Интересно, что разница между разными типами разработчиков (переменная DevType) не столь заметна — в среднем бэкенд-разработчикам платят примерно на 6 000 долларов США в год больше, чем разработчикам полного стека, в то время как другие типы (включая специалистов по данным, инженеров данных или инженеров-менеджеров) расположены между этими двумя:

Предыдущий опыт работы с платформой Amazon Web Services (AWS) должен увеличить сумму расчетного листка на около 6,7 тыс. долларов США/год:

Что еще более важно, если у разработчика нет опыта работы с такими платформами, как AWS, средний платежный лист уменьшается в среднем на 3,2 тыс. долларов США в год:

Другими словами, если разработчик получит надлежащий опыт работы с AWS из-за отсутствия опыта работы с другими платформами, ожидаемое увеличение средней заработной платы в 2022 году составит 6,7 + 3,2 = 9,9 тыс. долларов США в год! То же самое относится и к многолетнему опыту, поэтому SHAP оценивает профессиональный опыт программирования (столбец YearsCodePro), опыт программирования (столбец YearsCode) и опыт работы (WorkExp). столбец) также следует рассматривать вместе.

Я надеюсь, что эти результаты могут быть полезны для вас. В случае вопросов/комментариев, не стесняйтесь писать в комментариях ниже или свяжитесь со мной напрямую через LinkedIn или Twitter.

Вы также можете подписаться на мои новые статьи или стать приглашенным участником Medium.