Задача 3. Предсказание зарплаты по описанию вакансии

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

Однако, некоторые работодатели предпочитают не сообщать заработную плату, а договариваться о ней на собеседовании в режиме аукциона. У соискателя, плохо ориентирующегося на рынке труда, может сложиться заниженное представление о размере возможной заработной платы. А почему бы не построить модель машинного обучения, которая будет по вакансии определять примерную заработную плату, на которую можно претендовать?

Вам дан набор объявлений о вакансиях с нескольких Британских веб-сайтов. Необходимо для тестового набора объявлений предсказать размер заработной платы, используя при этом только описание вакансии без указания з/п.

Формат данных

Набор данных представлен в CSV-таблице со следующими колонками:

  • Id: идентификатор
  • Title: заголовок вакансии
  • FullDescription: текстовое описание вакансии
  • LocationRaw: город офиса, ровно так как было написано в вакансии
  • LocationNormalized: название города, приведенное к единому списку
  • ContractType: тип трудового договора
  • ContractTime: длительность трудового договора (постоянная или временная работа)
  • Company: компания-работодатель
  • Category: категория в каталоге вакансий
  • SalaryRaw: примерная з/п, написанная человеческим языком
  • SalaryNormalized: з/п в виде числа, приведенная к одной валюте
  • SourceName: веб-сайт, с которого было взято объявление

В тестовом наборе отсутствуют колонки SalaryRaw, SalaryNormalized, SourceName. Необходимо предсказать значение SalaryNormalized.

Формат предсказаний

Предсказания необходимо записать в таблицу с двумя колонками: Id (идентификатор объявления) и SalaryPredicted (предсказание з/п). Пример:

salary_predictions.csv
----------------------
Id,SalaryPredicted
70591366,10000
69016382,20000
70807525,15000
71841963,30000
71408565,5000

Оценка качества предсказаний

В качестве меры ошибки одного предсказания берется модуль разницы между предсказанием и настоящим значением з/п. Ошибка всех предсказаний — среднее значение модулей разности:

Error = Sum_n |SalaryNormalized_n - SalaryPredicted_n|