【发布时间】:2019-02-25 14:49:44
【问题描述】:
对于 100 左右的某个整数 K,我有 2 * K (n, n) 数组:X_1, ..., X_K 和 Y_1, ..., Y_K。
我想同时执行 K 个最小二乘,即找到 n × n 矩阵 A 最小化 k 上的平方和:\sum_k norm(Y_k - A.dot(X_k), ord='fro') ** 2(A 不能依赖于 k)。
我正在寻找一种简单的方法来使用 numpy 或 scipy 执行此操作。 我知道我想要最小化的函数是 A 中的二次形式,所以我可以手动完成,但我正在寻找一种现成的方法。有吗?
【问题讨论】:
-
所有 2000 个数组都使用相同的
A? -
@Joe K 是一个变量(我同意这个名字选错了),不是公斤的缩写。是的,所有 K 数组的 A 相同。否则我会独立执行 K 最小二乘。
-
嗯,那应该是n^2个变量的优化问题吧?
-
n的大小大概是多少? -
@Joe 是的,就像常规矩阵最小二乘法 (K=1) 一样。它甚至有一个封闭形式的解,因为目标函数在 A 中是二次的。
标签: python numpy scipy linear-algebra least-squares