Какую модель выбрать для оценки зарплаты разработчика по технологиям?

Скачал данные опроса StackOverlow, там 60мб csv данных. Из них 6К записей по РФ, включая зарплаты разработчиков, используемые технологии и возраст. У каждого случая может быть одна или несколько технологий. Хочу на основании этих данных сделать простенький сайт, где юзер вводит технологии, возраст и может оценить свою зарплату на рынке.

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

js css java ... salary
0 0 1 2k
1 0 0 2.3k
итд

всего около 30 бинарных категорий. Разделил выборку на обучающую и тестовую 9:1, прошелся линейной регрессей, при валидации на тестовых данных получается огромная среднеквадратичная ошибка в 1K$. Мне кажется что моя модель неправильная, как бы вы решали эту задачу?
Спасибо.
  • Вопрос задан
  • 380 просмотров
Пригласить эксперта
Ответы на вопрос 2
Может, брать наиболее похожие наборы скиллов и усреднять их з/п с учётом «расстояния» от образца? Т.е. никакого ML, только поиск.

Например, ищется з/п для набора скиллзов [A, B, C]. Нашлись в базе, с хотя бы 2 из искомых скиллов:

A, B, C: $X1 (точное совпадение, дистанция 0)
A, B, C, D: $X2 (1 лишний скилл)
A, C: $X3 (1 скилла не хватает)
A, C, F: $X4 (1 лишний, 1 не хватает = расстояние 2)

«Расстояние» – число скиллзов, которое отличает (лишние + недостаёт). Например, в квадрат возводить расстояние набора до искомого и делить на (1 + Dist2)

Ожидаемая з/п: ($X1/(1+0) + $X2/(1+12) + $X3/(1+12) + $X4/(1+22) ) / 4

Или более резко отстроиться от левых данных: делить на число e в степени Dist.

($X1/e0 + $X2/e1 + $X3/e1 + $X4/e2 + ... + $Xn/eDistn ) / n
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Надо решить систему линейных уравнений и найти коэффициенты сложности технологий (возраст - здесь ни при чём):
k11*x11+...+k1N*x1N=b1
.....
kN1*xN1+...+kNN*xNN=bN,
где kNN - коэффициенты сложности технологий xNN
bN - зарплата разработчиков
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы