У меня есть проблема в виде Ab = c, где A — неизвестная матрица M x M, а b — вектор M x 1, а c — вектор M x 1. У меня есть много образцов b и c (переопределенная проблема), и я хочу найти «лучший» A. Какие-нибудь предложения библиотек, которые могут легко решить эту регрессию?
Как насчет нелинейной, но полиномиальной модели? То есть какое-то уравнение в виде:
[c_0 c_1 … c_M] = [1 b_0 b_1 … b_M … b_0 ^ k b_1 ^ k .. b_M ^ k] AГде k — полиномиальный порядок, A — теперь матрица M x k.
Нашел хорошее решение: DLIB решает эту проблему довольно хорошо. Здесь есть пример:
http://dlib.net/least_squares_ex.cpp.html
Примечание: если вам нужно использовать матрицы, DLIB по-прежнему требует, чтобы данные сохранялись как векторы. То есть, если вы решаете Ab = c и A является матрицей 3×3, параметр_vector в приведенном выше примере должен быть typedef matrix<double,9,1> parameter_vector;
или это не скомпилируется.
Других решений пока нет …