修改图片和logistic回归的md文件

This commit is contained in:
chenyyx
2017-07-03 21:26:33 +08:00
parent 295c71b125
commit ce511ef9b5
18 changed files with 703 additions and 92 deletions

View File

@@ -8,6 +8,10 @@
![决策树-流程图](/images/3.DecisionTree/决策树-流程图.jpg "决策树示例流程图")
* 简要介绍
根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为两类,再继续提问。这些数据是根据已有数据学习出来的,
再投入新数据的时候,就可以根据这棵树上的问题,将数据划分到合适的叶子上。
> 决策树的任务
```
@@ -106,6 +110,15 @@
* 流程介绍图
* ![决策树流程介绍图](/images/3.DecisionTree/决策树流程介绍图.jpg)
## 决策树小结
```
决策树分类器就像带有终止块的流程图,终止块表示分类结果。
开始处理数据集时,我们首先需要测量集合中数据的不一致性,也就是熵,然后寻找最优方案划分数据集,直到数据集中的所有数据属于同一分类。
ID3算法可以用于划分标称型数据集。构建决策树时我们通常采用递归的方法将数据集转化为决策树。一般我们并不构造新的数据结构而是使用
Python 中内嵌的数据结构字典存储树节点信息。
```
* * *
* **作者:[片刻](http://www.apache.wiki/display/~jiangzhonglian) [小瑶](http://www.apache.wiki/display/~chenyao)**

View File

@@ -131,6 +131,10 @@ p(ci|x,y) = p(x,y|ci)·p(ci)/p(x,y)
* 总结
* 这一块代码比较乱,最好先把公式理一理再看
* 可以参考一下[阮一峰的博客](http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html)
* 对于分类而言,使用概率有时要比使用硬规则更为有效。贝叶斯概率及贝叶斯准则提供了一种利用已知值来估计未知概率的有效方法。
* 可以通过特征之间的条件独立性假设,降低对数据量的需求。独立性假设是指一个词的出现概率并不依赖于文档中的其他词。当然我们也知道这个假设过于简单。
这就是之所以成为朴素贝叶斯的原因。尽管条件独立性假设并不正确,但是朴素贝叶斯仍然是一种有效的分类器。
* 利用现代编程语言来实现朴素贝叶斯时需要考虑很多实际因素。下溢出就是其中一个问题,它可以通过对概率取对数来解决。
* * *

View File

@@ -9,8 +9,8 @@
```
假设现在有一些数据点,我们用一条直线对这些点进行拟合(该线称为最佳拟合直线),这个拟合过程就称作回归。
利用 Logistic回归进行分类的主要思想是根据现有数据对分类边界线建立回归公式以此进行分类。这里的“回归”一词源于最佳拟合,
表示要找到最佳拟合参数集,其背后的数学分析将在下一部分介绍。训练分类器时的做法就是寻找最佳拟合参数,使用的是最优化算法。
Logistic 回归主要的用途是用来做分类,利用 Logistic 回归 进行分类的主要思想是:根据现有数据对分类边界线建立回归公式,以此进行分类。
我们这里所说的“回归”一词源于最佳拟合,表示要找到最佳拟合参数集。训练分类器时的做法就是寻找最佳拟合参数,使用的是最优化算法。
```
> Logistic回归特点
@@ -24,6 +24,10 @@
> Sigmoid函数简介
```
我们想要的函数应该是,能接受所有的输入然后预测出类别。例如,在两个类的情况下,上述函数输出 0 和 1 。这类函数称为海维塞得阶跃函数,或者直接称之为 单位阶跃函数。
但是,海维塞得阶跃函数的问题在于:该函数在跳跃点上从 0 瞬间跳跃到 1这个瞬间跳跃过程有时候很难处理。幸好另外的一个函数也有这样的性质(这里的性质指的是可以输出0和1的性质),
且数学上更易处理,这就是我们下边要介绍的 Sigmoid 函数。
Sigmoid函数具体的计算公式如下
f(z) = 1 / (1 + e ^(-z))
图5-1 给出了Sigmoid函数在不同坐标尺度下的两条曲线图。当x为0时Sigmoid函数值为0.5。随着x的增大对应的Sigmoid值将逼近1而随着x的减小Sigmoid值将逼近0。
@@ -35,6 +39,13 @@
## 最优化理论初步
```
Sigmoid函数的输入记为z由下面的公式得出
z = w0x0 + w1x1 + w2x2 + ... +wnxn
如果采用向量的写法,上述公式可以写成 z = wTx ,它表示将这两个数值向量对应元素相乘然后全部加起来即得到z值。其中的向量 x 是分类器的输入数据,
向量 w 也就是我们要找到的最佳参数(系数),从而使得分类器尽可能地精确。为了寻找最佳参数,需要用到最优化理论的一些知识。
```
> 梯度上升法
```
@@ -43,12 +54,43 @@
![logistic回归梯度上升法](/images/5.Logistic/梯度上升算法.png "梯度上升法")
介绍一下几个相关的概念:
```
例如y = w1x1 + w2x2 + ... + wnxn
梯度参考上图的例子二维图像x方向是代表第一个系数也就是w1y方向代表第二个系数也就是w2这样的向量就是梯度。
α:上面的梯度算法的迭代公式中的阿尔法,这个代表的是移动步长。移动步长会影响最终结果的拟合程度,最好的方法就是随着迭代次数更改移动步长。
步长通俗的理解100米如果我一步走10米我需要走10步如果一步走20米我只需要走5步。这里的一步走多少米就是步长的意思。
▽f(w):代表沿着梯度变化的方向。
```
拟合程度简介
参考: http://blog.csdn.net/willduan1/article/details/53070777
下面是原始数据集:
![拟合程度图](/images/5.Logistic/拟合程度示例图.png "拟合程度示例图")
下面是拟合程度较好的:
![拟合程度较好示例图](/images/5.Logistic/拟合程度较好示例图.png "拟合程度较好示例图")
欠拟合:模型没有很好地捕捉到数据特征,不能很好地拟合数据。
![欠拟合示例图](/images/5.Logistic/欠拟合示例图.png "欠拟合示例图")
过拟合:模型把数据学习的太彻底了,以至于把噪声数据的特征也学习到了,这样就会导致在后期测试的时候不能够很好地识别数据,即不能正确地分类,模型泛化能力太差。
![过拟合示例图](/images/5.Logistic/过拟合示例图.png "过拟合示例图")
梯度上升法的伪代码如下:
```
某个回归系数初始化为1
重复R次
计算整个数据集的梯度
使用 alpha X grandient 更新回归系数的向量
返回回归系数
```
梯度上升算法在每次回归系数时都需要遍历整个数据集该方法在处理100个左右的数据集时尚可但如果有数十亿样本和成千上万的特征
那么该方法的计算复杂度就太高了。一种改进方法是一次仅用一个样本点来更新回归系数,该方法称为随机梯度上升算法。
@@ -117,6 +159,15 @@
* 5.5 简化的成本函数和梯度下降
* 5.6 高级优化
## Logistic 本章小结
```
Logistic回归的目的是寻找一个非线性函数 Sigmoid 的最佳拟合参数,求解过程可以由最优化算法来完成。
在最优化算法中,最常用的就是梯度上升算法,而梯度上升算法又可以简化为随机梯度上升算法。
随机梯度上升算法与梯度上升算法的效果相当,但占用更少的计算资源。
此外,随机梯度上升是一个在线算法,它可以在新数据到来时就完成参数更新,而不需要重新读取整个数据集来进行批处理运算。
```
* * *
* **作者:[羊三](http://www.apache.wiki/display/~xuxin) [小瑶](http://www.apache.wiki/display/~chenyao)**