Merged #82 from SubsonBigod/master

修改公式错误,公式块($$包裹)单独成行,内嵌代码($包裹)不变
This commit is contained in:
Hongwei Sun 2018-10-31 08:15:32 +08:00 committed by GitHub
commit fb1b259cb4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 119 additions and 78 deletions

View File

@ -45,7 +45,9 @@
**矩阵的范数**
定义一个矩阵$A=[-1, 2, -3; 4, -6, 6]$。
矩阵的范数定义为
$$\|A\|_p :=\sup_{x\neq 0}\frac{\|Ax\|_p}{\|x\|_p}. $$
$$
\|A\|_p :=\sup_{x\neq 0}\frac{\|Ax\|_p}{\|x\|_p}.
$$
当向量取不同范数时, 相应得到了不同的矩阵范数。
@ -78,25 +80,39 @@ $$\|A\|_p :=\sup_{x\neq 0}\frac{\|Ax\|_p}{\|x\|_p}. $$
## 1.8 特征值分解与特征向量
特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么。
如果说一个向量$\vec{v}$是方阵$A$的特征向量,将一定可以表示成下面的形式:$$A\nu = \lambda \nu$$
$\lambda$为特征向量$\vec{v}$对应的特征值。特征值分解是将一个矩阵分解为如下形式: $$A=Q\sum Q^{-1}$$
如果说一个向量$\vec{v}$是方阵$A$的特征向量,将一定可以表示成下面的形式:
$$
A\nu = \lambda \nu
$$
$\lambda$为特征向量$\vec{v}$对应的特征值。特征值分解是将一个矩阵分解为如下形式:
$$
A=Q\sum Q^{-1}
$$
其中,$Q$是这个矩阵$A$的特征向量组成的矩阵,$\sum$是一个对角矩阵,每一个对角线元素就是一个特征值,里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要的变化到次要的变化排列)。也就是说矩阵$A$的信息可以由其特征值和特征向量表示。
对于矩阵为高维的情况下那么这个矩阵就是高维空间下的一个线性变换。可以想象这个变换也同样有很多的变换方向我们通过特征值分解得到的前N个特征向量那么就对应了这个矩阵最主要的N个变化方向。我们利用这前N个变化方向就可以近似这个矩阵变换
(http://blog.csdn.net/jinshengtao/article/details/18448355)
## 1.9 奇异值与特征值有什么关系?
那么奇异值和特征值是怎么对应起来的呢?我们将一个矩阵$A$的转置乘以$A$,并对$AA^T$求特征值,则有下面的形式:$$(A^TA)V = \lambda V$$
这里$V$就是上面的右奇异向量,另外还有:$$\sigma_i = \sqrt{\lambda\_i}, u\_i=\frac{1}{\sigma\_i}A\mu\_i$$
那么奇异值和特征值是怎么对应起来的呢?我们将一个矩阵$A$的转置乘以$A$,并对$AA^T$求特征值,则有下面的形式:
$$
(A^TA)V = \lambda V
$$
这里$V$就是上面的右奇异向量,另外还有:
$$
\sigma_i = \sqrt{\lambda_i}, u_i=\frac{1}{\sigma_i}A\mu_i
$$
这里的$\sigma$就是奇异值,$u$就是上面说的左奇异向量。【证明那个哥们也没给】
奇异值$\sigma$跟特征值类似,在矩阵$\sum$中也是从大到小排列,而且$\sigma$的减少特别的快在很多情况下前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。也就是说,我们也可以用前$r$$r$远小于$m、n$)个的奇异值来近似描述矩阵,即部分奇异值分解:
$$A\_{m\times n}\thickapprox U_{m \times r}\sum\_{r\times r}V\_{r \times n}^T$$
$$
A_{m\times n}\thickapprox U_{m \times r}\sum_{r\times r}V_{r \times n}^T
$$
右边的三个矩阵相乘的结果将会是一个接近于$A$的矩阵,在这儿,$r$越接近于$n$,则相乘的结果越接近于$A$。
## 1.10 机器学习为什么要使用概率?
事件的概率是衡量该时间发生的可能性的量度。虽然在一次随机试验中某个事件的发生是带有偶然性的,但那些可在相同条件下大量重复的随机试验却往往呈现出明显的数量规律。
机器学习除了处理不确定量,也需处理随机量。不确定性和随机性可能来自多个方面,使用概率论来量化不确定性。
概率论在机器学习中扮演着一个核心角色,因为机器学习算法的设计通常依赖于对数据的概率假设。
>例如在机器学习Andrew Ng的课中会有一个朴素贝叶斯假设就是条件独立的一个例子。该学习算法对内容做出假设用来分辨电子邮件是否为垃圾邮件。假设无论邮件是否为垃圾邮件单词x出现在邮件中的概率条件独立于单词y。很明显这个假设不是不失一般性的因为某些单词几乎总是同时出现。然而最终结果是这个简单的假设对结果的影响并不大且无论如何都可以让我们快速判别垃圾邮件。
## 1.11 变量与随机变量有什么区别?
@ -119,7 +135,10 @@ $$A\_{m\times n}\thickapprox U_{m \times r}\sum\_{r\times r}V\_{r \times n}^T$$
![常见概率分布](../img/ch1/prob_distribution_7.png)
## 1.13 举例理解条件概率
条件概率公式如下:$$P(A/B) = P(A\cap B) / P(B)$$
条件概率公式如下:
$$
P(A/B) = P(A\cap B) / P(B)
$$
说明:在同一个样本空间$\Omega$中的事件或者子集$A$与$B$,如果随机从$\Omega$中选出的一个元素属于$B$,那么下一个随机选择的元素属于$A$ 的概率就定义为在$B$的前提下$A$的条件概率。
![条件概率](../img/ch1/conditional_probability.jpg)
@ -138,19 +157,34 @@ $$A\_{m\times n}\thickapprox U_{m \times r}\sum\_{r\times r}V\_{r \times n}^T$$
## 1.15条件概率的链式法则
由条件概率的定义,可直接得出下面的乘法公式:
乘法公式 设$A, B$是两个事件,并且$P(A) > 0$, 则有 $$P(AB) = P(B|A)P(A)$$
推广 $$P(ABC)=P(C|AB)P(B)P(B|A)P(A)$$
一般地,用归纳法可证:若$P(A\_1A\_2...A\_n)>0$,则有$$P(A\_1A\_2...A\_n)=P(A\_n|A\_1A\_2...A\_{n-1}P(A\_{n-1}|A\_1A\_2...A\_{n-2})...P(A\_2|A\_1)P(A_1)$$
乘法公式 设$A, B$是两个事件,并且$P(A) > 0$, 则有
$$
P(AB) = P(B|A)P(A)
$$
推广
$$
P(ABC)=P(C|AB)P(B)P(B|A)P(A)
$$
一般地,用归纳法可证:若$P(A_1A_2...A_n)>0$,则有
$$
P(A_1A_2...A_n)=P(A_n|A_1A_2...A_{n-1}P(A_{n-1}|A_1A_2...A_{n-2})...P(A_2|A_1)P(A_1)
$$
任何多维随机变量联合概率分布,都可以分解成只有一个变量的条件概率相乘形式。
## 1.16 独立性和条件独立性
**独立性**
两个随机变量$x$和$y$,概率分布表示成两个因子乘积形式,一个因子只包含$x$,另一个因子只包含$y$,两个随机变量相互独立(independent)。
条件有时为不独立的事件之间带来独立,有时也会把本来独立的事件,因为此条件的存在,而失去独立性。
举例:$P(XY)=P(X)P(Y)$, 事件$X$和事件$Y$独立。此时给定$Z$$$P(X,Y|Z) \not = P(X|Z)P(Y|Z)$$
举例:$P(XY)=P(X)P(Y)$, 事件$X$和事件$Y$独立。此时给定$Z$
$$
P(X,Y|Z) \not = P(X|Z)P(Y|Z)
$$
事件独立时,联合概率等于概率的乘积。这是一个非常好的数学性质,然而不幸的是,无条件的独立是十分稀少的,因为大部分情况下,事件之间都是互相影响的。
**条件独立性**
给定$Z$的情况下,$X$和$Y$条件独立,当且仅当$$X\bot Y|Z \iff P(X,Y|Z) = P(X|Z)P(Y|Z)$$
给定$Z$的情况下,$X$和$Y$条件独立,当且仅当
$$
X\bot Y|Z \iff P(X,Y|Z) = P(X|Z)P(Y|Z)
$$
$X$和$Y$的关系依赖于$Z$,而不是直接产生。
**举例**定义如下事件:
$X$:明天下雨;
@ -163,16 +197,20 @@ $Z$事件的成立,对$X$和$Y$均有影响,然而,在$Z$事件成立的
**期望**
在概率论和统计学中,数学期望(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和。它反映随机变量平均取值的大小。
线性运算: $E(ax+by+c) = aE(x)+bE(y)+c$
推广形式: $E(\sum\_{k=1}^{n}{a\_ix\_i+c}) = \sum\_{k=1}^{n}{a\_iE(x\_i)x\_i+c}$
函数期望:设$f(x)$为$x$的函数,则$f(x)$的期望
离散函数: $E(f(x))=\sum\_{k=1}^{n}{f(x\_k)P(x\_k)}$
连续函数: $E(f(x))=\int_{-\infty}^{+\infty}{f(x)p(x)dx}$
注意:函数的期望不等于期望的函数,即$E(f(x))=f(E(x))$
推广形式: $E(\sum_{k=1}^{n}{a_ix_i+c}) = \sum_{k=1}^{n}{a_iE(x_i)x_i+c}$
函数期望:设$f(x)$为$x$的函数,则$f(x)$的期望为
- 离散函数: $E(f(x))=\sum_{k=1}^{n}{f(x_k)P(x_k)}$
- 连续函数: $E(f(x))=\int_{-\infty}^{+\infty}{f(x)p(x)dx}$
注意:函数的期望不等于期望的函数,即$E(f(x))=f(E(x))$
一般情况下,乘积的期望不等于期望的乘积。
如果$X$和$Y$相互独立,则$E(xy)=E(x)E(y)$。
如果$X$和$Y$相互独立,则$E(xy)=E(x)E(y)$。
**方差**
概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。
方差是一种特殊的期望。定义为: $$Var(x) = E((x-E(x))^2)$$
方差是一种特殊的期望。定义为:
$$
Var(x) = E((x-E(x))^2)
$$
方差性质:
1$Var(x) = E(x^2) -E(x)^2$
2 常数的方差为0;
@ -180,24 +218,27 @@ $Z$事件的成立,对$X$和$Y$均有影响,然而,在$Z$事件成立的
4如果$X$和$Y$相互独立, $Var(ax+by)=Var(x)+Var(y)$
**协方差**
协方差是衡量两个变量线性相关性强度及变量尺度。
两个随机变量的协方差定义为:$$Cov(x,y)=E((x-E(x))(y-E(y)))$$
两个随机变量的协方差定义为:
$$
Cov(x,y)=E((x-E(x))(y-E(y)))
$$
方差是一种特殊的协方差。当$X=Y$时,$Cov(x,y)=Var(x)=Var(y)$。
协方差性质:
1) 独立变量的协方差为0。
2) 协方差计算公式:$$Cov(\sum\_{i=1}^{m}{a\_ix\_i}, \sum\_{j=1}^{m}{b\_jy\_j}) = \sum\_{i=1}^{m} \sum\_{j=1}^{m}{a\_ib\_jCov(x\_iy\_i)}$$ 3) 特殊情况: $$Cov(a+bx, c+dy) = bdCov(x, y)$$
2) 协方差计算公式:
$$
Cov(\sum_{i=1}^{m}{a_ix_i}, \sum_{j=1}^{m}{b_jy_j}) = \sum_{i=1}^{m} \sum_{j=1}^{m}{a_ib_jCov(x_iy_i)}
$$
3) 特殊情况:
$$
Cov(a+bx, c+dy) = bdCov(x, y)
$$
**相关系数**
相关系数是研究变量之间线性相关程度的量。
两个随机变量的相关系数定义为: $$Corr(x,y) = \frac{Cov(x,y)}{\sqrt{Var(x)Var(y)}}$$
两个随机变量的相关系数定义为:
$$
Corr(x,y) = \frac{Cov(x,y)}{\sqrt{Var(x)Var(y)}}
$$
性质:
1) 有界性。相关系数的取值范围是 ,可以看成无量纲的协方差。
2) 值越接近1说明两个变量正相关性线性越强。越接近-1说明负相关性越强当为0时表示两个变量没有相关性。
2) 值越接近1说明两个变量正相关性线性越强。越接近-1说明负相关性越强当为0时表示两个变量没有相关性。

View File

@ -8,9 +8,9 @@
|:-:|:-:|:-:|
|![](../img/ch2/2.1/4.png)|![](../img/ch2/2.1/5.jpg)|![](../img/ch2/2.1/6.jpg)|
|聚类算法|关联规则学习|人工神经网络
|聚类算法|关联规则学习|人工神经网络|
|:-:|:-:|:-:|
|![](../img/ch2/2.1/7.png)|![](../img/ch2/2.1/8.jpg)|![](../img/ch2/2.1/9.jpg)|
|![](../img/ch2/2.1/7.png)|![](../img/ch2/2.1/8.jpg)|![](../img/ch2/2.1/9.png)|
|深度学习|降低维度算法|集成算法|
|:-:|:-:|:-:|
@ -95,7 +95,7 @@
## 2.9 分类算法的评估方法?
1. **几个常用的术语**
这里首先介绍几个*常见*的 模型评价术语现在假设我们的分类目标只有两类计为正例positive和负例negtive分别是
这里首先介绍几个*常见*的 模型评价术语现在假设我们的分类目标只有两类计为正例positive和负例negative分别是
1) True positives(TP): 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数(样本数);
2) False positives(FP): 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;
3) False negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;
@ -106,29 +106,29 @@
上图是这四个术语的混淆矩阵。
1P=TP+FN表示实际为正例的样本个数。
2True、False描述的是分类器是否判断正确。
3Positive、Negative是分类器的分类结果如果正例计为1、负例计为-1即positive=1、negtive=-1。用1表示True-1表示False那么实际的类标=TF*PNTF为true或falsePN为positive或negtive。
4例如True positives(TP)的实际类标=1*1=1为正例False positives(FP)的实际类标=-1*1=-1为负例False negatives(FN)的实际类标=-1*-1=1为正例True negatives(TN)的实际类标=1*-1=-1为负例。
3Positive、Negative是分类器的分类结果如果正例计为1、负例计为-1即positive=1、negative=-1。用1表示True-1表示False那么实际的类标=TF\*PNTF为true或falsePN为positive或negative。
4例如True positives(TP)的实际类标=1\*1=1为正例False positives(FP)的实际类标=(-1)\*1=-1为负例False negatives(FN)的实际类标=(-1)\*(-1)=1为正例True negatives(TN)的实际类标=1\*(-1)=-1为负例。
2. **评价指标**
1) 正确率accuracy
正确率是我们最常见的评价指标accuracy = TP+TN/(P+N),正确率是被分对的样本数在所有样本数中的占比,通常来说,正确率越高,分类器越好。
2) 错误率error rate)
1) 正确率accuracy
正确率是我们最常见的评价指标accuracy = (TP+TN)/(P+N),正确率是被分对的样本数在所有样本数中的占比,通常来说,正确率越高,分类器越好。
2) 错误率error rate)
错误率则与正确率相反描述被分类器错分的比例error rate = (FP+FN)/(P+N)对某一个实例来说分对与分错是互斥事件所以accuracy =1 - error rate。
3) 灵敏度sensitive
3) 灵敏度sensitive
sensitive = TP/P表示的是所有正例中被分对的比例衡量了分类器对正例的识别能力。
4) 特效度specificity)
4) 特效度specificity)
specificity = TN/N表示的是所有负例中被分对的比例衡量了分类器对负例的识别能力。
5) 精度precision
精度是精确性的度量表示被分为正例的示例中实际为正例的比例precision=TP/TP+FP
6) 召回率recall
5) 精度precision
精度是精确性的度量表示被分为正例的示例中实际为正例的比例precision=TP/(TP+FP)
6) 召回率recall
召回率是覆盖面的度量度量有多个正例被分为正例recall=TP/(TP+FN)=TP/P=sensitive可以看到召回率与灵敏度是一样的。
7) 其他评价指标
计算速度:分类器训练和预测需要的时间;
鲁棒性:处理缺失值和异常值的能力;
可扩展性:处理大数据集的能力;
可解释性:分类器的预测标准的可理解性,像决策树产生的规则就是很容易理解的,而神经网络的一堆参数就不好理解,我们只好把它看成一个黑盒子。
8) 查准率和查全率反映了分类器分类性能的两个方面。如果综合考虑查准率与查全率可以得到新的评价指标F1测试值也称为综合分类率
![](../img/ch2/2.9/2.jpg)
7) 其他评价指标
计算速度:分类器训练和预测需要的时间;
鲁棒性:处理缺失值和异常值的能力;
可扩展性:处理大数据集的能力;
可解释性:分类器的预测标准的可理解性,像决策树产生的规则就是很容易理解的,而神经网络的一堆参数就不好理解,我们只好把它看成一个黑盒子。
8) 查准率和查全率反映了分类器分类性能的两个方面。如果综合考虑查准率与查全率可以得到新的评价指标F1测试值也称为综合分类率
![](../img/ch2/2.9/2.jpg)
为了综合多个类别的分类情况评测系统整体性能经常采用的还有微平均F1micro-averaging和宏平均F1macro-averaging 两种指标。宏平均F1与微平均F1是以两种不同的平均方式求的全局的F1指标。其中宏平均F1的计算方法先对每个类别单独计算F1值再取这些F1值的算术平均值作为全局指标。而微平均F1的计算方法是先累加计算各个类别的a、b、c、d的值再由这些值求出F1值。由两种平均F1的计算方式不难看出宏平均F1平等对待每一个类别所以它的值主要受到稀有类别的影响而微平均F1平等考虑文档集中的每一个文档所以它的值受到常见类别的影响比较大。
**ROC曲线和PR曲线**
@ -249,7 +249,7 @@ $$
当参数为2个时代价函数是三维图像。
![](../img/ch2/2.16/2.png)
## 2.18 为什么代价函数要非负?
目标函数存在一个下界,在优化过程当中,如果优化算法能够使目标函数不断减小,根据单调有界准则,这个优化算法就能证明是收敛有效的。
只要设计的目标函数有下界,基本上都可以,代价函数非负更为方便。
@ -665,7 +665,7 @@ PCA可解决训练数据中存在数据特征过多或特征累赘的问题。
假设数据集是m个n维$(x^{(1)}, x^{(2)}, \cdots, x^{(m)})$。如果n=2,需要降维到$n'=1$,现在想找到某一维度方向代表这两个维度的数据。下图有$u_1, u_2$两个向量方向,但是哪个向量才是我们所想要的,可以更好代表原始数据集的呢?
![](../img/ch2/2.34/1.png)
从图可看出,$u_1$比$u_2$好,为什么呢?有以下两个主要评价指标:
1. 样本点到这个直线的距离足够近。
2. 样本点在这个直线上的投影能尽可能的分开。
@ -681,7 +681,7 @@ PCA可解决训练数据中存在数据特征过多或特征累赘的问题。
考虑到整个样本集样本点到这个超平面的距离足够近目标变为最小化TODO。对此式进行推理可得
TODO
在推导过程中分别用到了TODO矩阵转置公式TODOTODOTODO以及矩阵的迹最后两步是将代数和转为矩阵形式。
由于TODO的每一个向量TODO是标准正交基TODO是数据集的协方差矩阵TODO是一个常量。最小化TODO又可等价于
@ -806,7 +806,7 @@ TODO其映射为TODO
模型过拟合:在训练集上具有较低的误差,在测试集上具有较高的误差,此时模型的方差较大。
模型正常:在训练集以及测试集上,同时具有相对较低的偏差以及方差。
2. **横轴为模型复杂程度,纵轴为误差**
![](../img/ch2/2.40.3/2.png)
@ -925,13 +925,13 @@ ROC曲线所覆盖的面积称为AUCArea Under Curve可以更直观的
### 2.47.10 如何画ROC曲线
http://blog.csdn.net/zdy0_2004/article/details/44948511
下图是一个示例图中共有20个测试样本“Class”一栏表示每个测试样本真正的标签p表示正样本n表示负样本“Score”表示每个测试样本属于正样本的概率。
步骤:
1、假设已经得出一系列样本被划分为正类的概率按照大小排序。
2、从高到低依次将“Score”值作为阈值threshold当测试样本属于正样本的概率大于或等于这个threshold时我们认为它为正样本否则为负样本。 举例来说对于图中的第4个样本其“Score”值为0.6那么样本1234都被认为是正样本因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。
3、每次选取一个不同的threshold得到一组FPR和TPR即ROC曲线上的一点。以此共得到20组FPR和TPR的值。其中FPR和TPR简单理解如下
4、根据3中的每个坐标点点画图。
![](../img/ch2/2.40.11/1.jpg)
### 2.47.11 如何计算TPRFPR
@ -952,7 +952,7 @@ y_true = [0, 0, 1, 1]
y_pred = [1, 1, 1, 1]
正例与反例信息如下:
真实值 预测值
正例 反例
正例 反例
正例 TP=2 FN=0
反例 FP=2 TN=0
由此可得:
@ -965,7 +965,7 @@ y_true = [0, 0, 1, 1]
y_pred = [0, 1, 1, 1]
正例与反例信息如下:
真实值 预测值
正例 反例
正例 反例
正例 TP=2 FN=0
反例 FP=1 TN=1
由此可得:
@ -978,7 +978,7 @@ y_true = [0, 0, 1, 1]
y_pred = [0, 1, 0, 1]
正例与反例信息如下:
真实值 预测值
正例 反例
正例 反例
正例 TP=1 FN=1
反例 FP=1 TN=1
由此可得:
@ -991,7 +991,7 @@ y_true = [0, 0, 1, 1]
y_pred = [0, 0, 0, 1]
正例与反例信息如下:
真实值 预测值
正例 反例
正例 反例
正例 TP=1 FN=1
反例 FP=0 TN=2
由此可得:
@ -1013,7 +1013,7 @@ e.对面积微元进行累加得到AUC。
### 2.47.14 直观理解AUC
http://blog.csdn.net/cherrylvlei/article/details/52958720
AUC是ROC右下方的曲线面积。下图展现了三种AUC的值
![](../img/ch2/2.40.15/1.png)
AUC是衡量二分类模型优劣的一种评价指标表示正例排在负例前面的概率。其他评价指标有精确度、准确率、召回率而AUC比这三者更为常用。
@ -1376,14 +1376,14 @@ http://blog.csdn.net/Love_wanling/article/details/69390047
本文将遇到的核函数进行收集整理,分享给大家。
http://blog.csdn.net/wsj998689aa/article/details/47027365
1.Linear Kernel
线性核是最简单的核函数,核函数的数学公式如下:
$k(x,y)=xy$
如果我们将线性核函数应用在KPCA中我们会发现推导之后和原始PCA算法一模一样很多童鞋借此说“kernel is shit这是不对的这只是线性核函数偶尔会出现等价的形式罢了。
2.Polynomial Kernel
多项式核实一种非标准核函数,它非常适合于正交归一化后的数据,其具体形式如下:
@ -1391,7 +1391,7 @@ $k(x,y)=xy$
$k(x,y)=(ax^{t}y+c)^{d}$
这个核函数是比较好用的,就是参数比较多,但是还算稳定。
3.Gaussian Kernel
这里说一种经典的鲁棒径向基核,即高斯核函数,鲁棒径向基核对于数据中的噪音有着较好的抗干扰能力,其参数决定了函数作用范围,超过了这个范围,数据的作用就“基本消失”。高斯核函数是这一族核函数的优秀代表,也是必须尝试的核函数,其数学形式如下:
@ -1578,7 +1578,7 @@ $V(d)=\frac{\pi ^{\frac{d}{2}}}{\Gamma (\frac{d}{2}+1)}0.5^{d}$
所以我们如何避免“维数灾难”图1显示了分类器的性能随着特征个数的变化不断增加过了某一个值后性能不升反降。这里的某一个值到底是多少呢目前还没有方法来确定分类问题中的这个阈值是多少这依赖于训练样本的数量决策边界的复杂性以及分类器的类型。理论上如果训练样本的数量无限大那么就不会存在“维数灾难”我们可以采用任意多的特征来训练分类器。事实上训练样本的数量是有限的所以不应该采用过多的特征。此外那些需要精确的非线性决策边界的分类器比如neural networkknndecision trees等的泛化能力往往并不是很好更容易发生过拟合问题。因此在设计这些分类器时应当慎重考虑特征的数量。相反那些泛化能力较好的分类器比如naive Bayesianlinear classifier等可以适当增加特征的数量。
如果给定了N个特征我们该如何从中选出M个最优的特征最简单粗暴的方法是尝试所有特征的组合从中挑出M个最优的特征。事实上这是非常花时间的或者说不可行的。其实已经有许多特征选择算法(feature selection algorithms)来帮助我们确定特征的数量以及选择特征。此外,还有许多特征抽取方法(feature extraction methods)比如PCA等。交叉验证(cross-validation)也常常被用于检测与避免过拟合问题。
参考资料:
[1] Vincent Spruyt. The Curse of Dimensionality in classification. Computer vision for dummies. 2014. [Link]
@ -1635,12 +1635,12 @@ http://www.cnblogs.com/William_Fire/archive/2013/02/09/2909499.html
1 聚类算法的分类
目前,有大量的聚类算法[3]。而对于具体应用,聚类算法的选择取决于数据的类型、聚类的目的。如果聚类分析被用作描述或探查的工具,可以对同样的数据尝试多种算法,以发现数据可能揭示的结果。
主要的聚类算法可以划分为如下几类:划分方法、层次方法、基于密度的方法、基于网格的方法以及基于模型的方法[4-6]。
每一类中都存在着得到广泛应用的算法例如划分方法中的k-means[7]聚类算法、层次方法中的凝聚型层次聚类算法[8]、基于模型方法中的神经网络[9]聚类算法等。
目前,聚类问题的研究不仅仅局限于上述的硬聚类,即每一个数据只能被归为一类,模糊聚类[10]也是聚类分析中研究较为广泛的一个分支。模糊聚类通过隶 属函数来确定每个数据隶属于各个簇的程度而不是将一个数据对象硬性地归类到某一簇中。目前已有很多关于模糊聚类的算法被提出如著名的FCM算法等。
本文主要对k-means聚类算法、凝聚型层次聚类算法、神经网络聚类算法之SOM,以及模糊聚类的FCM算法通过通用测试数据集进行聚类效果的比较和分析。
目前,聚类问题的研究不仅仅局限于上述的硬聚类,即每一个数据只能被归为一类,模糊聚类[10]也是聚类分析中研究较为广泛的一个分支。模糊聚类通过隶 属函数来确定每个数据隶属于各个簇的程度而不是将一个数据对象硬性地归类到某一簇中。目前已有很多关于模糊聚类的算法被提出如著名的FCM算法等。
本文主要对k-means聚类算法、凝聚型层次聚类算法、神经网络聚类算法之SOM,以及模糊聚类的FCM算法通过通用测试数据集进行聚类效果的比较和分析。
2 四种常用聚类算法研究
@ -1652,9 +1652,9 @@ http://www.cnblogs.com/William_Fire/archive/2013/02/09/2909499.html
  $E=\sum_{i=1}^{k}\sum_{p\subset C}|p-m_{i}|^{2}$
 这里E是数据库中所有对象的平方误差的总和p是空间中的点mi是簇Ci的平均值[9]。该目标函数使生成的簇尽可能紧凑独立,使用的距离度量是欧几里得距离,当然也可以用其他距离度量。k-means聚类算法的算法流程如下
输入包含n个对象的数据库和簇的数目k
输出k个簇使平方误差准则最小。
步骤:
输入包含n个对象的数据库和簇的数目k
输出k个簇使平方误差准则最小。
步骤:
  (1) 任意选择k个对象作为初始的簇中心
  (2) repeat
  (3) 根据簇中对象的平均值,将每个对象(重新)赋予最类似的簇;
@ -1662,7 +1662,7 @@ http://www.cnblogs.com/William_Fire/archive/2013/02/09/2909499.html
  (5) until不再发生变化。
2.2 层次聚类算法
根据层次分解的顺序是自底向上的还是自上向下的,层次聚类算法分为凝聚的层次聚类算法和分裂的层次聚类算法。
根据层次分解的顺序是自底向上的还是自上向下的,层次聚类算法分为凝聚的层次聚类算法和分裂的层次聚类算法。
 凝聚型层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。绝大多数层次聚类属于凝聚型层次聚类,它们只是在簇间相似度的定义上有所不同。四种广泛采用的簇间距离度量方法如下:
![](../img/ch2/2-20.gif)
@ -1703,7 +1703,7 @@ FCM算法是一种以隶属度来确定每个数据点属于某个聚类程度
 (4) 根据迭代结果,由最后的隶属矩阵确定数据所属的类,显示最后的聚类结果。
3 四种聚类算法试验
3.1 试验数据
@ -1764,7 +1764,7 @@ $avg=\frac{1}{k}\sum_{i=1}^{k}\frac{m_{i}}{n_{i}}$