修改表格与图片错误,拼写错误、乘号转义、中英文下括号混用
This commit is contained in:
parent
28e1f38c20
commit
93c676bfbb
|
|
@ -8,9 +8,9 @@
|
|||
|:-:|:-:|:-:|
|
||||
||||
|
||||
|
||||
|聚类算法|关联规则学习|人工神经网络
|
||||
|聚类算法|关联规则学习|人工神经网络|
|
||||
|:-:|:-:|:-:|
|
||||
||||
|
||||
||||
|
||||
|
||||
|深度学习|降低维度算法|集成算法|
|
||||
|:-:|:-:|:-:|
|
||||
|
|
@ -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 @@
|
|||
上图是这四个术语的混淆矩阵。
|
||||
1)P=TP+FN表示实际为正例的样本个数。
|
||||
2)True、False描述的是分类器是否判断正确。
|
||||
3)Positive、Negative是分类器的分类结果,如果正例计为1、负例计为-1,即positive=1、negtive=-1。用1表示True,-1表示False,那么实际的类标=TF*PN,TF为true或false,PN为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为负例。
|
||||
3)Positive、Negative是分类器的分类结果,如果正例计为1、负例计为-1,即positive=1、negative=-1。用1表示True,-1表示False,那么实际的类标=TF\*PN,TF为true或false,PN为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测试值,也称为综合分类率:
|
||||

|
||||
7) 其他评价指标
|
||||
计算速度:分类器训练和预测需要的时间;
|
||||
鲁棒性:处理缺失值和异常值的能力;
|
||||
可扩展性:处理大数据集的能力;
|
||||
可解释性:分类器的预测标准的可理解性,像决策树产生的规则就是很容易理解的,而神经网络的一堆参数就不好理解,我们只好把它看成一个黑盒子。
|
||||
8) 查准率和查全率反映了分类器分类性能的两个方面。如果综合考虑查准率与查全率,可以得到新的评价指标F1测试值,也称为综合分类率:
|
||||

|
||||
为了综合多个类别的分类情况,评测系统整体性能,经常采用的还有微平均F1(micro-averaging)和宏平均F1(macro-averaging )两种指标。宏平均F1与微平均F1是以两种不同的平均方式求的全局的F1指标。其中宏平均F1的计算方法先对每个类别单独计算F1值,再取这些F1值的算术平均值作为全局指标。而微平均F1的计算方法是先累加计算各个类别的a、b、c、d的值,再由这些值求出F1值。由两种平均F1的计算方式不难看出,宏平均F1平等对待每一个类别,所以它的值主要受到稀有类别的影响,而微平均F1平等考虑文档集中的每一个文档,所以它的值受到常见类别的影响比较大。
|
||||
**ROC曲线和PR曲线**
|
||||
|
||||
|
|
@ -249,7 +249,7 @@ $$
|
|||
当参数为2个时,代价函数是三维图像。
|
||||
|
||||

|
||||
|
||||
|
||||
## 2.18 为什么代价函数要非负?
|
||||
目标函数存在一个下界,在优化过程当中,如果优化算法能够使目标函数不断减小,根据单调有界准则,这个优化算法就能证明是收敛有效的。
|
||||
只要设计的目标函数有下界,基本上都可以,代价函数非负更为方便。
|
||||
|
|
@ -665,7 +665,7 @@ PCA可解决训练数据中存在数据特征过多或特征累赘的问题。
|
|||
假设数据集是m个n维,$(x^{(1)}, x^{(2)}, \cdots, x^{(m)})$。如果n=2,需要降维到$n'=1$,现在想找到某一维度方向代表这两个维度的数据。下图有$u_1, u_2$两个向量方向,但是哪个向量才是我们所想要的,可以更好代表原始数据集的呢?
|
||||
|
||||

|
||||
|
||||
|
||||
从图可看出,$u_1$比$u_2$好,为什么呢?有以下两个主要评价指标:
|
||||
1. 样本点到这个直线的距离足够近。
|
||||
2. 样本点在这个直线上的投影能尽可能的分开。
|
||||
|
|
@ -681,7 +681,7 @@ PCA可解决训练数据中存在数据特征过多或特征累赘的问题。
|
|||
|
||||
考虑到整个样本集,样本点到这个超平面的距离足够近,目标变为最小化TODO。对此式进行推理,可得:
|
||||
TODO
|
||||
|
||||
|
||||
在推导过程中,分别用到了TODO,矩阵转置公式TODO,TODO,TODO以及矩阵的迹,最后两步是将代数和转为矩阵形式。
|
||||
由于TODO的每一个向量TODO是标准正交基,TODO是数据集的协方差矩阵,TODO是一个常量。最小化TODO又可等价于
|
||||
|
||||
|
|
@ -806,7 +806,7 @@ TODO其映射为TODO
|
|||
模型过拟合:在训练集上具有较低的误差,在测试集上具有较高的误差,此时模型的方差较大。
|
||||
|
||||
模型正常:在训练集以及测试集上,同时具有相对较低的偏差以及方差。
|
||||
|
||||
|
||||
2. **横轴为模型复杂程度,纵轴为误差**
|
||||
|
||||

|
||||
|
|
@ -925,13 +925,13 @@ ROC曲线所覆盖的面积称为AUC(Area 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,那么样本1,2,3,4都被认为是正样本,因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。
|
||||
3、每次选取一个不同的threshold,得到一组FPR和TPR,即ROC曲线上的一点。以此共得到20组FPR和TPR的值。其中FPR和TPR简单理解如下:
|
||||
4、根据3)中的每个坐标点点,画图。
|
||||
|
||||
|
||||

|
||||
|
||||
### 2.47.11 如何计算TPR,FPR?
|
||||
|
|
@ -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的值:
|
||||
|
||||
|
||||

|
||||
|
||||
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 network,knn,decision trees等的泛化能力往往并不是很好,更容易发生过拟合问题。因此,在设计这些分类器时应当慎重考虑特征的数量。相反,那些泛化能力较好的分类器,比如naive Bayesian,linear 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 层次聚类算法
|
||||
根据层次分解的顺序是自底向上的还是自上向下的,层次聚类算法分为凝聚的层次聚类算法和分裂的层次聚类算法。
|
||||
根据层次分解的顺序是自底向上的还是自上向下的,层次聚类算法分为凝聚的层次聚类算法和分裂的层次聚类算法。
|
||||
凝聚型层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。绝大多数层次聚类属于凝聚型层次聚类,它们只是在簇间相似度的定义上有所不同。四种广泛采用的簇间距离度量方法如下:
|
||||
|
||||

|
||||
|
|
@ -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}}$
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue