随机梯度下降算法的回归

时间:2019-12-26 15:13:51

标签: machine-learning regression linear-regression exponential stochastic-gradient

我正在使用《机器学习在行动》一书研究回归,并且看到了类似以下的来源:

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

您可能会猜出代码的含义。但是我不明白。我读了好几次书,并搜索了诸如Wiki或google之类的相关内容,其中指数函数来自于以获得最小差异的权重。为什么我们使用指数函数和X *权重之和来获得适当的权重?这将是一种OLS。无论如何,我们得到如下结果: enter image description here

谢谢!

1 个答案:

答案 0 :(得分:1)

这只是线性回归的基础。在for循环中,它尝试计算误差函数

  Z =β₀+β₁X;其中β₁和X是矩阵

     

hΘ(x)=乙状结肠(Z)

     

即hΘ(x)= 1 /(1 + e ^-(β₀+β₁X)

然后更新权重。通常,最好在for循环中给它较大的迭代次数,例如1000,如果我想这样的话,它会很小。

我想解释更多,但我无法比这个家伙here

更好地解释

学习愉快!