随机梯度下降算法回归
regression with stochastic gradient descent algorithm
我正在学习机器学习在行动书中的回归,我看到了如下来源:
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。无论如何,我们得到如下结果:
谢谢!
这只是线性回归的基础知识。在 for 循环中,它尝试计算误差函数
Z = β₀ + β₁X ; where β₁ AND X are matrices
hΘ(x) = sigmoid(Z)
i.e. hΘ(x) = 1/(1 + e^-(β₀ + β₁X)
然后更新权重。通常最好在for循环中给它一个很大的迭代次数,比如1000,我猜它会很小。
我想解释更多,但我解释得比这家伙更好here
学习愉快!!
我正在学习机器学习在行动书中的回归,我看到了如下来源:
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。无论如何,我们得到如下结果:
谢谢!
这只是线性回归的基础知识。在 for 循环中,它尝试计算误差函数
Z = β₀ + β₁X ; where β₁ AND X are matrices
hΘ(x) = sigmoid(Z)
i.e. hΘ(x) = 1/(1 + e^-(β₀ + β₁X)
然后更新权重。通常最好在for循环中给它一个很大的迭代次数,比如1000,我猜它会很小。
我想解释更多,但我解释得比这家伙更好here
学习愉快!!