Новый ответ
Я бы попытался использовать регрессию, но так, как я указал. Я хотел бы попробовать бинаризацию каждой переменной (если это правильный термин). Переменная Internet является двоичной, но я бы сделал ее двумя отдельными двоичными значениями. Я проиллюстрирую это на примере, потому что я чувствую, что он будет более ярким. Для моего примера я просто буду использовать три имени (Гертруда, Дженнифер и Мэри) и переменную Интернета.
У меня 4 женщины. Вот их данные:
Gertrude, Internet, 57
Jennifer, Internet, 23
Gertrude, No Internet, 60
Mary, No Internet, 35
Я бы сгенерировал матрицу А, вот так (каждая строка представляет соответствующую женщину в моем списке):
[[1,0,0,1,0],
[0,1,0,1,0],
[1,0,0,0,1],
[0,0,1,0,1]]
Первые три столбца представляют имена, а два последних - Интернет / Нет Интернета. Таким образом, столбцы представляют
[Gertrude, Jennifer, Mary, Internet, No Internet]
Вы можете продолжать делать это с другими именами (500 столбцов для имен) и для регионов (20 столбцов для них). Тогда вы будете просто решать стандартную задачу линейной алгебры A * x = b, где b для приведенного выше примера равно
b=[[57],
[23],
[60],
[35]]
Вы можете быть обеспокоены тем, что A теперь будет огромной матрицей, но это огромная, чрезвычайно разреженная матрица, и, следовательно, ее можно очень эффективно хранить в виде разреженной матрицы. Каждая строка имеет 3 1 в, а остальные равны 0. Вы можете просто решить это с помощью разреженного матричного решателя. Вы захотите провести какой-то корреляционный тест по полученным возрастам прогнозирования, чтобы увидеть, насколько он эффективен.