0

我正在使用 Machine Learning in Action 书研究回归,我看到了如下来源:

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。无论如何,我们得到如下结果: 在此处输入图像描述

谢谢!

4

1 回答 1

2

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

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

hΘ(x) = sigmoid(Z)

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

然后更新权重。通常最好在for循环中给它一个高迭代次数,比如1000,我猜它会很小。

我想解释更多,但我不能比这里的这个家伙解释得更好

学习愉快!!

于 2019-12-26T15:57:08.810 回答