Skip to content

Commit 9d2ef5f

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 9dfc4e5 + 9b03311 commit 9d2ef5f

8 files changed

Lines changed: 88 additions & 366 deletions

File tree

docs/15.大数据与MapReduce.md

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@
1010
## 大数据 场景
1111

1212
```
13-
假如你为一家网络购物商店工作,很多拥护访问该网站,其中有些人会购买商品,有些人则随意浏览后就离开。
13+
假如你为一家网络购物商店工作,很多用户访问该网站,其中有些人会购买商品,有些人则随意浏览后就离开。
1414
对于你来说,可能很想识别那些有购物意愿的用户。
1515
那么问题就来了,数据集可能会非常大,在单机上训练要运行好几天。
16-
接下来:我们讲讲 Hadoop 如何来解决这样的问题
16+
接下来:我们讲讲 MapRedece 如何来解决这样的问题
1717
```
1818

1919

20-
## MapReduce
20+
## MapRedece
2121

2222
### Hadoop 概述
2323

@@ -79,21 +79,21 @@ cat input/15.BigData_MapReduce/inputFile.txt | python src/python/15.BigData_MapR
7979

8080
#### Mahout in Action
8181

82-
1. 简单贝叶斯:
83-
2. k-近邻算法:
82+
1. 简单贝叶斯:它属于为数不多的可以很自然的使用MapReduce的算法。通过统计在某个类别下某特征的概率。
83+
2. k-近邻算法:高维数据下(如文本、图像和视频)流行的近邻查找方法是局部敏感哈希算法。
8484
3. 支持向量机(SVM):使用随机梯度下降算法求解,如Pegasos算法。
8585
4. 奇异值分解:Lanczos算法是一个有效的求解近似特征值的算法。
8686
5. k-均值聚类:canopy算法初始化k个簇,然后再运行K-均值求解结果。
8787

88-
#### 使用 mrjob 库将 MapReduce 自动化
88+
### 使用 mrjob 库将 MapReduce 自动化
8989

9090
> 理论简介
9191
92-
* MapReduce作业流自动化的框架:Cascading 和 Oozie.
93-
* mrjob是一个不错的学习工具,与2010年底实现了开源,来之于Yelp(一个餐厅点评网站).
92+
* MapReduce 作业流自动化的框架:Cascading 和 Oozie.
93+
* mrjob 是一个不错的学习工具,与2010年底实现了开源,来之于 Yelp(一个餐厅点评网站).
9494

9595
```Shell
96-
python mrMean.py < inputFile.txt > myOut.txt
96+
python src/python/15.BigData_MapReduce/mrMean.py < input/15.BigData_MapReduce/inputFile.txt > input/15.BigData_MapReduce/myOut.txt
9797
```
9898

9999
> 实战脚本
@@ -106,11 +106,11 @@ python mrMean.py < inputFile.txt > myOut.txt
106106
python src/python/15.BigData_MapReduce/mrMean.py < input/15.BigData_MapReduce/inputFile.txt
107107
```
108108

109-
#### 利用 Pegasos 算法并行训练支持向量机
109+
### 项目案例:分布式 SVM 的 Pegasos 算法
110110

111111
Pegasos是指原始估计梯度求解器(Peimal Estimated sub-GrAdient Solver)
112112

113-
> Pegasos 工作原理
113+
#### Pegasos 工作原理
114114

115115
1. 从训练集中随机挑选一些样本点添加到带处理列表中
116116
2. 按序判断每个样本点是否被正确分类
@@ -130,7 +130,7 @@ Pegasos是指原始估计梯度求解器(Peimal Estimated sub-GrAdient Solver)
130130
累加对 w 的更新
131131
```
132132

133-
> 开发流程
133+
#### 开发流程
134134

135135
```
136136
收集数据:数据按文本格式存放。
@@ -141,6 +141,11 @@ Pegasos是指原始估计梯度求解器(Peimal Estimated sub-GrAdient Solver)
141141
使用算法:本例不会展示一个完整的应用,但会展示如何在大数据集上训练SVM。该算法其中一个应用场景就是本文分类,通常在文本分类里可能有大量的文档和成千上万的特征。
142142
```
143143

144+
> 训练算法
145+
146+
[完整代码地址](https://github.com/apachecn/MachineLearning/blob/master/src/python/2.KNN/kNN.py): <https://github.com/apachecn/MachineLearning/blob/master/src/python/2.KNN/kNN.py>
147+
148+
144149
我们继续看 Python 版本的代码实现。
145150

146151
* * *

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

-22.2 KB
Loading

0 commit comments

Comments
 (0)