Python scipy.stats.rv_continuous.fit-优化器参数
使用Python scipy.stats.rv_continuous.fit-优化器参数,python,r,scipy,data-science,Python,R,Scipy,Data Science,使用scipy.stats.rv_continuous.fite.i.相对公差时,是否可以操纵优化器的参数 在R中,我们可以使用控件。Python呢 fitdist(data, "weibull", method="mle", control=list(reltol=1e-14))$estimate fit方法的optimizer参数允许您覆盖默认的优化功能(即)并提供您自己的优化功能。作为optimizer参数提供的可调用函数必须具有签名optimiz
scipy.stats.rv_continuous.fit
e.i.相对公差时,是否可以操纵优化器的参数
在R中,我们可以使用控件
。Python呢
fitdist(data, "weibull", method="mle", control=list(reltol=1e-14))$estimate
fit
方法的optimizer
参数允许您覆盖默认的优化功能(即)并提供您自己的优化功能。作为optimizer
参数提供的可调用函数必须具有签名optimize(func,x0,args=(),disp=False)
要更改默认控制参数,可以使用自定义的优化器
,该优化器使用附加的xtol
和/或ftol
参数调用fmin
。(注意:您可以使用不同的优化器,而不是fmin
)我经常使用的优化器是
from scipy.optimize import fmin
def optimizer(func, x0, args=(), disp=False):
return fmin(func, x0, args=args, disp=disp, xtol=1e-13, ftol=1e-12)
比如说,
from scipy.stats import weibull_min
from scipy.optimize import fmin
def optimizer(func, x0, args=(), disp=False):
return fmin(func, x0, args=args, disp=disp, xtol=1e-13, ftol=1e-12)
data = [2457.145, 878.081, 855.118, 1157.135, 1099.82]
shape, loc, scale = weibull_min.fit(data, floc=0, optimizer=optimizer)
print(f"shape = {shape:9.7f}, scale={scale:9.7f}")
输出:
shape = 2.3078998, scale=1463.7713354