数据挖掘学习笔记:分类、统计学习

标签: Big Data & Machine Learning C4.5 CART EM KNN | 发表时间:2014-01-13 09:05 | 作者:四火
出处:http://www.raychase.net

ICDM(国际数据挖掘大会)2006年从18种提名的数据挖掘算法中投票选出了十大算法。这18中提名数据挖掘算法分属10大数据挖掘主题,蓝色部分即为最终选出的十大算法:

  • 分类(Classification)
    • C4.5
    • CART
    • K Nearest Neighbours
    • Naive Bayes
  • 统计学习(Statistical Learning)
    • SVM
    • EM
  • 关联分析(Association Analysis)
    • Apriori
    • FP-Tree
  • 链接挖掘(Link Mining)
    • PageRank
    • HITS
  • 聚类(Clustering)
    • K-Means
    • BIRCH
  • 袋装与推进(Bagging and Boosting)
    • AdaBoost
  • 序列模式(Sequential Patterns)
    • GSP
    • PrefixSpan
  • 集成挖掘(Integrated Mining)
    • CBA
  • 粗糙集(Rough Sets)
    • Finding Reduct
  • 图挖掘(Graph Mining)
    • gSpan

以下是其中关于分类和统计学习主题的笔记。

 

C4.5

C4.5算法源于ID3算法,也是一种分类决策树算法,但是做了如下的改进:

1、用“信息增益率”代替“信息增益”来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足:

关于“信息增益率”,先要理解“信息增益(Information Gain)”,请参见《 使用ID3算法构造决策树》这篇文章,里面既介绍了C4.5的前身ID3算法,同时,也以一个实际例子提到了“信息熵”和“信息增益”的含义,这个例子理解以后,下面对于信息熵和信息增益的公式就清楚了。

信息熵(Entropy):

数据挖掘学习笔记:分类、统计学习

信息增益是用来衡量样本集S下属性A分裂时的信息熵减少量:

数据挖掘学习笔记:分类、统计学习

信息增益是信息熵的有效减少量,值越高,说明目标属性在参考属性处损失的信息熵越多,也就是失去的不确定性越多,那么在决策树进行分类的时候,它就应该越早作为决策的依据属性。

但是,使用信息增益作为判断节点分裂依据的一个缺陷在于它偏向于选择具有更多取值的属性作为节点分裂属性,而实际上属性值较多的属性不一定是最优的分类属性。

C4.5算法使用信息增益率来取代信息增益,信息增益率的定义:

数据挖掘学习笔记:分类、统计学习

其中Gain(S,A)是上面提到过的信息增益,而SplitInfo(S,A)指的是分裂信息,代表了按照属性A来分裂样本集S的广度和均匀性:

数据挖掘学习笔记:分类、统计学习

公式中,从S 1到S c是c个不同值的属性A分割S而形成的c个样本子集。

2、在树构造过程中进行剪枝;

3、能够完成对连续属性的离散化处理:

对于连续型属性进行排序,得到多个阈值,取能够产生最大信息增益的阈值作为分裂的阈值。

4、能够对不完整数据进行处理:

在数据不完整时,对于某个具有缺失值的属性计算信息增益率,有几种处理办法,例如直接忽略该类样本,选择常用值或均值填充等等。

 

CART

CART(Classification And Regression Tree,分类回归树)采用一种二分递归分割的技术,将当前样本集分为两个子样本集,使得生成的决策树的每个非叶子节点都有两个分支。因此,CART算法生成的决策树是结构简洁的二叉树。

还是举和《 使用ID3算法构造决策树》一样的例子,现在我们要研究狗的智商,潜在的关联因子包括毛的长度和颜色:

颜色(color) 毛长度(length) 智商(IQ)
black
white
white
white

在决策树的每一个节点上都可以按照任一个属性来划分,但是到底按照那种属性来划分,需要用一个数值来衡量,例如Gini指数,如果我们用k,k=1,2,3……c表示类,其中c是类别集Result的因变量数目,p k表示观测点中属于k类的概率,一个节点A的Gini指数定义为:

数据挖掘学习笔记:分类、统计学习

好,我们现在最终是要考察哪一个潜在关联因子和狗的智商关联度最高。先看毛长度,智商为高的狗有三条,毛长度一个短、两个长;智商为低的狗有一条,短毛:

Gini(length) = (3/4) * ( 1-( (1/3)² + (2/3)² ) ) + (1/4) * ( 1-( (1/1)² ) )

再看颜色,智商高的狗有三条,颜色两白一黑;智商低的狗有一条,颜色白:

Gini(color) = (3/4) * ( 1-( (1/3)² + (2/3)² ) ) + (1/4) * ( 1-( (1/1)² ) )

最后比较两者的Gini系数,如果Gini(length)更小,那么使用毛长度的划分要更好(但是这个例子里面可以看出二者的Gini系数相同)。

关于终止条件:最简单的情况是,如果只剩下一个元素了,或者包含元素都属于同一个类别了,那么分类就可以停止了,但是我们也可以设定一个阈值,低于这个阈值时就没有必要继续划分了。

关于剪枝:使用验证数据进行剪枝是CART的一个重要思想。最常见的有两种剪枝方式,预剪枝和后剪枝。预剪枝就是满足剪枝条件时树停止生长,后剪枝就是在允许决策树得到最充分生长的基础上,再根据一定的规则,自下而上逐层进行剪枝。

关于分类后的回归:现实中会有些数据很复杂,肉眼几乎看不出符合那种模型,因此构建全局的模型就有点不合适。“回归”就是为了解决这类问题,在构建决策节点把数据数据切分成区域之后,局部区域可以进行回归拟合,例如最后取值为叶节点目标变量的加权值。

 

KNN

KNN(K Nearest Neighbours)属于比较简单的一种用来归类的算法,给定一个表示范围的k值,从而确定了一定的范围,然后根据范围内的点的分布来确定待分类目标点属于哪个范围。下面这张图来自 维基百科

数据挖掘学习笔记:分类、统计学习

k在这张图里可以理解成圆的半径,当k取值较小时,范围为图中实线的圆,圆内红色点数目多过蓝色点,因此绿色的待分类点属于红色点集的分类;当k取值较大,范围为图中虚线的圆时,蓝色点有三个,多于两个红色点,因此绿色的待分类点属于蓝色点集的分类。

当然,这只是最简单的一个例子,实际应用中,会有很多的推广情形,以及许多改进。例如,可以把二维的例子推广到N维;可以引入不同的距离计算方法(如把欧氏距离变成汉明距离);可以引入权值,增强较近的点对结果的影响等等。

 

Naive Bayes

朴素贝叶斯分类,对部分未知的状态用主观概率估计,然后用贝叶斯公式对概率进行修正,最后再利用期望值和修正概率做出最优决策的分类方法。基本思想是:

  1. 已知类条件概率密度参数表达式和先验概率;
  2. 利用贝叶斯公式转换成后验概率;
  3. 根据后验概率大小进行决策分类。

请参见我曾经写过的一篇文章 《朴素贝叶斯分类》,已经详细介绍了。

 

SVM

SVM(Support Vector Machine,支持向量机)是一种对线性数据和非线性数据进行分类的算法。它使用非线性映射,把原训练数据映射到较高维上,并且搜索新维度的最佳分离超平面,即将一个类的元素和其他类分离的最佳决策边界。

下面两幅图来自 维基百科

数据挖掘学习笔记:分类、统计学习

从上图可见,两个维度上看,有两组数据,一组黑点表示,一组白点表示,直线H1并未做到分类;H2虽然做到分类,但是两类之间的空隙太小;H3分类了,并且使得两类之间的空隙最大。

数据挖掘学习笔记:分类、统计学习

这幅图展示分隔两个分类的“最佳分离超平面”(两个虚线之间的最短距离达到最大),而落在图中虚线之间、得以成功分隔这两个分类的的超平面,都被称为“支持向量”。

SVM学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他分类方法(如前面介绍的分类方法,基于规则的分类器和人工神经网络等等)都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。另外,SVM一般只能用在二类问题,对于多类问题效果不好。

数据挖掘学习笔记:分类、统计学习

在低维线性不可分的模式通过非线性映射到高维特征空间后,可能可以做到线性可分了,但是维度的增加会引发计算量指数级增长的问题。核函数就是用来解决这样的问题的,上面和下面共两张图都来自 pluskid的博客,上图可见这个数据集线性不可分,现在把平面空间点映射到三维空间后,再旋转坐标轴,使得重新满足线性可分:

数据挖掘学习笔记:分类、统计学习

 

EM

EM(Expectation-maximization,期望最大)算法在统计中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计。

在统计计算中,最大期望(EM)算法是在概率模型中寻找参数最大似然估计(一种统计方法,它用来求一个样本集的相关概率密度函数的参数。)或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量。最大期望经常用在机器学习和计算机视觉的数据聚类领域。

  • 最大期望算法经过两个步骤交替进行计算:
    第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;
  • 第二步是最大化(M),最大化在 E 步上求得的最大似然值来计算参数的值。

M 步上找到的参数估计值被用于下一个 E 步计算中,这个过程不断交替进行。

数据挖掘学习笔记:分类、统计学习

EM的整个推导过程请参见 JerryLead的这篇文章

 

文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》

分享到:

相关 [数据挖掘 学习 笔记] 推荐:

数据挖掘学习笔记:分类、统计学习

- - 四火的唠叨
ICDM(国际数据挖掘大会)2006年从18种提名的数据挖掘算法中投票选出了十大算法. 这18中提名数据挖掘算法分属10大数据挖掘主题,蓝色部分即为最终选出的十大算法:. 分类(Classification). 统计学习(Statistical Learning). 关联分析(Association Analysis).

如何系统地学习数据挖掘?

- - 知乎每日精选
这个问题思考了很久,作为过来人谈一谈,建议先看下以前的一些回答. 在学习数据挖掘之前应该明白几点:. 数据挖掘目前在中国的尚未流行开,犹如屠龙之技. 数据初期的准备通常占整个数据挖掘项目工作量的70%左右. 数据挖掘本身融合了 统计学、数据库和机器学习等学科,并不是新的技术. 数据挖掘技术更适合业务人员学习(相比技术人员学习业务来的更高效).

大数据/数据挖掘/推荐系统/机器学习相关资源

- - 互联网分析沙龙
Share my personal resources,本文贡献者为Zhe Yu. 各种书~各种ppt~更新中~ http://pan.baidu.com/s/1EaLnZ. 机器学习经典书籍小结 http://www.cnblogs.com/snake-hand/archive/2013/06/10/3131145.html.

数据挖掘是神马?

- - 互联网分析
1、数据挖掘需要‘神马样’的流程.  2、哥,有没有详细点的,来个给力的. 4、数据在统计意义上有哪些类型. 9、知道这些工具不知道如何在工作中用呀. 11、还有没有更人性化、智能化的展现. 12、上面这图看起来很给力,背后很复杂吧.  16、转载的留个来源 ,毕竟是我辛苦收集和想出来的,谢谢. 忘记“大数据”,从“中数据”开始.

这就是数据挖掘

- - 互联网分析
当今数据库的容量已经达到上万亿的水平(T)— 1,000,000,000,000个字节. 在这些大量数据的背后隐藏了很多具有决策意义的信息,那么怎么得到这些“知识”呢. 也就是怎样通过一颗颗的树木了解到整个森林的情况. 计 算机科学对这个问题给出的最新回答就是:数据挖掘,在“数据矿山”中找到蕴藏的“知识金块”,帮助企业减少不必要投资的同时提高资金回报.

关于数据挖掘

- - 牛国柱
以下内容来自网络,关于数据挖掘的一些最基本的知识. 数据挖掘是对一系列数据进行分析和挖掘的方法的统称,在精准营销领域,最常用的数据挖掘方法主要包括以下三类:分类、聚类、关联. 分类(Classify)属于预测性模型. 分类模型的构建需要“训练样本”,训练样本中的每一个个体的类别必须是明确的. 分类模型的特征变量一般称为“自变量”,又叫“预测变量”,类别变量称为“目标变量”.

shell 学习笔记

- tiger - 游戏人生
将脚本目录加到 PATH 中. 在 dash 中如何进行字符串替换. 将 rst 格式文档转换为 blog 可用的 html 代码. shell 脚本虽然不是非常复杂的程序, 但对于首次接触的我来讲, 多少还是有些忌惮. 不过, 接触任何新事物都需要勇敢面对, 逐步树立信心. 我是冲着把脚本写好去的, 所以, 我的目标是能够写出友好, 健壮, 优美的脚本..

OAuth学习笔记

- 宋大妈 - FeedzShare
来自: 标点符 - FeedzShare  . 发布时间:2011年08月29日,  已有 2 人推荐. OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据.

Vim学习笔记

- 临池学书 - C++博客-首页原创精华区
最近在学习Vimtutor中的相关内容,Vim的使用博大精深,很多命令一旦不使用就会忘记,下面把其中的没有使用到的相关命令做一个简单的总结,供以后复习使用. 至于常见的保存,插入等等命令,则不予记录,在以后的使用中加深练习即可. To change until the end of a word, type  ce (ce + 修正的单词).

OAuth学习笔记

- jiaosq - 标点符
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据. 每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频).