Skip to content

Commit 0b4bbf4

Browse files
更新 5 logistic回归 理论部分
1 parent def4c63 commit 0b4bbf4

2 files changed

Lines changed: 7 additions & 11 deletions

File tree

docs/5.Logistic回归.md

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff 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

src/python/5.Logistic/logistic.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff 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

280280
if __name__ == "__main__":
281-
simpleTest()
282-
# multiTest()
281+
# simpleTest()
282+
multiTest()

0 commit comments

Comments
 (0)