Итак, у меня есть один вектор альфы, один вектор беты, и я пытаюсь найти тета, когда сумма всех оценок (для альфы от i до n и бета от i до n) равна 60.
math.exp(alpha[i] * (theta - beta[i])) / (1 + math.exp(alpha[i] * (theta - beta[i])
По сути, я начал с тета = 0,0001 и перебирал, вычисляя все эти суммы, и когда он меньше 60, продолжал, добавляя 0,0001 каждый раз, в то время как выше 60 означает.
Я нашел значение тета таким образом. Проблема в том, что мне потребовалось около 60 секунд, используя Python, чтобы найти тета 0,456.
Как быстрее найти эту тета (поскольку я хотел бы применить это для других данных)?
def CalcTheta(score, alpha, beta):
theta = 0.0001
estimate = [score-1]
while(sum(estimate) < score):
theta += 0.00001
for x in range(len(beta)):
if x == 0:
estimate = []
estimate.append(math.exp(alpha[x] * (theta - beta[x])) / (1 + math.exp(alpha[x] * (theta - beta[x]))))
return(theta)
i
в формуле указывает i-е значение в векторе альфа и векторе бета. - person PascalVKooten   schedule 18.03.2013