数据格式不是问题,但是您
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])
这个输出是否有意义,我无法判断:)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)