gpt4 book ai didi

python - Scipy/python 中分段函数的优化

转载 作者:行者123 更新时间:2023-11-28 17:28:38 29 4
gpt4 key购买 nike

我一直在尝试通过 scipy 优化器传递分段函数。我在下面构建的示例显示了问题:

args = (6,6,7,1,2,4,6,6)
def _alpha(params, *args):
knot = params[0]
rate = np.asarray(args)
where_knot = np.where(rate>knot, 1, 0)
return np.sum(where_knot)

seed_vals = (5,)
bounds = ((1,7), )
res1 = optimize.minimize(_alpha, seed_vals, args=args, method='L-BFGS-B', bounds=bounds)
res1.x
>>> array([ 5.])

但是,这显然不是解决方案:

print _alpha((5,), args)
>>> 5
print _alpha((7,), args)
>>> 0

有没有办法做到这一点?

编辑:我也试过 numpy 分段函数并得到相同的结果。

最佳答案

你需要使用这个来调整你的近似步长:http://docs.scipy.org/doc/scipy/reference/optimize.minimize-lbfgsb.html#optimize-minimize-lbfgsb

默认值类似于 .0000001,因此它将估计节点的梯度为 0

关于python - Scipy/python 中分段函数的优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36413292/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com