least-squares 相关问题

指一般估计技术,其选择参数值以最小化两个量之间的平方差,例如变量的观测值,以及以参数值为条件的该观察的预期值。关于[tag:least-squares]背后理论的问题应该使用[Cross Validated](https://stats.stackexchange.com/questions)Stack Exchange站点。

numpy Polynomial.fit 的零次拟合会产生意想不到的结果

将 numpy 导入为 np f = np.array( [481.62900766、511.94542042、647.40216379、686.10402156、849.9420538、888.64398048、1029.26087049、1071.18799217、 1210.51481107、1266.63254274、1409.54282...

回答 1 投票 0

如何将指数 3D 表面拟合到测量数据

这是我的数据: [[1.0183786345931547、1.0299586760768078、1.038641346963767、1.0450398412805133、1.194598528164483]、[1.0498980141678536、1.0 740481275807727, 1.101990429736493, 1.1528998376687427, 1.

回答 1 投票 0

如何对 np.linalg.lstsq 强制增加系数约束

我有一个线性方程组 我需要找到最小化最小二乘误差的 x x 中元素的正值增加的约束; 使用 np.linalg.lstsq 函数...

回答 1 投票 0

极小高维多元拟合问题

我想使用 iminuit 执行多元拟合。当我使用二维时,一切正常,但如果我使用超过两毛钱,我会收到“ValueError:太多值无法解压(预期为 2)”...

回答 1 投票 0

scipy.optimize.least_squares() 运行 5 次并每次都返回初始猜测

我正在运行最小二乘优化,根据测量值拟合我的数据。我创建了一个成本函数,所有函数参数似乎都很好,但结果与

回答 1 投票 0

利用最小二乘法scipy优化两个耦合方程的拟合参数

我想拟合这4个参数 K0 = np.array([K11, K12, K21, K22]). 来自耦合方程 f(x, 参数) 和 g(x, 参数) f = rac{(K11**x + 2**K11*K12*x*x)}{(2(1 + K11*x + K11*K12...

回答 1 投票 0

用Python中的QR分解解决超定系统

我正在尝试使用 QR 分解和 linalg.solve 来解决超定系统,但我得到的错误是 LinAlgError:数组的最后 2 个维度必须是正方形。 当 R arra...

回答 4 投票 0

Python 中的加权最小二乘法

我正在尝试对我的数据进行加权最小二乘拟合。当 x=0 和 x>0.2 时的值应给予较大的权重。 0时的值 我正在尝试对我的数据进行加权最小二乘拟合。当 x=0 和 x>0.2 时的值应给予较大的权重。 0时的值 我的数据是: filtered_x = array([0. , 0.03807991, 0.05077321, 0.06346652, 0.07615982, 0.08885313, 0.10154643, 0.11423973, 0.12693304, 0.13962634, 0.15231964, 0.16501295, 0.17770625, 0.19039955, 0.20309286, 0.21578616, 0.22847947, 0.24117277, 0.25386607, 0.26655938, 0.27925268, 0.29194598, 0.30463929, 0.31733259, 0.33002589, 0.3427192 ]) filtered_y = array([0. , 1.53989397, 2.04460628, 4.18043213, 2.97621482, 2.82642339, 2.98335023, 2.98964836, 2.12218901, 1.42801972, 1.25930683, 0.71644077, 0.48220866, 0.21165985, 0.24756609, 0.21123179, 0.57344999, 0.49362762, 0.20282767, 0.50321186, 0.50347165, 0.74259408, 0.48493783, 0.81785588, 0.54543666, 0.53218838]) 我已经有以下代码: # fitted function def fpow(x, a, b, c): return a*x**b+c # custom weight function def custom_weights(x): weights = np.ones_like(x) # Default weight for all points weights[x == 0] = 0.1 # Low Error for x = 0 weights[x > 0.2] = 0.1 # Low Error for x > 0.15 weights[(0 < x) & (x <= 0.2)] = 0.5 # Medium error for 0 < x <= 0.2 return weights # Weight 0 and higher wavenumbers heavier # initial guess pars0 = (0.4, 0.4, 1) # perform fitting with custom weights popt, pcov = curve_fit(fpow, filtered_x, filtered_y, absolute_sigma=True, p0=pars0, sigma=custom_weights(filtered_x), maxfev =5000) # parameters a_opt = popt[0] b_opt = popt[1] c_opt = popt[2] # plot data plt.errorbar(filtered_x, filtered_y, yerr=0, fmt =".", color='black', label ='data', zorder=1, markersize=5) # creating x interval to include in y fit x_interval = np.linspace(0, max(filtered_x), 1000) y_fit = fpow( x_interval , *popt) plt.plot( x_interval, y_fit, color = "red", label = "Weighted fit", zorder=2 , linewidth=3) plt.grid(True) plt.ylabel("U [m/s]") plt.xlabel("Wavenumber [rad/m]") plt.title("LS Weighted Fit of Current") plt.legend() plt.show() 我得到以下内容 它还给了我一个运行时错误 <ipython-input-747-a3ac7b8135e0>:2: RuntimeWarning: divide by zero encountered in power return a*x**b+c 您可以看到出了问题,对于较大的 x 值拟合效果不好。我尝试删除数据中的 (0,0) 点,但是,我得到了更糟糕的结果,如下所示: 这里有一个关于这种RuntimeError的问题,答案建议对数据使用非常小的值而不是零。 filtered_x = array([1e-8, 0.03807991, 0.05077321, 0.06346652, 0.07615982, 0.08885313, 0.10154643, 0.11423973, 0.12693304, 0.13962634, 0.15231964, 0.16501295, 0.17770625, 0.19039955, 0.20309286, 0.21578616, 0.22847947, 0.24117277, 0.25386607, 0.26655938, 0.27925268, 0.29194598, 0.30463929, 0.31733259, 0.33002589, 0.3427192]) filtered_y = array([1e-8, 1.53989397, 2.04460628, 4.18043213, 2.97621482, 2.82642339, 2.98335023, 2.98964836, 2.12218901, 1.42801972, 1.25930683, 0.71644077, 0.48220866, 0.21165985, 0.24756609, 0.21123179, 0.57344999, 0.49362762, 0.20282767, 0.50321186, 0.50347165, 0.74259408, 0.48493783, 0.81785588, 0.54543666, 0.53218838]) 注意第一个位置的 1e-8。这样就消除了警告。 它还会在一定程度上改善贴合度。 但请查看另一个问题,因为它建议了更多方法来改善贴合度。 编辑: 我忘了提及,我更改了您的自定义权重函数,因此它使用np.isclose。检查浮点数是否相等很容易出错,而且通常不是您想要的。 np.isclose 检查数字是否处于要比较的值的给定 epsilon 环境中。 stdlib 中有一个类似的函数math.isclose。 # custom weight function def custom_weights(x): weights = np.ones_like(x) # Default weight for all points weights[np.isclose(x, 0, atol=1e-7)] = 0.1 # Low Error for x = 0 weights[x > 0.2] = 0.1 # Low Error for x > 0.15 weights[(0 < x) & (x <= 0.2)] = 0.5 # Medium error for 0 < x <= 0.2 return weights

回答 1 投票 0

在每个点上绘制指向图中线条的箭头

我正在尝试使用 matplotlib 绘制从每个数据点到图中的线的箭头。 我希望箭头代表每个点和线之间的距离。我怎样才能做到这一点? 这里'...

回答 1 投票 0

DolphinDB 中是否可以将 ols 函数与 context by 子句一起使用?

当我将 ols 函数与 context by 子句一起使用时,如下所示,会发生错误: update Factor set cor = moving(calOls{n}, (close, arc, vrc, src, krc), win) context byunderlying => 计算:r...

回答 1 投票 0

具有复杂元素的矩阵的 numpy 最小二乘解

我正在尝试求解方程 y=a*x。我有 x (x1,x2,x3) 和 y (y1,y2,y3) 的三个测量值,并试图找到“a”(斜率)。第一件重要的事情是 y 和 X 是 c...

回答 1 投票 0

尽管 x0 在范围内,Scipy 优化仍会引发 ValueError

我正在尝试将 S 型曲线拟合到一小组点上,基本上从一组观察结果生成一条概率曲线。我正在使用 scipy.optimize.curve_fit,稍微修改了逻辑...

回答 2 投票 0

为什么我的线性最小二乘法不适合数据点

我得到的二维平面不太适合这样的代码: 将 numpy 导入为 np 从 scipy 导入 linalg as la 从 scipy.linalg 导入解决 # 数据 f1 = np.array([1., 1.5, 3.5, 4.]) f2 = np.array([3.,...

回答 1 投票 0

为什么我的最小二乘法不适合数据点

我得到的二维平面不太适合这样的代码: 将 numpy 导入为 np 从 scipy 导入 linalg as la 从 scipy.linalg 导入解决 # 数据 f1 = np.array([1., 1.5, 3.5, 4.]) f2 = np.array([3.,...

回答 1 投票 0

Python 中的 NDVI 双 Logistic 曲线拟合

我正在尝试用Python进行NDVI双逻辑曲线拟合。这种双逻辑曲线拟合由 Beck 等人发表。 2006 年。有一个 R 包 greenbrown 花了一年多的时间来完成这个任务,所以...

回答 1 投票 0

使用相对稀疏的矩阵(0.4%的数据)计算最小二乘法的最快方法

上下文:我求解方程 A_des.x = b,其中通过最小二乘法找到 x。我必须执行此操作数千次。 A_des 在每次迭代之间发生变化,但仍然保持不变...

回答 1 投票 0

Python中的递归最小二乘法?

有人知道在Python中实现递归最小二乘函数的简单方法吗? 我想要一种快速回归线性漂移的方法([1 2 ... n],其中 n 是直到...

回答 3 投票 0

使用 Numpy 找到两个线性方程的交点

目标是找到两个线性方程的交点。这两个线性方程是使用 Numpy polyfit 函数导出的。 给定两个时间序列 (xLeft, yLeft) 和 (xRight,

回答 2 投票 0

用于图像去噪的 L2 正则化最小二乘法

我是图像处理和优化的新手。 设 y 是由关系 y = x+n 描述的噪声图像,其中 u 是无噪声图像,n 是噪声。目标是从 n 中恢复 x。 分钟 |...

回答 1 投票 0

解决复合线性优化问题

我想在 MATLAB 中解决以下复合优化问题: 分钟 (Ax-a)、分钟 (Bx-b)、分钟 (Cx-c) 满足 Dx=d 且 x>=0,其中 a,b,c,d 是向量,A,B,C,D 是矩阵,al...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.