Я изучаю регрессию с помощью книги «Машинное обучение в действии», и я увидел источник, подобный приведенному ниже:
def stocGradAscent0(dataMatrix, classLabels):
m, n = np.shape(dataMatrix)
alpha = 0.01
weights = np.ones(n) #initialize to all ones
for i in range(m):
h = sigmoid(sum(dataMatrix[i]*weights))
error = classLabels[i] - h
weights = weights + alpha * error * dataMatrix[i]
return weights
Вы можете догадаться, что означает этот код. Но я этого не понимал. Я читал книгу несколько раз и искал похожие материалы, такие как вики или Google, где экспоненциальная функция используется для получения весов для минимальных различий. И почему мы получаем правильный вес, используя экспоненциальную функцию с суммой X * весов? Это было бы вроде OLS. В любом случае мы получим результат, как показано ниже:
Спасибо!