机器学习与数据挖掘中的十大经典算法

背景:

top10算法的前期背景是吴教授在香港做了一个关于数据挖掘top10挑战的一个报告,会后有一名内地的教授提出了一个类似的想法。吴教授觉得非常好,开始着手解决这个事情。找了一系列的大牛(都是数据挖掘的大牛),都觉得想法很好,但是都不愿自己干。原因估计有一下几种:1.确实很忙2.得罪人3.一系列工作很繁琐等等。最后和明尼苏达大学的Vipin Kumar教授一起把这件事情承担下来。先是请数据挖掘领域获过kdd和icdm大奖的十四个牛人提名候选,其中一人因为确实很忙,正从ibm转行到微软,吴教授虽然没提其名字,但从经历来看,应该就是我眼中的数据挖掘之父印度人--Rakesh Agrawal,就是他没有给出提名,其他13位都给出了自己心中的候选。经过汇总和筛选,共有18个算法,涵盖分类,聚类,图挖掘,关联分析,rough set等领域。由于是算法,一些比较有影响的领域,如神经网络,进化算法等都没有一个特别具体的算法,只能是一个比较大的框架或者思想等,就没有入选。汇总后,吴和Vipin Kumar就开始吵架,吴想删掉一些算法,比如naive bayes,他觉得过于简单,而Vipin Kumar则想添加一些,比如基于规则的挖掘算法(忘记吴是怎样说的了,大概就是这个意思)。最后作为一个折中,谁都没有增删其中的算法。第二步请更多的大牛,包括其中提名的那些最大牛进行投票,每人仅有一票,最终得出了其中的10个作为最后的算法。有些人的几个算法(韩家炜教授有三个算法成为候选,但一个也没有进入top10)都很优秀,却因为开创性,影响力等问题一个也没有入选最终名单。

在大会上宣布的时候,要请一些人来讲这些算法,大家都开开心心的来了,却因为算法的前后排名不高兴。(邀请的时候没说排名,只说进入top10),cart的宣讲人是该系统的拥有公司的一个技术顾问来讲的(发明此算法的四位统计学家,如breiman等,由于年龄问题,其中两位都已经过世了,有一个已经退休,都无法前来,而且他们已经将cart的所有权全部转让给一家公司了),一看自己是第一个讲得,不开心,尽管是凤尾,呵呵。等到最后一个讲完,他更是不开心,原因是第一个竟敢是C4.5,这个和cart都是决策树的经典算法,而且cart还比c4.5提出来的早,c4.5的一些思想直接或间接来源于此。吴见状,上前道:您觉得这十个算法哪几个容易被人凝记,这人带气曰:“我哪知道”,吴答道:最后一个和最前一个,这人呵呵一笑,笑得是老有深意啦。见:http://blog.csdn.net/playoffs/article/details/5115336

以下就是从参加评选的18种候选算法中,最终决选出来的十大经典算法:

更详细的介绍见pdf文件:http://pan.baidu.com/share/link?shareid=474935&uk=2466280636

一、C4.5

C4.5,是机器学习算法中的一个分类决策树算法,它是决策树(决策树也就是做决策的节点间的组织方式像一棵树,其实是一个倒树)核心算法ID3的改进算法,所以基本上了解了一半决策树构造方法就能构造它。决策树构造方法其实就是每次选择一个好的特征以及分裂点作为当前节点的分类条件。
C4.5相比于ID3改进的地方有:
1、用信息增益率来选择属性。
ID3选择属性用的是子树的信息增益,这里可以用很多方法来定义信息,ID3使用的是熵(entropy,熵是一种不纯度度量准则),也就是熵的变化值。而C4.5用的是信息增益率。对,区别就在于一个是信息增益,一个是信息增益率。一般来说率就是用来取平衡用的,就像方差起的作用差不多,比如有两个跑步的人,一个起点是10m/s的人、其10s后为20m/s;另一个人起速是1m/s、其1s后为2m/s。
如果紧紧算差值那么两个差距就很大了,如果使用速度增加率(加速度,即都是为1m/s^2)来衡量,2个人就是一样的加速度。因此,C4.5克服了ID3用信息增益选择属性时偏向选择取值多的属性的不足。
2、在树构造过程中进行剪枝,在构造决策树的时候,那些挂着几个元素的节点,不考虑最好,不然容易导致overfitting。
3、对非离散数据也能处理。
4、能够对不完整数据进行处理。

二、The k-means algorithm 即K-Means算法

k-means algorithm算法是一个聚类算法,把n的对象根据他们的属性分为k个分割(k < n)。它与处理混合正态分布的最大期望算法(本十大算法第五条)很相似,因为他们都试图找到数据中自然聚类的中心。它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和最小。

三、 Support vector machines

支持向量机,英文为Support Vector Machine,简称SV机(论文中一般简称SVM)。它是一种监督式学习的方法,它广泛的应用于统计分类以及回归分析中。支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面,分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。一个极好的指南是C.J.C Burges的《模式识别支持向量机指南》。van der Walt 和 Barnard 将支持向量机和其他分类器进行了比较。

四、The Apriori algorithm

Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。

五、最大期望(EM)算法

在统计计算中,最大期望 (EM,Expectation–Maximization)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variabl)。最大期望经常用在机器学习和计算机视觉的数据集聚(Data Clustering)领域。

六、PageRank

PageRank是Google算法的重要内容。2001年9月被授予美国专利,专利人是Google创始人之一拉里•佩奇(Larry Page)。因此,PageRank里的page不是指网页,而是指佩奇,即这个等级方法是以佩奇来命名的。PageRank根据网站的外部链接和内部链接的数量和质量,衡量网站的价值。PageRank背后的概念是,每个到页面的链接都是对该页面的一次投票, 被链接的越多,就意味着被其他网站投票越多。
这个就是所谓的“链接流行度”——衡量多少人愿意将他们的网站和你的网站挂钩。PageRank这个概念引自学术中一篇论文的被引述的频度——即被别人引述的次数越多,一般判断这篇论文的权威性就越高。

七、AdaBoost
Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器 (强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。
将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器融合起来,作为最后的决策分类器。

八、kNN: k-nearest neighbor classification

K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

九、Naive Bayes

在众多的分类模型中,应用最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBC)。朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。在属性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型。而在属性相关性较小时,NBC模型的性能最为良好。注:本质上是线性分类器,见http://www.rustle.us/?p=21

十、CART: 分类与回归树

CART, Classification and Regression Trees。 在分类树下面有两个关键的思想:第一个是关于递归地划分自变量空间的想法;第二个想法是用验证数据进行剪枝。ok,日后择其一二详细研究、阐述,完。

转载于:http://aimit.blog.edu.cn/home.php?mod=space&uid=1555054&do=blog&id=593069

机器学习与数据挖掘中的十大经典算法

时间: 2024-10-25 00:23:39

机器学习与数据挖掘中的十大经典算法的相关文章

数据挖掘领域的十大经典算法

国际权威的学术组织 ICDM (the IEEE International Conference on Data Mining)曾评选出了数据挖掘领域的十大经典算法:C4.5,k-Means,SVM,Apriori,EM,PageRank,AdaBoost,kNN,Naive Bayes和CART.其实不仅仅是选中的十大算法,参加评选的18种算法,随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响. 1. C4.5 C4.5算法是机器学习算法中的一种分类决策树算法,

数据挖掘领域十大经典算法初探

译者:July   二零一一年一月十五日 ----------------------------------------- 参考文献:国际权威的学术组织ICDM,于06年12月年评选出的数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART.==============博主说明:1.原文献非最新文章,只是本人向来对算法比较敏感.感兴趣,便把原文细看了下,翻译过程中

数据挖掘领域十大经典算法

国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 早前评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART. 不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响. 1.C4.5 C4.5算法是机

十大经典算法

以下就是从参加评选的18种候选算法中,最终决选出来的十大经典算法: 一.C4.5C4.5,是机器学习算法中的一个分类决策树算法,它是决策树(决策树也就是做决策的节点间的组织方式像一棵树,其实是一个倒树)核心算法,ID3的改进算法,所以基本上了解了一半决策树构造方法就能构造它.决策树构造方法其实就是每次选择一个好的特征以及分裂点作为当前节点的分类条件. C4.5相比于ID3改进的地方有:1.用信息增益率来选择属性.ID3选择属性用的是子树的信息增益,这里可以用很多方法来定义信息,ID3使用的是熵(

数据挖掘十大经典算法

一. C4.5  C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法.   C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进: 1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足: 2) 在树构造过程中进行剪枝: 3) 能够完成对连续属性的离散化处理: 4) 能够对不完整数据进行处理. C4.5算法有如下优点:产生的分类规则易于理解,准确率较高.其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导

十大经典算法总结

Damonare 20小时前 十大经典算法总结(JavaScript描述) 前言 读者自行尝试可以想看源码戳这,博主在github建了个库,欢迎star.读者可以Clone下来本地尝试.此博文配合源码体验更棒哦~~~ 个人博客:Damonare的个人博客 原文地址:十大经典算法总结 这世界上总存在着那么一些看似相似但有完全不同的东西,比如雷锋和雷峰塔,小平和小平头,玛丽和马里奥,Java和javascript.... 当年javascript为了抱Java大腿恬不知耻的让自己变成了Java的干儿

数学建模学习笔记(建模中的十大常用算法总结)

数学建模中的十大常用算法 1.    蒙特卡洛方法: 又称计算机随机性模拟方法,也称统计实验方法.可以通过模拟来检验自己模型的正确性. 2.    数据拟合.参数估计.插值等数据处理 比赛中常遇到大量的数据需要处理,而处理的数据的关键就在于这些方法,通常使用matlab辅助,与图形结合时还可处理很多有关拟合的问题. 3.    规划类问题算法: 包括线性规划.整数规划.多元规划.二次规划等:竞赛中又很多问题都和规划有关,可以说不少的模型都可以归结为一组不等式作为约束条件,几个函数表达式作为目标函

数据挖掘十大经典算法--CART: 分类与回归树

一.决策树的类型  在数据挖掘中,决策树主要有两种类型: 分类树 的输出是样本的类标. 回归树 的输出是一个实数 (比如房子的价格,病人呆在医院的时间等). 术语分类和回归树 (CART) 包括了上述两种决策树, 最先由Breiman 等提出.分类树和回归树有些共同点和不同点-比如处理在何处分裂的问题. 分类回归树(CART,Classification And Regression Tree)也属于一种决策树,之前我们介绍了基于ID3和C4.5算法的决策树. 这里仅仅介绍CART是如何用于分类

动态展示十大经典算法

算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序n个项目要Ο(nlogn)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被实现出来. 快速排序使用分治法(Divideandconquer)策略来把一个串行(list)分为两个子串行(sub-lists). 算法步骤: 1.从数列中挑出一个元素,称为“基准”(pivot),