File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -78,17 +78,13 @@ Sigmoid 函数的输入记为 z ,由下面公式得到:
7878
7979梯度上升算法用来求函数的最大值,而梯度下降算法用来求函数的最小值。
8080
81- ** 如果大家对上面的例子不理解,下面我们看一个比较容易理解的例子。 **
81+ ** 局部最优现象 **
8282
8383![ 梯度下降图_4] ( ../images/5.Logistic/LR_20.png )
8484
8585上图表示参数 θ 与误差函数 J(θ) 的关系图,红色的部分是表示 J(θ) 有着比较高的取值,我们需要的是,能够让 J(θ) 的值尽量的低。也就是深蓝色的部分。θ0,θ1 表示 θ 向量的两个维度。
8686
87- 在上面提到梯度下降法的第一步是给 θ 给一个初值,假设随机给的初值是在图上的十字点。
88-
89- 然后我们将 θ 按照梯度下降的方向进行调整,就会使得 J(θ) 往更低的方向进行变化,如图所示,算法的结束将是在θ下降到无法继续下降为止。
90-
91- 当然,可能梯度下降的最终点并非是全局最小点,可能是一个局部最小点,如我们上图中的右边的梯度下降曲线,描述的是最终到达一个局部最小点,这是我们重新选择了一个初始点得到的。
87+ 可能梯度下降的最终点并非是全局最小点,可能是一个局部最小点,如我们上图中的右边的梯度下降曲线,描述的是最终到达一个局部最小点,这是我们重新选择了一个初始点得到的。
9288
9389看来我们这个算法将会在很大的程度上被初始点的选择影响而陷入局部最小点。
9490
@@ -100,7 +96,7 @@ Sigmoid 函数的输入记为 z ,由下面公式得到:
10096每个回归系数初始化为 1
10197重复 R 次:
10298 计算整个数据集的梯度
103- 使用 alpha x gradient 更新回归系数的向量
99+ 使用 步长 x 梯度 更新回归系数的向量
104100返回回归系数
105101```
106102
Original file line number Diff line number Diff line change @@ -199,9 +199,9 @@ def simpleTest():
199199 # 因为数组没有是复制n份, array的乘法就是乘法
200200 dataArr = array (dataMat )
201201 # print dataArr
202- weights = gradAscent (dataArr , labelMat )
202+ # weights = gradAscent(dataArr, labelMat)
203203 # weights = stocGradAscent0(dataArr, labelMat)
204- # weights = stocGradAscent1(dataArr, labelMat)
204+ weights = stocGradAscent1 (dataArr , labelMat )
205205 # print '*'*30, weights
206206
207207 # 数据可视化
@@ -278,5 +278,5 @@ def multiTest():
278278
279279
280280if __name__ == "__main__" :
281- simpleTest ()
282- # multiTest()
281+ # simpleTest()
282+ multiTest ()
You can’t perform that action at this time.
0 commit comments