繁体   English   中英

功能最大化

Function Maximisation

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试使用以下代码最大化功能:

from scipy.optimize import minimize
from scipy.stats import lognorm, norm
import numpy as np

np.random.seed(123)
obs = np.random.normal(loc=20, scale=3, size=20)

# Log-Posterior optimisation objectiv 
def objective(params, y):
    mu = params[0]
    sigma = params[1]
    llikelihood = np.sum(np.log(norm.pdf(y, mu, sigma)))
    lpost = llikelihood + np.log(norm.pdf(mu, 0, 100)) + np.log(lognorm.pdf(sigma, loc= 0, s = 4))
    return -1*lpost

starting_mu = 0
starting_sigma = 1
optim_res = minimize(fun = objective, x0=(starting_mu, starting_sigma), args=(obs))

该代码可以很好地运行到最后的优化行。 我非常有信心,错误是我尝试像R中那样进行优化,使用相同的设置和观察结果, objective()得出的值相同。 此外,使用optim()函数确实optim()值优化为mu = 21.6和sigma = 3.28。

我可以使用R代码,但是,在Python中运行该代码会更容易,以便它可以与我正在做的所有其他事情集成。

编辑:追溯消息是:

dert2@ma0phd201803:~$ python laplace_approx.py 
laplace_approx.py:12: RuntimeWarning: divide by zero encountered in log
    lpost = llikelihood + np.log(norm.pdf(mu, 0, 100)) + np.log(lognorm.pdf(sigma, loc= 0, s = 4))
laplace_approx.py:12: RuntimeWarning: divide by zero encountered in log
    lpost = llikelihood + np.log(norm.pdf(mu, 0, 100)) + np.log(lognorm.pdf(sigma, loc= 0, s = 4))
laplace_approx.py:12: RuntimeWarning: divide by zero encountered in log
    lpost = llikelihood + np.log(norm.pdf(mu, 0, 100)) + np.log(lognorm.pdf(sigma, loc= 0, s = 4))
/opt/anaconda3/lib/python3.7/site-packages/numpy/core/fromnumeric.py:83:     RuntimeWarning: invalid value encountered in reduce
    return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
1 个回复

快速调试程序后发现, norm.pdf(y, mu, sigma)在一次迭代中返回了一个nan数组。 在同一迭代中, lognorm.pdf(sigma, loc=0, s=4)返回零。 甚至在此之前, sigma被分配为负值。 这确实是问题开始的地方。 确切地跟踪为什么要使用负的params[1]值调用该函数会花费一些精力,但这确实发生了。 我将使用调试器来逐步执行minimize功能,以查看发生了什么。 我相信负值会在第9次调用时传递给函数,如果有帮助的话。 用于优化功能的方法可能不适用于您的特定功能。 您可以尝试使用通过分配给method参数选择的其他method (有关更多详细信息,请参见文档)。

1 最大化功能

我是Haskell的新手,我正在尝试执行以下操作: 给定的List数据类型结构为: data Lan a = Nan | Can a (Lan a) deriving Show data Lan a = Nan | Can a (Lan a) deriving Show 最后我做到了 ...

2 根据功能最大化

我试图编写一个接受函数和两个输入的函数,并返回最大化函数的参数。 这是我想要使用的设置: 例如,该函数应该如下工作: 因为(3 + 5)<(3 + 10) 我想我需要做这样的事情: 这种方法似乎并没有起作用。 感谢您的任何帮助! ...

2016-10-24 00:25:55 4 261   haskell
3 如何最大化功能?

我如何才能最大化目标函数? 我有一个客户列表,可以通过三种不同的方式“激活”每个客户。 仅当与激活类型相关的布尔值等于1时,才能在“ A”或“ B”或“ C”上激活每个客户。 在输入中,我具有最终激活的次数。 ES: 使用此代码,我想最小化实际激活计数与输入数据之间 ...

4 最大化功能:什么方法?

我有一个看起来像这样的函数: f(x) = min(f_1(x_1), ..., f_n(x_n))其中n约为10,所有f_i都是正单调,平滑,它们的值几乎总是(对于所有f_i所有x_i )不同于10倍。 所以他们似乎很适合分析。 什么是最好的(快速?)方式来最大化它有这样的约束: - ...

5 Python:功能最大化

假设我具有以下简单功能和输入: 我想将此函数求解为最小化输出(最大化e)。 但这会引发类型错误 我的问题是:i)这是解决此类功能最大值的好方法吗?ii)问题出在哪里? ...

6 使用Tensorflow最大化奖励功能

我对Tensorflow很陌生,并试图最大化某种取决于神经网络输出的奖励函数。 我的网络如下所示: 因此它具有d维输入,两个具有q1和q2单位的隐藏层以及一个输出单位。 我的训练数据集xtrain由M d-dim向量组成,这些向量产生如下奖励: 其中g是一些函数,具体取决于训 ...

8 pyqt关闭双击最大化功能

我想关闭程序中的最大化功能。 我叫setWindowFlags方法和setWindowState方法。 它的最大化按钮确实是不可用的,但是当我双击标题栏时,它仍然会最大化程序。 如何关闭其双击以最大化? ...

9 在PDDL中最大化功能

我正在尝试使用描述语言pddl与计划者解决(单代理)游戏。 我的目标是获得尽可能多的积分,将物体传递给世界上的人们。 在以下动作描述中提供了功能(puntos): 我正在尝试通过最大化puntos函数来获得尽可能多的分数,但是计划者说: 我该如何解决这个问题? 域的 ...

2016-06-23 12:13:01 1 376   pddl
10 Powerpoint VBA 最大化功能区

有人知道用于最大化(显示选项卡和命令)和中等大小(仅显示选项卡)powerpoint 功能区的 Powerpoint VBA 语法吗? 以下适用于最小化功能区,但我找不到任何东西可以将功能区恢复到正常尺寸。 谢谢 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM