diff --git a/README.md b/README.md
index 8d7c690b..d965efdd 100644
--- a/README.md
+++ b/README.md
@@ -11,8 +11,7 @@
* 4.) [基于概率论的分类方法:朴素贝叶斯](./docs/4.朴素贝叶斯.md)
* 5.) [Logistic回归](./docs/5.Logistic回归.md)
* 6.) [支持向量机](./docs/6.支持向量机.md)
-* 7.1) [利用AdaBoost元算法提高分类](./docs/7.1.利用AdaBoost元算法提高分类.md)
-* 7.2) [随机森林的使用(非课本内容)](./docs/7.2.随机森林的使用.md)
+* 7.) [集成方法-随机森林和AdaBoost](./docs/7.集成方法-随机森林和AdaBoost.md)
## 第二部分 利用回归预测数值型数据
diff --git a/docs/1.机器学习基础.md b/docs/1.机器学习基础.md
index 17cd9273..c3950409 100644
--- a/docs/1.机器学习基础.md
+++ b/docs/1.机器学习基础.md
@@ -2,15 +2,25 @@

+
+## 机器学习 概述
+
+`机器学习`就是把无序的数据转换成有用的信息。
+1. 获取海量的数据
+2. 从海量数据中获取有用的信息
+
+
+## 机器学习 场景
+
```
例如:动物猫
模式识别:人通过经验,得到:这个就是猫。
机器学习:人通过大量的书籍来学习,得到:这个就是猫
深度学习:人通过大量的书籍,然后先对书籍内容:文字/图片/视频,进行特征提取,特征强化,降维,得到:这个就是猫。
-模式识别(Pattern recognition): 模式识别是最古老的(作为一个术语而言,可以说是很过时的)。
+模式识别(pattern recognition): 模式识别是最古老的(作为一个术语而言,可以说是很过时的)。
我们把环境与客体统称为“模式”,识别是对模式的一种认知,是如何让一个计算机程序去做一些看起来很“智能”的事情。
- 通过融于智慧和直觉后,通过构建程序,识别一些事物,而不是人,例如识别数字。
+ 通过融于智慧和直觉后,通过构建程序,识别一些事物,而不是人,例如: 识别数字。
机器学习(machine learning): 机器学习是最基础的(当下初创公司和研究实验室的热点领域之一)。
在90年代初,人们开始意识到一种可以更有效地构建模式识别算法的方法,那就是用数据(可以通过廉价劳动力采集获得)去替换专家(具有很多图像方面知识的人)。
“机器学习”强调的是,在给计算机程序(或者机器)输入一些数据后,它必须做一些事情,那就是学习这些数据,而这个学习的步骤是明确的。
@@ -33,13 +43,8 @@ http://baike.baidu.com/link?url=76P-uA4EBrC3G-I__P1tqeO7eoDS709Kp4wYuHxc7GNkz_xn
* 邮局邮寄,手写软件自动识别寄送贺卡的地址。
* 申请贷款 或 进入赌场,通过你最近的金融活动信息进行综合评定,决定你是否合格。
-## 机器学习的简单概述
-`机器学习`就是把无序的数据转换成有用的信息;机器学习将有助于我们穿越数据雾霾,从中抽取出有用的信息。
-* 1.获取海量的数据
-* 2.从海量数据中获取有用的信息
-
-## 机器学习的主要任务
+## 机器学习 主要任务
> 机器学习的主要任务就是分类和回归
@@ -49,8 +54,8 @@ http://baike.baidu.com/link?url=76P-uA4EBrC3G-I__P1tqeO7eoDS709Kp4wYuHxc7GNkz_xn
* 目标变量是机器学习预测算法的测试结果。
* 在分类算法中目标变量的类型通常是标称型(如:真与假),而在回归算法中通常是连续型(如:1~100)。
-* 机器学习的训练过程
-* 
+* 机器学习的训练过程
+
> 监督学习
@@ -61,9 +66,9 @@ http://baike.baidu.com/link?url=76P-uA4EBrC3G-I__P1tqeO7eoDS709Kp4wYuHxc7GNkz_xn
* 特征(feature-是否有缺失情况) + 目标变量(分类-离散值/回归-连续值<0~100、 -999~999>)
* 特征或者属性通常是训练样本集的列,它们是独立测量得到的结果,多个特征联系在一起共同组成一个训练样本。
* `知识表示`:(例如-机器已经学会如何识别鸟类的过程)
- * 1.可以采用规则集的形式【例如:数学成绩大于90分为优秀】
- * 2.可以采用概率分布的形式【例如:通过统计分布发现,90%的同学数学成绩,在70分以下,那么大于70分定为优秀】
- * 3.可以使用训练样本集中的一个实例【例如:通过样本集合,我们训练出一个模型实例,得出 年轻,数学成绩中高等,谈吐优雅,我们认为是优秀】
+ 1. 可以采用规则集的形式【例如:数学成绩大于90分为优秀】
+ 2. 可以采用概率分布的形式【例如:通过统计分布发现,90%的同学数学成绩,在70分以下,那么大于70分定为优秀】
+ 3. 可以使用训练样本集中的一个实例【例如:通过样本集合,我们训练出一个模型实例,得出 年轻,数学成绩中高等,谈吐优雅,我们认为是优秀】
> 非监督学习
@@ -76,17 +81,22 @@ http://baike.baidu.com/link?url=76P-uA4EBrC3G-I__P1tqeO7eoDS709Kp4wYuHxc7GNkz_xn

-## 学习机器学习
-* 选择算法需要考虑的两个问题
- * 使用机器学习算法的目的
- * 想要完成何种任务,比如是预测明天下雨的概率还是对投票者按照兴趣分组;如果想要预测目标变量的值,则可以选择监督学习算法,否则可以选择无监督学习算法。
- * 需要分析或收集的数据是什么
-* 举例
-* 
+## 机器学习 学习
+
+> 选择算法需要考虑的两个问题
+
+1. 使用机器学习算法的目的
+ * 想要完成何种任务,比如是预测明天下雨的概率还是对投票者按照兴趣分组;如果想要预测目标变量的值,则可以选择监督学习算法,否则可以选择无监督学习算法。
+2. 需要分析或收集的数据是什么
+
+> 举例
+
+
+
+> 机器学习 开发步骤
```
-开发机器学习应用程序的步骤
* 收集数据: 收集样本数据
* 准备数据: 注意数据的格式
* 分析数据: 为了确保数据集中没有垃圾数据;
@@ -97,7 +107,8 @@ http://baike.baidu.com/link?url=76P-uA4EBrC3G-I__P1tqeO7eoDS709Kp4wYuHxc7GNkz_xn
* 使用算法: 将机器学习算法转为应用程序
```
-## Python语言的优势
+
+## Python语言 优势
1. 可执行伪代码
2. Python比较流行:使用广泛、代码范例多、丰富模块库,开发周期短
@@ -107,6 +118,7 @@ http://baike.baidu.com/link?url=76P-uA4EBrC3G-I__P1tqeO7eoDS709Kp4wYuHxc7GNkz_xn
* 科学函数库:`SciPy`、`NumPy`(底层语言:C和Fortran)
* 绘图工具库:`Matplotlib`
+
* * *
* **作者:[片刻](http://www.apache.wiki/display/~jiangzhonglian) [1988](http://www.apache.wiki/display/~lihuisong)**
diff --git a/docs/7.1.利用AdaBoost元算法提高分类.md b/docs/7.1.利用AdaBoost元算法提高分类.md
deleted file mode 100644
index a5495c4a..00000000
--- a/docs/7.1.利用AdaBoost元算法提高分类.md
+++ /dev/null
@@ -1,137 +0,0 @@
-# 第7.1章 利用AdaBoost元算法提高分类
-
-
-
-## 组合相似的分类器来提高分类性能
-
-> 元算法(meta-algorithm) 或 集成方法(ensemble method)
-
-* 概念:是对其他算法进行组合的一种形式。
-* 通俗来说: 当做重要决定时,大家可能都会考虑吸取多个专家而不只是一个人的意见。
- 机器学习处理问题时又何尝不是如此? 这就是元算法(meta-algorithm)背后的思想。
-* 集成方法: 1. 投票选举(bagging) 2. 再学习(boosting)
-
-> bagging:基于数据随机重抽样的分类器构造方法
-
-* 自举汇聚法(bootstrap aggregating),也称为bagging方法,是在从原始数据集选择S次后得到S个新数据集的一种技术。
- 1. 新数据集和原数据集的大小相等。
- 2. 每个数据集都是通过在原始数据集中随机选择一个样本来进行替换(替换:意味着可以多次选择同一个样本,也就有重复值)而得到的。
- 3. 该算法作用的数据集就会得到S个分类器,与此同时,选择分类器投票结果中最多的类别作为最后的分类结果。
- 4. 例如:随机森林(random forest)
-* 选帅哥:美女选择择偶对象的时候,会问几个闺蜜的建议,最后选择一个综合得分最高的一个作为男朋友
-
-> boosting:是基于所有分类器的加权求和的方法
-
-* boosting是一种与bagging很类似的技术。
-* 不过boosting分类的结果是基于所有分类器的加权求和结果的。不论是boosting还是bagging当中,所使用的多个分类器的类型都是一致的。
-* 目前boosting方法最流行的版本是: AdaBoost。
-* 追美女:第1个帅哥失败->(传授经验:姓名、家庭情况) 第2个帅哥失败->(传授经验:兴趣爱好、性格特点) 第3个帅哥成功
-
-> bagging 和 boosting 区别是什么?
-
-1. bagging:不同的分类器是通过串形训练而获得的,每个新分类器斗根据已训练出的分类器的性能来进行训练。
-2. boosting:是通过集中关注被已有分类器错分的那些数据来获得新的分类器。
-3. 由于 boosting 分类的结果是基于所有分类器的加权求和结果的,因此 boosting 与 bagging 不太一样。
-4. bagging 中的分类器权重是相等的,而 boosting 中的分类器权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。
-
-## 应用 AdaBoost 算法
-
-> AdaBoost(adaptive boosting: 自适应boosting)
-
-```
-能否使用弱分类器和多个实例来构建一个强分类器? 这是一个非常有趣的理论问题。
-
-* 优点:泛化(由具体的、个别的扩大为一般的,就是说:模型训练完后的新样本)错误率低,易编码,可以应用在大部分分类器上,无参数调节。
-* 缺点:对离群点敏感。
-* 适用数据类型:数值型和标称型数据。
-```
-
-> AdaBoost 的一般流程
-
-```
-收集数据:可以使用任意方法
-准备数据:依赖于所使用的弱分类器类型,本章使用的是单层决策树,这种分类器可以处理任何数据类型。
- 当然也可以使用任意分类器作为弱分类器,第2章到第6章中的任一分类器都可以充当弱分类器。
- 作为弱分类器,简单分类器的效果更好。
-分析数据:可以使用任意方法。
-训练数据:AdaBoost 的大部分时间都用在训练上,分类器将多次在同一数据集上训练弱分类器。
-测试数据:计算分类的错误率。
-使用算法:通SVM一样,AdaBoost 预测两个类别中的一个。如果想把它应用到多个类别的场景,那么就要像多类 SVM 中的做法一样对 AdaBoost 进行修改。
-```
-
-* 训练算法: 基于错误提升分类器的性能
-* 基于单层决策树构建弱分类器
- * 单层决策树(decision stump, 也称决策树桩)是一种简单的决策树。
-* 过拟合(overfitting, 也称为过学习)
- * 发现测试错误率在达到一个最小值之后有开始上升,这种现象称为过拟合。
-* 
-
-> AdaBoost的算法示意图
-
-
-
-> 训练算法:基于错误提升分类器的性能
-
-```
-发现:
-alpha 目的主要是计算每一个分类器实例的权重(组合就是分类结果)
- 分类的权重值:最大的值= alpha 的加和,最小值=-最大值
-D 的目的是为了计算错误概率: weightedError = D.T*errArr,求最佳分类器
- 特征的权重值:如果一个值误判的几率越小,那么 D 的特征权重越少
-```
-
-
-
-## 完整 AdaBoost 算法的实现
-
-整个实现的伪代码如下:
-
-```
-对每次迭代:
- 利用buildStump()函数找到最佳的单层决策树
- 将最佳单层决策树加入到单层决策树数组
- 计算alpha
- 计算新的权重向量D
- 更新累计类别估计值
- 如果错误率等于0.0,则退出循环
-```
-
-
-
-## 处理非均衡分类问题
-
-> 概念
-
-在分类器训练时,正例数目和反例数目不相等(相差很大)
-
-> 非均衡现象:
-
-* 判断马是否能继续生存(不可误杀)
-* 过滤垃圾邮件(不可漏判)
-* 不能放过传染病的人
-* 不能随便认为别人犯罪
-
-> ROC评估方法
-
-* ROC曲线: 最佳的分类器应该尽可能地处于左上角
-* 
- * 对不同的ROC曲线进行比较的一个指标是曲线下的面积(Area Unser the Curve, AUC).
- * AUC给出的是分类器的平均性能值,当然它并不能完全代替对整条曲线的观察。
- * 一个完美分类器的AUC为1,而随机猜测的AUC则为0.5。
-
-> 代价函数
-
-* 基于代价函数的分类器决策控制:`TP*(-5)+FN*1+FP*50+TN*0`
-* 
-
-> 抽样
-
-* 欠抽样(undersampling)或者过抽样(oversampling)
- * 欠抽样: 意味着删除样例
- * 过抽样: 意味着复制样例(重复使用)
-
-* * *
-
-* **作者:[片刻](http://www.apache.wiki/display/~jiangzhonglian)**
-* [GitHub地址](https://github.com/apachecn/MachineLearning):
-* **版权声明:欢迎转载学习 => 请标注信息来源于 [ApacheCN](http://www.apachecn.org/)**
diff --git a/docs/7.2.随机森林的使用.md b/docs/7.2.随机森林的使用.md
deleted file mode 100644
index 371fa3b3..00000000
--- a/docs/7.2.随机森林的使用.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# 第7.2章 随机森林的使用(个人补充,非课本内容)
-
-## 基本介绍
-
-* 随机森林指的是利用多棵树对样本进行训练并预测的一种分类器。
-* 决策树相当于一个大师,通过自己在数据集中学到的知识对于新的数据进行分类。但是俗话说得好,一个诸葛亮,玩不过三个臭皮匠。随机森林就是希望构建多个臭皮匠,希望最终的分类效果能够超过单个大师的一种算法。
-
-## 构造流程
-
-* 那随机森林具体如何构建呢?有两个方面:数据的随机性选取,以及待选特征的随机选取。
-
-> 数据的随机选取:
-
-```
-首先,从原始的数据集中采取有放回的抽样,构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。
-第二,利用子数据集来构建子决策树,将这个数据放到每个子决策树中,每个子决策树输出一个结果。
-最后,如果有了新的数据需要通过随机森林得到分类结果,就可以通过对子决策树的判断结果的投票,得到随机森林的输出结果了。
-如下图,假设随机森林中有3棵子决策树,2棵子树的分类结果是A类,1棵子树的分类结果是B类,那么随机森林的分类结果就是A类。
-```
-
-
-> 待选特征的随机选取
-
-```
-与数据集的随机选取类似,随机森林中的子树的每一个分裂过程并未用到所有的待选特征,而是从所有的待选特征中随机选取一定的特征,之后再在随机选取的特征中选取最优的特征。这样能够使得随机森林中的决策树都能够彼此不同,提升系统的多样性,从而提升分类性能。
-下图中,蓝色的方块代表所有可以被选择的特征,也就是目前的待选特征。黄色的方块是分裂特征。左边是一棵决策树的特征选取过程,通过在待选特征中选取最优的分裂特征(别忘了前文提到的ID3算法,C4.5算法,CART算法等等),完成分裂。右边是一个随机森林中的子树的特征选取过程。
-```
-
-
-> 随机森林-流程图
-
-
-
-* * *
-
-* **作者:[片刻](http://www.apache.wiki/display/~jiangzhonglian)**
-* [GitHub地址](https://github.com/apachecn/MachineLearning):
-* **版权声明:欢迎转载学习 => 请标注信息来源于 [ApacheCN](http://www.apachecn.org/)**
diff --git a/docs/7.集成方法-随机森林和AdaBoost.md b/docs/7.集成方法-随机森林和AdaBoost.md
new file mode 100644
index 00000000..c7b497a5
--- /dev/null
+++ b/docs/7.集成方法-随机森林和AdaBoost.md
@@ -0,0 +1,163 @@
+# 第7章 集成方法 ensemble method
+
+
+
+## 集成方法: ensemble method(元算法: meta algorithm) 概述
+
+* 概念:是对其他算法进行组合的一种形式。
+* 通俗来说: 当做重要决定时,大家可能都会考虑吸取多个专家而不只是一个人的意见。
+ 机器学习处理问题时又何尝不是如此? 这就是元算法(meta-algorithm)背后的思想。
+
+* 集成方法:
+ 1. 投票选举(bagging: 自举汇聚法 bootstrap aggregating): 是基于数据随机重抽样的分类器构造方法
+ 2. 再学习(boosting): 是基于所有分类器的加权求和的方法
+
+> bagging 和 boosting 区别是什么?
+
+1. bagging 是一种与 boosting 很类似的技术, 所使用的多个分类器的类型(数据量和特征量)都是一致的。
+2. bagging 是由不同的分类器(1.数据随机的 2.特征随机的)训练,综合得出的出现最多分类结果;boosting 是通过调整已有分类器错分的那些数据来获得新的分类器,得出目前最优的结果。
+3. bagging 中的分类器权重是相等的;而 boosting 中的分类器加权求和,所以权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。
+
+
+## 集成方法 场景
+
+目前 bagging 方法最流行的版本是: 随机森林(random forest)
+选帅哥:美女选择择偶对象的时候,会问几个闺蜜的建议,最后选择一个综合得分最高的一个作为男朋友
+
+目前 boosting 方法最流行的版本是: AdaBoost
+追美女:第1个帅哥失败->(传授经验:姓名、家庭情况) 第2个帅哥失败->(传授经验:兴趣爱好、性格特点) 第3个帅哥成功
+
+
+## 随机森林
+
+### 随机森林 概述
+
+* 随机森林指的是利用多棵树对样本进行训练并预测的一种分类器。
+* 决策树相当于一个大师,通过自己在数据集中学到的知识用于新数据的分类。但是俗话说得好,一个诸葛亮,玩不过三个臭皮匠。随机森林就是希望构建多个臭皮匠,希望最终的分类效果能够超过单个大师的一种算法。
+
+### 随机森林 原理
+
+那随机森林具体如何构建呢?
+有两个方面:
+1. 数据的随机性化
+2. 待选特征的随机化
+
+使得随机森林中的决策树都能够彼此不同,提升系统的多样性,从而提升分类性能。
+
+> 数据的随机化:使得随机森林中的决策树更普遍化一点,适合更多的场景。
+
+1. 采取有放回的抽样方式 构造子数据集,保证不同子集之间的数量级一样(不同子集/同一子集 之间的元素可以重复)
+2. 利用子数据集来构建子决策树,将这个数据放到每个子决策树中,每个子决策树输出一个结果。
+3. 然后统计子决策树的投票结果,得到最终的分类 就是 随机森林的输出结果。
+4. 如下图,假设随机森林中有3棵子决策树,2棵子树的分类结果是A类,1棵子树的分类结果是B类,那么随机森林的分类结果就是A类。
+
+
+
+> 待选特征的随机化
+
+1. 子树从所有的待选特征中随机选取一定的特征。
+2. 在选取的特征中选取最优的特征。
+
+下图中,蓝色的方块代表所有可以被选择的特征,也就是目前的待选特征;黄色的方块是分裂特征。
+左边是一棵决策树的特征选取过程,通过在待选特征中选取最优的分裂特征(别忘了前文提到的ID3算法,C4.5算法,CART算法等等),完成分裂。
+右边是一个随机森林中的子树的特征选取过程。
+
+
+
+### 项目实战: 随机森林
+
+
+
+
+## AdaBoost
+
+### AdaBoost (adaptive boosting: 自适应 boosting) 概述
+
+`能否使用弱分类器和多个实例来构建一个强分类器? 这是一个非常有趣的理论问题。`
+
+### AdaBoost 原理
+
+> AdaBoost 工作原理
+
+
+
+> AdaBoost 一般流程
+
+```
+收集数据:可以使用任意方法
+准备数据:依赖于所使用的弱分类器类型,本章使用的是单层决策树,这种分类器可以处理任何数据类型。
+ 当然也可以使用任意分类器作为弱分类器,第2章到第6章中的任一分类器都可以充当弱分类器。
+ 作为弱分类器,简单分类器的效果更好。
+分析数据:可以使用任意方法。
+训练数据:AdaBoost 的大部分时间都用在训练上,分类器将多次在同一数据集上训练弱分类器。
+测试数据:计算分类的错误率。
+使用算法:通SVM一样,AdaBoost 预测两个类别中的一个。如果想把它应用到多个类别的场景,那么就要像多类 SVM 中的做法一样对 AdaBoost 进行修改。
+```
+
+> AdaBoost 算法特点
+
+```
+* 优点:泛化(由具体的、个别的扩大为一般的)错误率低,易编码,可以应用在大部分分类器上,无参数调节。
+* 缺点:对离群点敏感。
+* 适用数据类型:数值型和标称型数据。
+```
+
+### 项目实战: 马疝病的预测
+
+
+
+* 基于单层决策树构建弱分类器
+ * 单层决策树(decision stump, 也称决策树桩)是一种简单的决策树。
+* 过拟合(overfitting, 也称为过学习)
+ * 发现测试错误率在达到一个最小值之后有开始上升,这种现象称为过拟合。
+
+
+
+> 训练算法:基于错误提升分类器的性能
+
+```
+发现:
+alpha 目的主要是计算每一个分类器实例的权重(组合就是分类结果)
+ 分类的权重值:最大的值= alpha 的加和,最小值=-最大值
+D 的目的是为了计算错误概率: weightedError = D.T*errArr,求最佳分类器
+ 特征的权重值:如果一个值误判的几率越小,那么 D 的特征权重越少
+```
+
+
+
+### 优化评估: 处理非均衡分类问题
+
+`在分类器训练时,正例数目和反例数目不相等(相差很大)`
+
+> 非均衡现象:
+
+* 判断马是否能继续生存(不可误杀)
+* 过滤垃圾邮件(不可漏判)
+* 不能放过传染病的人
+* 不能随便认为别人犯罪
+
+> ROC 评估方法
+
+* ROC 曲线: 最佳的分类器应该尽可能地处于左上角
+* 
+ * 对不同的 ROC 曲线进行比较的一个指标是曲线下的面积(Area Unser the Curve, AUC).
+ * AUC 给出的是分类器的平均性能值,当然它并不能完全代替对整条曲线的观察。
+ * 一个完美分类器的 AUC 为1,而随机猜测的 AUC 则为0.5。
+
+> 代价函数
+
+* 基于代价函数的分类器决策控制:`TP*(-5)+FN*1+FP*50+TN*0`
+
+
+
+> 抽样
+
+* 欠抽样(undersampling)或者过抽样(oversampling)
+ * 欠抽样: 意味着删除样例
+ * 过抽样: 意味着复制样例(重复使用)
+
+* * *
+
+* **作者:[片刻](http://www.apache.wiki/display/~jiangzhonglian)**
+* [GitHub地址](https://github.com/apachecn/MachineLearning):
+* **版权声明:欢迎转载学习 => 请标注信息来源于 [ApacheCN](http://www.apachecn.org/)**