Оценка наклона и перехвата с использованием логарифмической вероятности для линейной регрессии - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть y как (1,10) и y-предсказано как (1,10), а также у меня есть значения наклона и перехвата, которые использовались для получения y-предсказания.У меня путаница в реализации линейной регрессии с логарифмической вероятностью.Я видел много постов в блоге для этого, но ни один из них не работает (конечно, я делаю что-то не так).Вот функция логарифмического правдоподобия, которую я сделал, которая сообщает logL о y-предсказании с некоторым заданным наклоном (a) и перехватом (b): -

import math

def loglik(a,b):
    "prob of y, given values of a and b"
    loglike=[]
    for i in range(len(x)):    #x has features
        predicted=a*x[i]+b     #doing prediction using given a and b
        real=y[i]              #actual label
        l=math.log(predicted)/math.log(real)    #not sure that it is right
        loglike.append(l)
    loglike=np.array(loglike)
    result = np.prod(loglike)
    return result

Затем я должен вызвать эту функцию, сделать массивы результатови сделать цветную сетку, и вот как я это делаю: -

# a has slope and b has intercept of the fitted model
arange =[a-0.5,a-0.4,a-0.3,a-0.2,a-0.1,a,a+0.1,a+0.2,a+0.3,a+0.4]      #(a-0.5,a+0.4) 
brange = [b,b-4,b-3,b-2,b-1,b,b+1,b+2,b+3,b+4]                          #(b-5,b+4)

ll=[]
for i in range(10):
    sublist=[]
    for j in range(10):
        sublist.append(loglik(arange[i],brange[j]))
    ll.append(np.array(sublist))

arange=np.array(arange)
brange=np.array(brange)
ll=np.array(ll)

Пожалуйста, скажите мне, что я делаю не так, я попытался реализовать формулу для правдоподобия и результаты довольно странные, вот как язнаю, что я делаю не так.После этого я должен выбрать значения a и b, максимизируя логоподобность, и выполнить градиентное восхождение, чтобы реализовать регрессионную модель.Любая помощь будет высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...