所以,我在polyfit中查找了关于weights参数的信息(多项式多项式多项式.polyfit)函数,它似乎与与各个点相关的错误有关。(How to include measurement errors in numpy.polyfit)
然而,我所要做的与错误无关,只是重量。我有一个纽比阵列的图像,它显示了探测器中沉积的电荷量。我把那个图像转换成散点图,然后做一个拟合。但我希望这种匹配能给电荷沉积较多的点赋予更多的权重,给电荷较少的点赋予较少的权重。这就是权重参数的作用吗?在
^{1}$让我给你解释一下密码:
第一行指定一个称为weights的变量中的电荷。接下来的两行得到的点是电荷沉积量大于等于0,因此有一些电荷沉积在这里以捕捉散点图的坐标。然后我得到整个图像的大小,以便以后转换成一维数组进行打印。然后我浏览图像,试图得到一些电荷沉积点的坐标(记住电荷的量存储在变量weights
)中。然后我重塑y坐标以得到一维数组,并从图像中得到所有对应的y坐标的x坐标,然后将权重的形状也更改为一维。在
编辑:如果有一种方法可以使用np.linalg.lstsq
函数来完成这项工作,那将是非常理想的,因为我还试图获得穿过绘图顶点的拟合度。我可以重新定位绘图,使顶点为零,然后使用np.linalg.lstsq
,但这不允许我使用权重。在
所以我可能误解了这个问题,但我只是尝试将一条直线拟合到散点图上,然后使用weights参数更改拟合以确定特定点的优先级。
我用np.polyfit和np.polynomial.polynomial.polyfit尝试过,我希望它们的行为都是一样的,因为它们都是最小化平方误差的(至少这是我的理解)。
然而,两者的配合却大不相同,见下文。不太清楚该怎么解释。在
代码
在np.polyfit公司
无重量(或全部设置为1)
当第二个点的权重设置为12时,所有其他权重均为1
在np.多项式.多项式.polyfit
无重量
当第二个点的权重设置为12时,所有其他权重均为1
所以np.polyfit公司表现如我所料,但我真的不知道发生了什么事np.多项式.多项式.polyfit即使是没有任何重量的适合我也没有任何意义。
但我认为np.polyfit公司你想干什么?更改权重参数显然会为权重较高的点提供更多权重。在
您可以使用^{} 。它允许你不适合截距(也就是说,直线穿过原点,或者,用一些诡计,你选择的点)。它还处理加权数据。在
(大多是无耻地从@Hiho的回答中偷来的)
相关问题 更多 >
编程相关推荐