2006年的ICDM(the IEEE International Conference on Data Mining) 上,评选出了数据挖掘领域的十大算法,分别是

1,C4.5

C4.5是一系列用在机器学习和数据挖掘的分类问题中的算法。它的目标是监督学习:给定一个数据集,其中的每一个元组都能用一组属性值来描述,每一个元组属于一个互斥的类别中的某一类。C4.5的目标是通过学习,找到一个从属性值到类别的映射关系,并且这个映射能用于对新的类别未知的实体进行分类。

C4.5由J.Ross Quinlan在ID3的基础上提出的。ID3算法用来构造决策树。决策树是一种类似流程图的树结构,其中每个内部节点(非树叶节点)表示在一个属性上的测试,每个分枝代表一个测试输出,而每个树叶节点存放一个类标号。一旦建立好了决策树,对于一个未给定类标号的元组,跟踪一条有根节点到叶节点的路径,该叶节点就存放着该元组的预测。决策树的优势在于不需要任何领域知识或参数设置,适合于探测性的知识发现。

文章:Quinlan, J. R. C4.5: Programs for Machine Learning. Morgan Kaufmann Publishers, 1993.

代码实现

2,k-Means

k-means 算法是一种得到最广泛使用的基于划分的聚类算法,把n个对象分为k个簇,以使簇内具有较高的相似度。相似度的计算根据一个簇中对象的平均值来进行。它与处理混合正态分布的最大期望算法很相似,因为他们都试图找到数据中自然聚类的中心。

算法首先随机地选择k个对象,每个对象初始地代表了一个簇的平均值或中心。对剩余的每个对象根据其与各个簇中心的距离,将它赋给最近的簇,然后重新计算每个簇的平均值。这个过程不断重复,直到准则函数收敛。

K-Means聚类算法及实现代码

3,SVM

支持向量机,SVM(Support Vector Machine),是一种监督式学习的方法,可广泛用于统计分类和回归分析。

支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面,分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。

文章:Christopher J. C. Burges. "A Tutorial on Support Vector Machines for Pattern Recognition". Data Mining and Knowledge Discovery 2:121 - 167, 1998

算法实现

4,Apriori

Apriori算法用于处理关联式规则的问题,关联式规则(Association Rules, AR),是数据挖掘的一个重要课题,用于从大量数据中挖掘出有价值的数据项之间的相关关系。关联规则解决的常见问题如:“如果一个消费者购买了产品A,那么他有多大机会购买产品B?”以及“如果他购买了产品C和D,那么他还将购买什么产品?”

Apriori算法是种最有影响的挖掘布尔关联规则频繁项集的算法。它的核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集(简称频集),也常称为最大项目集。
    在Apriori算法中,寻找最大项目集(频繁项集)的基本思想是:算法需要对数据集进行多步处理。第一步,简单统计所有含一个元素项目集出现的频数,并找出那些不小于最小支持度的项目集,即一维最大项目集。从第二步开始循环处理直到再没有最大项目集生成。循环过程是:第k步中,根据第k-1步生成的(k-1)维最大项目集产生k维侯选项目集,然后对数据库进行搜索,得到侯选项目集的项集支持度,与最小支持度进行比较,从而找到k维最大项目集。
    Java代码

5,EM期望值最大化算法,Expectation Maximization Algorithm

在统计计算中,EM算法是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)。最大期望经常用在机器学习和计算机视觉的数据聚类(Data Clustering)领域。最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;第二步是最大化(M),最大化在 E 步上求得的最大似然值来计算参数的值。M 步上找到的参数估计值被用于下一个 E 步计算中,这个过程不断交替进行。

文章:Arthur Dempster, Nan Laird, and Donald Rubin. "Maximum likelihood from incomplete data via the EM algorithm".Journal of the Royal Statistical Society, Series B, 39(1):1–38, 1977

算法详解以及源码

6,PageRank

PageRank,网页排名,又称网页级别、Google左侧排名或佩奇排名,是一种由搜索引擎根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,以Google公司创办人拉里·佩奇(Larry Page)之姓来命名。Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是经常被用来评估网页优化的成效因素之一。Google的创始人拉里·佩奇和谢尔盖·布林于1998年在斯坦福大学发明了这项技术。

详解

7,AdaBoost

Adaboost也是一种原理简单,但很实用的有监督机器学习算法,它是adaptive boosting的简称。说到boosting算法,就不得提一提bagging算法,他们两个都是把一些弱分类器组合起来来进行分类的方法,统称为集成方法(ensemble method),类似于投资,“不把鸡蛋放在一个篮子”,虽然每个弱分类器分类的不那么准确,但是如果把多个弱分类器组合起来可以得到相当不错的结果,另外要说的是集成方法还可以组合不同的分类器,而Adaboost和boosting算法的每个弱分类器的类型都一样的。他们两个不同的地方是:boosting的每个弱分类器组合起来的权重不一样,本节的Adaboost就是一个例子,而bagging的每个弱分类器的组合权重是相等,代表的例子就是random forest。Random forest的每个弱分类器是决策树,输出的类别有多个决策树分类的类别的众数决定。

详解

8,kNN

K最近邻(k-Nearest Neighbor,KNN)分类算法,是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。

matlab代码

9,Naive Bayes

朴素贝叶斯分类器:贝叶斯分类的基础是概率推理,就是在各种条件的存在不确定,仅知其出现概率的情况下,如何完成推理和决策任务。概率推理是与确定性推理相对应的。而朴素贝叶斯分类器是基于独立假设的,即假设样本每个特征与其他特征都不相关。举个例子,如果一种水果其具有红,圆,直径大概4英寸等特征,该水果可以被判定为是苹果。

尽管这些特征相互依赖或者有些特征由其他特征决定,然而朴素贝叶斯分类器认为这些属性在判定该水果是否为苹果的概率分布上独立的。朴素贝叶斯分类器依靠精确的自然概率模型,在有监督学习的样本集中能获取得非常好的分类效果。在许多实际应用中,朴素贝叶斯模型参数估计使用最大似然估计方法,换而言之朴素贝叶斯模型能工作并没有用到贝叶斯概率或者任何贝叶斯模型。

基于朴素贝叶斯分类器的文本分类

10,CART

分类和回归树(Classification And Regression Tree)s,是决策树中的一种方法。

Decision Tree包括以下几个部分:

•Root:根节点,Decision Tree使用了树的概念,必然有Root属性。
  •Decision Node:判定节点,该节点的数据会继续根据数据属性继续进行判定。
  •Branch:从Decision Node迭代生成的子树是子树根节点的一个属性判断
  •End Node:也称为Leaf Node,该节点实际上是做出决定的节点,对于样本属性的判断到Leaf Node结束。
   Decision Tree分类:

Classification Tree:测试数据经过Classification Tree处理后,看结果归属于那个类别(Class)。

Regression Tree:如果测试数据的输出是数值类型,可以考虑使用Regression Tree。

CART算法是对上面两种算法的术语涵盖。用来回归的树(Regression Tree)和用来分类的树(classification Tree)具有一定的相似性,不过其不同之处在于决定分裂(Split)的过程。

详细

机器学习(龙星计划):http://bigeye.au.tsinghua.edu.cn/DragonStar2012/download.html

数据挖掘中的十个著名算法相关推荐

  1. [转]详细解释数据挖掘中的 10 大算法

    在一份调查问卷中,三个独立专家小组投票选出的十大最有影响力的数据挖掘算法,今天我打算用简单的语言来解释一下. 一旦你知道了这些算法是什么.怎么工作.能做什么.在哪里能找到,我希望你能把这篇博文当做一个 ...

  2. 数据挖掘中的 10 大算法

    1.C4.5算法 2. k 均值聚类算法 3.支持向量机 4. Apriori 关联算法 5.EM 最大期望算法 Expectation Maximization 6.PageRank 算法 7.Ad ...

  3. 机器学习(数据挖掘十个重要算法)

    数据挖掘中常用的十个重要算法  一. C4.5  C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法.   C4.5算法继承了ID3算法的长处.并在下面几方面对ID3算法进行了 ...

  4. 数据挖掘中聚类算法概述

    1 聚类方法概述 聚类方法是将物理或抽象对象的集合组成为由类似的对象组成的多个类的过程被成为聚类.由聚类所组成的簇是一组数据对象的集合,这些对象与同一簇中的对象彼此类似,与其他簇中的对象相异.在许多应 ...

  5. 数据挖掘中分类算法小结

    数据挖掘中分类算法小结   数据仓库,数据库或者其它信息库中隐藏着许多可以为商业.科研等活动的决策提供所需要的知识.分类与预测是两种数据分析形式,它们可以用来抽取能够描述重要数据集合或预测未来数据趋势 ...

  6. ML之FE:机器学习算法/数据挖掘中特征选取(变量筛选)的简介、常用方法(单变量分析并筛选—Filter/Wrapper/Embedded、多变量间相关性分析并筛选—PCC/MIC/IV)之详细攻略

    ML之FE:机器学习算法/数据挖掘中特征选取(变量筛选)的简介.常用方法(单变量分析并筛选-Filter/Wrapper/Embedded.多变量间相关性分析并筛选-PCC/MIC/IV)之详细攻略 ...

  7. 经典的十个机器学习算法

    1.C4.5 机器学习中,决策树是一个预测模型:他代表的是对象属性与对象值之间的一种映射关系.树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的 属性值,而每个叶结点则对应从根节点到该叶节点所 ...

  8. 数据挖掘案例——ReliefF和K-means算法的医学应用

    [原创]数据挖掘案例--ReliefF和K-means算法的医学应用 阅读目录 1.数据挖掘与聚类分析概述 2.特征选择与聚类分析算法 3.一个医学数据分析实例 4.主要的Matlab源代码 数据挖掘 ...

  9. 数据挖掘中所需的概率论与数理统计知识,上

    http://www.cnblogs.com/v-July-v/archive/2012/12/17/3125418.html 数据挖掘中所需的概率论与数理统计知识.上 ( 关键词:微积分.概率分布. ...

最新文章

  1. cstring 比较_不同商用齿轮齿接触分析软件的比较(三)
  2. 路由交换-hc-文档
  3. Mycat探索之旅(3)----Mycat的全局序列号
  4. Java Windows 环境配置
  5. CPU-bound(计算密集型) 和I/O bound(I/O密集型)
  6. 数据结构之空间复杂度和空间复杂度
  7. Oracle Class4. 数据库对象(同义词,序列,视图,索引,簇)
  8. asp.net 实现一级域名与二级域名共享COOKIE
  9. python 读写文件 另存为_python读写文件(五)
  10. asp实现注册登录界面_Win7系统登陆界面修改小技巧--win7w.com
  11. mysql职业要求_运维职业要求
  12. STM32F103与MCGS的通讯
  13. css给文字设置动态效果,利用纯CSS实现动态的文字效果实例
  14. java微信退款接口demo_微信公众号接口开发----退款详解
  15. 使用tvp.player_v2_zepto.js播放腾讯视频
  16. 论文阅读:ICCV2021 TransReID: Transformer-based Object Re-Identifification
  17. Google秘密入口
  18. AD16原理图导出PCB报错Footprint not found
  19. Linux中断分析2
  20. linux 看芯片信息,Linux查看硬件信息(北桥芯片组、南桥、PCI接口、CPU等)

热门文章

  1. 最新版按键精灵一共有5个插件命令可以获取窗口句柄
  2. gnuplot : 画散点图
  3. Linux -bash java command not found 解决方法
  4. 新浪微博URL中的MID和微博id互转
  5. phpcms v9 ckeditor编辑器右下角增加一键排版按钮插件
  6. 删库别急着跑路,这几步神恢复!
  7. s()++php,.phps(dotphps)文件类型以及MIME类型详细描述
  8. Android中谷歌翻译接口使用(使用谷歌翻译接口,App做文本翻译)
  9. Linux安装memcached
  10. synchronized和ReentrantLock区别浅析 (转载地址:http://blog.csdn.net/zmx729618/article/details/51594166)