Может, брать наиболее похожие наборы скиллов и усреднять их з/п с учётом «расстояния» от образца? Т.е. никакого 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