Как, используя возраста друзей, определить возраст пользователя?
1. Определим величину отклонений.
Есть люди у которых куча друзей самых разных возрастов а есть те у кого приблизительно одного возраста.
2. Определим количество отклонений.
Пользователь, у него 100 друзей в возрасте 15-17 лет + ещё 10 в возрасте от 30. Прогноз: это школьник, а 10 сильно выбивающихся из средних это двое родителей + учителя допустим.
3. Если величина отклонений низкая и количество отклонений не большое то можем принять возраст человека как среднее от возраста его друзей, в противном случае копаем дальше.
Ну а вообще, одного параметра (возраст друзей) маловато для определения, нужно что-то ещё.
При такой постановке задачи самым оптимальным вариантом действительно кажется просто брать среднее, т.к. точности особой не достигнешь формулой - слишком много факторов.
Если есть ресурсы, можно попробовать подойти со стороны машинного обучения: разметить какую-то выборку (или взять готовые данные из соцсетей), накинуть дополнительных параметров (пол, мин.\макс. возраст, диапазон возрастов, количество друзей и т.д., все что имеется в наличии) и попробовать обучить сеть. Хотя,конечно, и тут нет никаких гарантий т.к. задача, особенно с такими исходными данными - довольно нетривиальна.