<input>: 15: RuntimeWarning: деление на ноль, обнаруженное в журнале <input>: 9: RuntimeWarning: переполнение, обнаруженное в double_scalars - PullRequest
0 голосов
/ 07 марта 2020

Когда я запускаю свой код, я получаю сообщение об ошибке выше при попытке получить оптимальные параметры для отрицательного логарифмического правдоподобия. Вот код L

def negative_LL(parameters, reward, choice):
V = [0, 0]
num_trials = 240
probabilities = np.ones(num_trials)
for i in range(0, num_trials):
    c = choice[i]

    if c == 1:
        p_c = np.exp(parameters[1] * V[0]) / (np.exp(parameters[1] * V[0]) + np.exp(parameters[1] * V[1]))
        V[0] = V[0] + parameters[0] * (reward[i] - V[0])
    else:
        p_c = 1 - np.exp(parameters[1] * V[0]) / (np.exp(parameters[1] * V[0]) + np.exp(parameters[1] * V[1]))
        V[1] = V[1] + parameters[0] * (reward[i] - V[1])
    probabilities[i] = p_c
return -np.sum(np.log(probabilities))


fitted_parameters = np.zeros((53, 2))
x_0 = np.array([0.5, 5])
for i in range(0, 53):
    fitted_parameters[i, :] = sci.optimize.fmin_bfgs(negative_LL, x_0, args = (data_rewards[i, :],data_choices[i, :]))

Есть идеи, где ошибка?

...