Skip to content

Commit

Permalink
更新 img 链接
Browse files Browse the repository at this point in the history
  • Loading branch information
jiangzhonglian committed Aug 24, 2018
1 parent 1a54fb9 commit 33cfb5b
Show file tree
Hide file tree
Showing 21 changed files with 187 additions and 185 deletions.
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

> **欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远**
* **ApacheCN - 学习机器学习群【629470233】<a target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=30e5f1123a79867570f665aa3a483ca404b1c3f77737bc01ec520ed5f078ddef"><img border="0" src/img/MainPage/ApacheCN-group.png" alt="ApacheCN - 学习机器学习群[629470233]" title="ApacheCN - 学习机器学习群[629470233]"></a>**
* **ApacheCN - 学习机器学习群【629470233】<a target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=30e5f1123a79867570f665aa3a483ca404b1c3f77737bc01ec520ed5f078ddef"><img border="0" src="img/ml/MainPage/ApacheCN-group.png" alt="ApacheCN - 学习机器学习群[629470233]" title="ApacheCN - 学习机器学习群[629470233]"></a>**
* **Machine Learning in Action (机器学习实战) | [ApacheCN(apache中文网)](http://cwiki.apachecn.org/)**
* 电子版书籍:[【机器学习实战-中文版-带目录版.pdf】](https://github.com/apachecn/AiLearning/tree/master/books)
* -- 感谢 [群小哥哥:Wizard Zhang](https://github.com/wizardforcel) 生成的电子书[《机器学习实战-ApacheCN.pdf》](https://github.com/apachecn/AiLearning/blob/master/books/机器学习实战-ApacheCN.pdf)
Expand Down Expand Up @@ -354,7 +354,7 @@ mage字幕是为给定图像生成文本描述的任务。

> 视频怎么看?
![](images/MainPage/ApacheCN-ML-bilibili-compare.jpg)
![](img/MainPage/ApacheCN-ML-bilibili-compare.jpg)

1. 理论科班出身-建议去学习 Andrew Ng 的视频(Ng 的视频绝对是权威,这个毋庸置疑)
2. 编码能力强 - 建议看我们的[《机器学习实战-教学版》](https://space.bilibili.com/97678687/#!/channel/detail?cid=22486)
Expand All @@ -377,9 +377,9 @@ mage字幕是为给定图像生成文本描述的任务。
|||
| - | - |
| AcFun | B站 |
| <a title="AcFun(机器学习视频)" href="http://www.acfun.cn/u/12540256.aspx#page=1" target="_blank"><img width="290" src="images/MainPage/ApacheCN-ML-AcFun.jpg"></a> | <a title="bilibili(机器学习视频)" href="https://space.bilibili.com/97678687/#!/channel/index" target="_blank"><img width="290" src="images/MainPage/ApacheCN-ML-bilibili.jpg"></a> |
| <a title="AcFun(机器学习视频)" href="http://www.acfun.cn/u/12540256.aspx#page=1" target="_blank"><img width="290" src="img/MainPage/ApacheCN-ML-AcFun.jpg"></a> | <a title="bilibili(机器学习视频)" href="https://space.bilibili.com/97678687/#!/channel/index" target="_blank"><img width="290" src="img/MainPage/ApacheCN-ML-bilibili.jpg"></a> |
| 优酷 | 网易云课堂 |
| <a title="YouKu(机器学习视频)" href="http://i.youku.com/apachecn" target="_blank"><img width="290" src="images/MainPage/ApacheCM-ML-youku.jpg"></a> | <a title="WangYiYunKeTang(机器学习视频)" href="http://study.163.com/course/courseMain.htm?courseId=1004582003" target="_blank"><img width="290" src="images/MainPage/ApacheCM-ML-WangYiYunKeTang.png"></a> |
| <a title="YouKu(机器学习视频)" href="http://i.youku.com/apachecn" target="_blank"><img width="290" src="img/MainPage/ApacheCM-ML-youku.jpg"></a> | <a title="WangYiYunKeTang(机器学习视频)" href="http://study.163.com/course/courseMain.htm?courseId=1004582003" target="_blank"><img width="290" src="img/MainPage/ApacheCM-ML-WangYiYunKeTang.png"></a> |

> 【免费】机器/深度学习视频 - 吴恩达
Expand Down Expand Up @@ -470,3 +470,5 @@ mage字幕是为给定图像生成文本描述的任务。

* https://machinelearningmastery.com/datasets-natural-language-processing
* 【比赛收集平台】: https://github.com/iphysresearch/DataSciComp

![](https://apachecn.github.io/home/img/about/donate.jpg)
12 changes: 6 additions & 6 deletions docs/1.机器学习基础.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 第1章 机器学习基础

![机器学习基础_首页](/img/1.MLFoundation/机器学习基础-首页.jpg)
![机器学习基础_首页](/img/ml/1.MLFoundation/机器学习基础-首页.jpg)

## 机器学习 概述

Expand Down Expand Up @@ -86,11 +86,11 @@
这个算法可以训练程序做出某一决定。程序在某一情况下尝试所有的可能行动,记录不同行动的结果并试着找出最好的一次尝试来做决定。 属于这一类算法的有马尔可夫决策过程。
### 训练过程

![机器学习训练过程图](/img/1.MLFoundation/机器学习基础训练过程.jpg)
![机器学习训练过程图](/img/ml/1.MLFoundation/机器学习基础训练过程.jpg)

### 算法汇总

![算法汇总](/img/1.MLFoundation/ml_algorithm.jpg)
![算法汇总](/img/ml/1.MLFoundation/ml_algorithm.jpg)


## 机器学习 使用
Expand All @@ -104,7 +104,7 @@

> 举例
![选择算法图](/img/1.MLFoundation/机器学习基础-选择算法.jpg)
![选择算法图](/img/ml/1.MLFoundation/机器学习基础-选择算法.jpg)

> 机器学习 开发流程
Expand Down Expand Up @@ -215,7 +215,7 @@ F 值 = 70% * 50% * 2 / (70% + 50%) = 58.3%

下面这个图可以比较直观地展示出来:

![](/img/1.MLFoundation/ml_add_1.jpg)
![](/img/ml/1.MLFoundation/ml_add_1.jpg)

### 特征工程的一些小东西

Expand All @@ -225,7 +225,7 @@ F 值 = 70% * 50% * 2 / (70% + 50%) = 58.3%

下面给出一个特征工程的图:

![](/img/1.MLFoundation/ml_add_2.jpg)
![](/img/ml/1.MLFoundation/ml_add_2.jpg)

### 其他

Expand Down
10 changes: 5 additions & 5 deletions docs/10.k-means聚类.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# 第 10 章 K-Means(K-均值)聚类算法

![K-Means(K-均值)聚类算法_首页](/img/10.KMeans/K-Means_首页.jpg)
![K-Means(K-均值)聚类算法_首页](/img/ml/10.KMeans/K-Means_首页.jpg)
## 聚类
聚类,简单来说,就是将一个庞杂数据集中具有相似特征的数据自动归类到一起,称为一个簇,簇内的对象越相似,聚类的效果越好。它是一种无监督的学习(Unsupervised Learning)方法,不需要预先标注好的训练集。聚类与分类最大的区别就是分类的目标事先已知,例如猫狗识别,你在分类之前已经预先知道要将它分为猫、狗两个种类;而在你聚类之前,你对你的目标是未知的,同样以动物为例,对于一个动物集来说,你并不清楚这个数据集内部有多少种类的动物,你能做的只是利用聚类方法将它自动按照特征分为多类,然后人为给出这个聚类结果的定义(即簇识别)。例如,你将一个动物集分为了三簇(类),然后通过观察这三类动物的特征,你为每一个簇起一个名字,如大象、狗、猫等,这就是聚类的基本思想。

Expand Down Expand Up @@ -48,7 +48,7 @@ kmeans,如前所述,用于数据集内种类属性不明晰,希望能够

有关 ```质心` 术语更形象的介绍, 请参考下图:

![K-Means 术语图](/img/10.KMeans/apachecn-k-means-term-1.jpg)
![K-Means 术语图](/img/ml/10.KMeans/apachecn-k-means-term-1.jpg)

### K-Means 工作流程
1. 首先, 随机确定 K 个初始点作为质心(**不必是数据中的点**)。
Expand Down Expand Up @@ -151,15 +151,15 @@ def kMeans(dataSet, k, distMeas=distEclud, createCent=randCent):
2. 测试一下 kMeans 函数是否可以如预期运行, 请看: <https://github.com/apachecn/AiLearning/blob/master/src/py2.x/ML/10.kmeans/kMeans.py>

参考运行结果如下:
![K-Means 运行结果1](/img/10.KMeans/apachecn-k-means-run-result-1.jpg)
![K-Means 运行结果1](/img/ml/10.KMeans/apachecn-k-means-run-result-1.jpg)



### K-Means 聚类算法的缺陷
> 在 kMeans 的函数测试中,可能偶尔会陷入局部最小值(局部最优的结果,但不是全局最优的结果).
局部最小值的的情况如下:
![K-Means 局部最小值1](/img/10.KMeans/apachecn-kmeans-partial-best-result-1.jpg)
![K-Means 局部最小值1](/img/ml/10.KMeans/apachecn-kmeans-partial-best-result-1.jpg)
出现这个问题有很多原因,可能是k值取的不合适,可能是距离函数不合适,可能是最初随机选取的质心靠的太近,也可能是数据本身分布的问题。

为了解决这个问题,我们可以对生成的簇进行后处理,一种方法是将具有最大**SSE**值的簇划分成两个簇。具体实现时可以将最大簇包含的点过滤出来并在这些点上运行K-均值算法,令k设为2。
Expand Down Expand Up @@ -228,7 +228,7 @@ def biKMeans(dataSet, k, distMeas=distEclud):

上述函数可以运行多次,聚类会收敛到全局最小值,而原始的 kMeans() 函数偶尔会陷入局部最小值。
运行参考结果如下:
![二分 K-Means 运行结果1](/img/10.KMeans/apachecn-bikmeans-run-result-1.jpg)
![二分 K-Means 运行结果1](/img/ml/10.KMeans/apachecn-bikmeans-run-result-1.jpg)

* **作者:[那伊抹微笑](http://www.apache.wiki/display/~xuxin), [清都江水郎](http://cwiki.apachecn.org/display/~xuzhaoqing)**
* [GitHub地址](https://github.com/apachecn/AiLearning): <https://github.com/apachecn/AiLearning>
Expand Down
12 changes: 6 additions & 6 deletions docs/11.使用Apriori算法进行关联分析.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# 第 11 章 使用 Apriori 算法进行关联分析

![](/img/11.Apriori/apachecn_apriori_homepage.jpg)
![](/img/ml/11.Apriori/apachecn_apriori_homepage.jpg)

## 关联分析
关联分析是一种在大规模数据集中寻找有趣关系的任务。
Expand All @@ -12,7 +12,7 @@
## 相关术语
* 关联分析(关联规则学习): 从大规模数据集中寻找物品间的隐含关系被称作 `关联分析(associati analysis)` 或者 `关联规则学习(association rule learning)`
下面是用一个 `杂货店` 例子来说明这两个概念,如下图所示:
![关联分析示例1](/img/11.Apriori/apachecn_apriori_association_demo_1.jpg)
![关联分析示例1](/img/ml/11.Apriori/apachecn_apriori_association_demo_1.jpg)

* 频繁项集: {葡萄酒, 尿布, 豆奶} 就是一个频繁项集的例子。
* 关联规则: 尿布 -> 葡萄酒 就是一个关联规则。这意味着如果顾客买了尿布,那么他很可能会买葡萄酒。
Expand All @@ -31,14 +31,14 @@

假设我们一共有 4 个商品: 商品0, 商品1, 商品2, 商品3。
所有可能的情况如下:
![4种商品的所有组合](/img/11.Apriori/apachecn_apriori_goods_all_1.jpg)
![4种商品的所有组合](/img/ml/11.Apriori/apachecn_apriori_goods_all_1.jpg)
如果我们计算所有组合的支持度,也需要计算 15 次。即 2^N - 1 = 2^4 - 1 = 15。
随着物品的增加,计算的次数呈指数的形式增长 ...
为了降低计算次数和时间,研究人员发现了一种所谓的 Apriori 原理,即某个项集是频繁的,那么它的所有子集也是频繁的。
例如,如果 {0, 1} 是频繁的,那么 {0}, {1} 也是频繁的。
该原理直观上没有什么帮助,但是如果反过来看就有用了,也就是说如果一个项集是 `非频繁项集`,那么它的所有超集也是非频繁项集,如下图所示:

![非频繁项集](/img/11.Apriori/非频繁项集.png)
![非频繁项集](/img/ml/11.Apriori/非频繁项集.png)

在图中我们可以看到,已知灰色部分 {2,3} 是 `非频繁项集`,那么利用上面的知识,我们就可以知道 {0,2,3} {1,2,3} {0,1,2,3} 都是 `非频繁的`
也就是说,计算出 {2,3} 的支持度,知道它是 `非频繁` 的之后,就不需要再计算 {0,2,3} {1,2,3} {0,1,2,3} 的支持度,因为我们知道这些集合不会满足我们的要求。
Expand Down Expand Up @@ -272,7 +272,7 @@ def apriori(dataSet, minSupport=0.5):

### 一个频繁项集可以产生多少条关联规则呢?
如下图所示,给出的是项集 {0,1,2,3} 产生的所有关联规则:
![关联规则网格示意图](/img/11.Apriori/apachecn_association_rule_demo_1.jpg)
![关联规则网格示意图](/img/ml/11.Apriori/apachecn_association_rule_demo_1.jpg)
与我们前面的 `频繁项集` 生成一样,我们可以为每个频繁项集产生许多关联规则。
如果能减少规则的数目来确保问题的可解析,那么计算起来就会好很多。
通过观察,我们可以知道,如果某条规则并不满足 `最小可信度` 要求,那么该规则的所有子集也不会满足 `最小可信度` 的要求。
Expand Down Expand Up @@ -386,7 +386,7 @@ def generateRules(L, supportData, minConf=0.7):
* 1.首先从一个频繁项集开始,接着创建一个规则列表,其中规则右部分只包含一个元素,然后对这个规则进行测试。
* 2.接下来合并所有剩余规则来创建一个新的规则列表,其中规则右部包含两个元素。
* 如下图:
* ![所有可能的项集组合](/img/11.Apriori/所有可能的项集组合.png)
* ![所有可能的项集组合](/img/ml/11.Apriori/所有可能的项集组合.png)
* 最后: 每次增加频繁项集的大小,Apriori 算法都会重新扫描整个数据集,是否有优化空间呢? 下一章:FP-growth算法等着你的到来

* * *
Expand Down
16 changes: 8 additions & 8 deletions docs/12.使用FP-growth算法来高效发现频繁项集.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# 第12章 使用FP-growth算法来高效发现频繁项集

![](/img/12.FP-growth/apachecn_fp_growth_homepage.png)
![](/img/ml/12.FP-growth/apachecn_fp_growth_homepage.png)

## 前言
[第11章]() 时我们已经介绍了用 `Apriori` 算法发现 `频繁项集``关联规则`
Expand Down Expand Up @@ -37,31 +37,31 @@ class treeNode:
1. 遍历所有的数据集合,计算所有项的支持度。
2. 丢弃非频繁的项。
3. 基于 支持度 降序排序所有的项。
![](/img/12.FP-growth/步骤1-3.png)
![](/img/ml/12.FP-growth/步骤1-3.png)
4. 所有数据集合按照得到的顺序重新整理。
5. 重新整理完成后,丢弃每个集合末尾非频繁的项。
![](/img/12.FP-growth/步骤4-5.png)
![](/img/ml/12.FP-growth/步骤4-5.png)

步骤2:
6. 读取每个集合插入FP树中,同时用一个头部链表数据结构维护不同集合的相同项。
![](/img/12.FP-growth/步骤6-1.png)
![](/img/ml/12.FP-growth/步骤6-1.png)
最终得到下面这样一棵FP树
![](/img/12.FP-growth/步骤6-2.png)
![](/img/ml/12.FP-growth/步骤6-2.png)


从FP树中挖掘出频繁项集

步骤3:
1. 对头部链表进行降序排序
2. 对头部链表节点从小到大遍历,得到条件模式基,同时获得一个频繁项集。
![](/img/12.FP-growth/步骤6-2.png)
![](/img/ml/12.FP-growth/步骤6-2.png)
如上图,从头部链表 t 节点开始遍历,t 节点加入到频繁项集。找到以 t 节点为结尾的路径如下:
![](/img/12.FP-growth/步骤7-1.png)
![](/img/ml/12.FP-growth/步骤7-1.png)
去掉FP树中的t节点,得到条件模式基<左边路径,左边是值>[z,x,y,s,t]:2,[z,x,y,r,t]:1 。条件模式基的值取决于末尾节点 t ,因为 t 的出现次数最小,一个频繁项集的支持度由支持度最小的项决定。所以 t 节点的条件模式基的值可以理解为对于以 t 节点为末尾的前缀路径出现次数。

3. 条件模式基继续构造条件 FP树, 得到频繁项集,和之前的频繁项组合起来,这是一个递归遍历头部链表生成FP树的过程,递归截止条件是生成的FP树的头部链表为空。
根据步骤 2 得到的条件模式基 [z,x,y,s,t]:2,[z,x,y,r,t]:1 作为数据集继续构造出一棵FP树,计算支持度,去除非频繁项,集合按照支持度降序排序,重复上面构造FP树的步骤。最后得到下面 t-条件FP树 :
![](/img/12.FP-growth/步骤7-2.png)
![](/img/ml/12.FP-growth/步骤7-2.png)
然后根据 t-条件FP树 的头部链表进行遍历,从 y 开始。得到频繁项集 ty 。然后又得到 y 的条件模式基,构造出 ty的条件FP树,即 ty-条件FP树。继续遍历ty-条件FP树的头部链表,得到频繁项集 tyx,然后又得到频繁项集 tyxz. 然后得到构造tyxz-条件FP树的头部链表是空的,终止遍历。我们得到的频繁项集有 t->ty->tyz->tyzx,这只是一小部分。
* 条件模式基:头部链表中的某一点的前缀路径组合就是条件模式基,条件模式基的值取决于末尾节点的值。
* 条件FP树:以条件模式基为数据集构造的FP树叫做条件FP树。
Expand Down
6 changes: 3 additions & 3 deletions docs/13.利用PCA来简化数据.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 第13章 利用 PCA 来简化数据

![利用PCA简化数据_首页](/img/13.PCA/利用PCA简化数据_首页.jpg)
![利用PCA简化数据_首页](/img/ml/13.PCA/利用PCA简化数据_首页.jpg)

## 降维技术

Expand Down Expand Up @@ -70,7 +70,7 @@

例如下图:

![应用PCA降维](/img/13.PCA/应用PCA降维.png)
![应用PCA降维](/img/ml/13.PCA/应用PCA降维.png)

> PCA 优缺点
Expand Down Expand Up @@ -128,7 +128,7 @@ def replaceNanWithMean():

> 分析数据:统计分析 N 的阈值
![PCA分析数据过程](/img/13.PCA/PCA分析数据过程.jpg)
![PCA分析数据过程](/img/ml/13.PCA/PCA分析数据过程.jpg)

> PCA 数据降维
Expand Down
Loading

0 comments on commit 33cfb5b

Please sign in to comment.