python将pandas数据框,参数和函数传递给scipy.optimize.minimize

python将pandas数据框,参数和函数传递给scipy.optimize.minimize,第1张

python将pandas数据框,参数和函数传递给scipy.optimize.minimize

数据格式不是问题,但是您

loglik_total
以错误的方式调用了。下面是修改后的版本,以正确的参数顺序
params
已先走,然后你通过在同一顺序的附加参数,如
args
您的
minimize
通话):

def loglik_total(params, data, id_list):    # Extract parameters.    delta_params = list(params[0:len(id_list)])    sigma_param = params[-1]    # Calculate the negative log-likelihood for every row in data and sum the values.    lt = -np.sum( data.apply(lambda row: loglik_row(row, delta_params, sigma_param, id_list), axis=1) )    return lt

如果您再致电

res = minimize(fun=loglik_total, x0=init_params, args=(data, id_list), method='nelder-mead')

它贯穿很好(注意顺序

x
data
id_list
,一样的,你传递给
loglik_total
)和
res
如下所示:

final_simplex: (array([[  2.55758096e+05,   6.99890451e+04,  -1.41860117e+05,          3.88586258e+05,   3.19488400e+05,   4.90209168e+04,          6.43380010e+04,  -1.85436851e+09],       [  2.55758096e+05,   6.99890451e+04,  -1.41860117e+05,          3.88586258e+05,   3.19488400e+05,   4.90209168e+04,          6.43380010e+04,  -1.85436851e+09],       [  2.55758096e+05,   6.99890451e+04,  -1.41860117e+05,          3.88586258e+05,   3.19488400e+05,   4.90209168e+04,          6.43380010e+04,  -1.85436851e+09],       [  2.55758096e+05,   6.99890451e+04,  -1.41860117e+05,          3.88586258e+05,   3.19488400e+05,   4.90209168e+04,          6.43380010e+04,  -1.85436851e+09],       [  2.55758096e+05,   6.99890451e+04,  -1.41860117e+05,          3.88586258e+05,   3.19488400e+05,   4.90209168e+04,          6.43380010e+04,  -1.85436851e+09],       [  2.55758096e+05,   6.99890451e+04,  -1.41860117e+05,          3.88586258e+05,   3.19488400e+05,   4.90209168e+04,          6.43380010e+04,  -1.85436851e+09],       [  2.55758096e+05,   6.99890451e+04,  -1.41860117e+05,          3.88586258e+05,   3.19488400e+05,   4.90209168e+04,          6.43380010e+04,  -1.85436851e+09],       [  2.55758096e+05,   6.99890451e+04,  -1.41860117e+05,          3.88586258e+05,   3.19488400e+05,   4.90209168e+04,          6.43380010e+04,  -1.85436851e+09],       [  2.55758096e+05,   6.99890451e+04,  -1.41860117e+05,          3.88586258e+05,   3.19488400e+05,   4.90209168e+04,          6.43380010e+04,  -1.85436851e+09]]), array([-0., -0., -0., -0., -0., -0., -0., -0., -0.]))fun: -0.0       message: 'Optimization terminated successfully.'          nfev: 930nit: 377        status: 0       success: True  x: array([  2.55758096e+05,   6.99890451e+04,  -1.41860117e+05,         3.88586258e+05,   3.19488400e+05,   4.90209168e+04,         6.43380010e+04,  -1.85436851e+09])

这个输出是否有意义,我无法判断:)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5661918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存