numpy - 如何最好地使用 Numpy/Scipy 为一组不同的线性方程找到最佳公共系数?
问题描述
我有 n(大约 500 万)组特定的 (k,m,v,z)* 参数来描述一些线性关系。我想找到最佳的正 a、b 和 c 系数,以最小化它们的绝对值的相加,如下所示:
我事先知道每个 a、b 和 c 的范围,所以我可以用它来加快速度。但是,我不知道如何正确实施此问题以最好地利用 Numpy(或 Scipy/等)。
我正在考虑使用不同的 a、b 和 c 系数(基于一个步骤)迭代地进行检查,并最终保持能够提供最小总和的组合。但在 Numpy 中正确实现这一点是另一回事。
* (k,m,v 是 0 或正数,实际上是 k,m,v,i,j,p)(z 也可以是负数)
欢迎任何提示!
解决方案
要么我错过了一些东西,要么a == b == c == 0
是最佳的。(a,b,c)
因此,通常不存在积极的解决方案。0
您可以通过将最小化问题设置为on的分位数回归来明确验证这一点(k, m, v)
,并将分位数设置为0.5
。
import numpy as np
from statsmodels.regression.quantile_regression import QuantReg
x = np.random.rand(1000, 3)
a, b, c = QuantReg(np.zeros(x.shape[0]), x).fit(0.5).params
assert np.allclose([a, b, c], 0)
推荐阅读
- javascript - Array.length 是属性而不是方法,但是 .length 如何像方法一样工作?
- r - 在 R 中使用 OMDB API
- cookies - 在 Ajax woocommerce 期间更改购物车数据
- c# - 使用rest api和c#在tableau server中创建用户
- ruby - 如何检查 ruby-2.6.3 是否使用 jemalloc ?我将 ruby-2.6.3 安装为 $ rvm install 2.6.3 -C --with-jemalloc
- java - 转让税计算器
- c# - c# 从动态对象(已从 JSON 字符串转换)转换回 DataTable
- php - 自动回复不适用于使用 php mail() 的 gmail 帐户
- python - 如何使用 blit 有效地重绘多个 matplotlib 图
- python - 识别特定字符串并将其放在同一索引中