Вопрос или проблема
Мой вопрос кажется очень тривиальным, но я не совсем понимаю его. Я также понимаю, что это сообщение спрашивает мнение и знания, но не знаю, где еще спросить. У меня есть достаточно большой опыт решения даже сложных задач машинного обучения, но я никогда не сталкивался с ситуацией, когда цель все еще является параметром другой функции.
У меня есть такая функция:
t = ax + by + cz + смещение.
И база данных с t, x, y, z, m, n, o, p и т.д. Я ожидаю, что оптимальные a, b, c и т.д. будут функциями от x, y, z, m, n, o, p. Но поскольку я не знаю a, b, c и т.д., и только t в качестве метки/цели, большинство методов машинного обучения из SKlearn не работают без корректировок.
Я думал сначала запустить линейную регрессию, чтобы найти a, b, c и т.д., но это теряет всю информацию, различающую различные данные. Я полагаю, что самописный SGD мог бы решить мою проблему, но я не знаю, с чего начать. Я также думал полностью отказаться от моей конечной функции, но я хочу сохранить часть информации, содержимой в функции.
Например, я знаю, что a зависит от других параметров, чем b, и могу дать список для каждого. Моя мысль состоит в том, чтобы уменьшить возможную переобучаемость, дав как можно больше ограничений, особенно поскольку мой набор данных не такой большой.
Возможно, будет полезно сопоставить вашу проблему с обычной линейной регрессией:
$$ y = β_0 + B_1x_1 + B_2+x_2 + ε $$
В вашем случае:
- $t$ будет числовыми целевыми значениями из набора данных.
- $a, b, c$ — коэффициенты/веса для оценки.
- $x, y, z$ — значения признаков из набора данных.
- $bias$ — это член пересечения $B_0$ для оценки.
После правильного форматирования набора данных можно использовать линейную регрессию из scikit-learn для оценки коэффициентов.
Вы правы в том, что оценка модели “теряет всю информацию, различающую различные данные”. Модель — это полезное упрощение данных.
Ответ или решение
Чтобы ответить на ваш вопрос о прогнозировании параметров линейной функции, важно сначала понять, как можно модифицировать стандартные подходы линейной регрессии, такие как в scikit-learn, для вашего случая. Ваше уравнение $t = ax + by + cz + bias$ требует, чтобы параметры $a$, $b$, и $c$ были моделированы как функции переменных $x$, $y$, $z$, $m$, $n$, $o$, $p и так далее.
Чтобы учесть эти зависимости, можно применить комбинацию методов машинного обучения и внести некоторые коррективы в процесс обучения модели. Рассмотрим несколько стратегий для решения этой задачи:
-
Множественная линейная регрессия с функциями:
Вы можете создать дополнительный уровень переменных, предполагая зависимость каждого параметра от других переменных в вашей базе данных. Например, вместо прямого решения для $a$, $b$, $c$, можно использовать подход, где $a$, $b$, $c$ зависят от другого подмножества переменных. -
Методы регуляризации:
Для борьбы с переобучением можно использовать методы Lasso или Ridge, которые добавляют штраф за сложность модели. Это поможет сохранить количество параметров на разумном уровне, особенно на маленьких выборках. -
Градиентный спуск:
Создать свой собственный алгоритм на основе градиентного спуска может быть полезно для оптимизации параметров. Используйте стохастический градиентный спуск (SGD) для нахождения оптимальных значений $a$, $b$, $c$, учитывая дополнительные функции. -
Модели на основе деревьев решений:
Применение более сложных моделей, таких как деревья решений или случайные леса, может оказаться полезным для выявления сложных нелинейных зависимостей между параметрами и признаками. -
Факторный анализ или PCA:
Провести факторный анализ, чтобы выявить основные компоненты данных. Это может помочь определить зависимость параметров от набора скрытых переменных, которые передаются в ваше уравнение.
Для реализации этих подходов, сначала подготовьте данные, отделив зависящие подмножества переменных, и определите набор функций для каждого из параметров. После подготовки данных, выберите наиболее подходящий метод и настройте его под особенности вашей задачи.
Оптимизация процесса и корректная начальная настройка данных позволят получить более точные прогнозы, сохраняя структуру и зависимость параметров, как вам требуется. Занимайтесь этими аспектами с профессиональным подходом, чтобы каждый этап реализации был четко обоснован и эффективно реализован.