数据挖掘十大算法_数据挖掘十大算法程序编写题
数据挖掘算法有哪些
以下主要是常见的10种数据挖掘的算法,数据挖掘分为:分类(Logistic回归模型、神经网络、支持向量机等)、关联分析、聚类分析、孤立点分析。每一大类下都有好几种算法,这个具体可以参考数据挖掘概论这本书(英文最新版)
数据挖掘十大算法_数据挖掘十大算法程序编写题
数据挖掘十大算法_数据挖掘十大算法程序编写题
EM(Expectation-Maximum)算法也称期望化算法,它是最常见的隐变量估计方法,在机器学习中有极为广泛的用途,例如常被用来学习高斯混合模型(Gaussian mixture model,简称GMM)的参数;隐式马尔科夫算法(HMM)、LDA主题模型的变分推断等等。
数据挖掘十大经典算法(1)——朴素贝叶斯(Naive Bayes)
在此推出一个算法系列的科普文章。我们大家在平时埋头工程类工作之余,也可以抽身对一些常见算法进行了解,这不仅可以帮助我们拓宽思路,从另一个维度加深对计算机技术领域的理解,做到触类旁通,同时也可以让我们搞清楚一些既熟悉又陌生的领域——比如数据挖掘、大数据、机器学习——的基本原理,揭开它们的神秘面纱,了解到其实很多看似高深的领域,其实背后依据的基础和原理也并不复杂。而且,掌握各类算法的特点、优劣和适用场景,是真正从事数据挖掘工作的重中之重。只有熟悉算法,才可能对纷繁复杂的现实问题合理建模,达到预期效果。
本系列文章的目的是力求用最干练而生动的讲述方式,为大家讲解由权威的学术组织the IEEE International Conference on Data Mining (ICDM) 于2006年12月评选出的数据挖掘领域的十大经典算法。它们包括:
本文作为本系列的篇,在介绍具体算法之前,先简单为大家铺垫几个数据挖掘领域的常见概念:
在数据挖掘领域,按照算法本身的行为模式和使用目的,主要可以分为分类(classification),聚类(clustering)和回归(regression)几种,其中:
打几个不恰当的比方 :
另外,还有一个经常有人问起的问题,就是 数据挖掘 和 机器学习 这两个概念的区别,这里一句话阐明我自己的认识:机器学习是基础,数据挖掘是应用。机器学习研制出各种各样的算法,数据挖掘根据应用场景把这些算法合理运用起来,目的是达到的挖掘效果。
当然,以上的简单总结一定不够准确和严谨,更多的是为了方便大家理解打的比方。如果大家有更精当的理解,欢迎补充和交流。
好了,铺垫了这么多,现在终于进入正题!
作为本系列入门的篇,先为大家介绍一个容易理解又很有趣的算法—— 朴素贝叶斯 。
先站好队,朴素贝叶斯是一个典型的 有监督的分类算法 。
光从名字也可以想到,要想了解朴素贝叶斯,先要从 贝叶斯定理 说起。
贝叶斯定理是我们高中时代学过的一条概率学基础定理,它描述了条件概率的计算方式。不要怕已经把这些知识还给了体育老师,相信你一看公式就能想起来。
P(A|B)表示B已经发生的前提下,A发生的概率,叫做B发生下A的条件概率。其基本求解公式为:
其中,P(AB)表示A和B同时发生的概率,P(B)标识B本身的概率。
贝叶斯定理之所以有用,是因为我们在生活中经常遇到这种情况:我们可以很容易直接得出P(A|B),P(B|A)则很难直接得出,但我们更关心P(B|A)。
而贝叶斯定理就为我们打通从P(A|B)获得P(B|A)的道路。
下面不加证明地直接给出贝叶斯定理:
有了贝叶斯定理这个基础,下面来看看朴素贝叶斯算法的基本思路。
你看,其思想就是这么的朴素。那么,属于每个分类的概率该怎么计算呢?下面我们先祭出形式化语言!
那么现在的关键就是如何计算第3步中的各个条件概率。我们可以这么做:
因为分母对于所有类别为常数,因为我们只要将分子化皆可。又因为各特征属性是条件的,所以有:
如果你也跟我一样,对形式化语言有生理反应,不要怕,直接跳过前面这一坨,我们通过一个鲜活的例子,用人类的语言再解释一遍这个过程。
某个医院早上收了六个门诊病人,如下表。
现在又来了第七个病人,是一个打喷嚏的建筑工人。请问他最有可能患有何种疾病?
本质上,这就是一个典型的分类问题, 症状 和 职业 是特征属性, 疾病种类 是目标类别
根据 贝叶斯定理
可得
定"打喷嚏"和"建筑工人"这两个特征是的,因此,上面的等式就变成了
这是可以计算的。
因此,这个打喷嚏的建筑工人,有66%的概率是得了感冒。同理,可以计算这个病人患上过敏或脑震荡的概率。比较这几个概率,就可以知道他最可能得什么病。
接下来,我们再举一个朴素贝叶斯算法在实际中经常被使用的场景的例子—— 文本分类器 ,通常会用来识别邮件。
首先,我们可以把一封邮件的内容抽象为由若干组成的,这样是否包含每种就成了一封邮件的特征值,而目标类别就是 属于邮件 或 不属于邮件
设每个在一封邮件里出现与否的概率相互之间是的,那么只要我们有若干已经标记为邮件和非邮件的样本作为训练集,那么就可以得出,在全部邮件(记为Trash)出现某个Wi的概率,即 P(Wi|Trash)
而我们最重要回答的问题是,给定一封邮件内容M,它属于邮件的概率是多大,即 P(Trash|M)
根据贝叶斯定理,有
我们先来看分子:
P(M|Trash) 可以理解为在邮件这个范畴中遇见邮件M的概率,而一封邮件M是由若干单词Wi汇聚组成的,只要我们所掌握的单词样本足够多,因此就可以得到
这些值我们之前已经可以得到了。
再来看分子里的另一部分 P(Trash) ,这个值也就是邮件的总体概率,这个值显然很容易得到,用训练集中邮件数除以总数即可。
而对于分母来说,我们虽然也可以去计算它,但实际上已经没有必要了,因为我们要比较的 P(Trash|M) 和 P(non-Trash|M) 的分母都是一样的,因此只需要比较分子大小即可。
这样一来,我们就可以通过简单的计算,比较邮件M属于还是非二者谁的概率更大了。
朴素贝叶斯的英文叫做 Naive Bayes ,直译过来其实是 天真的贝叶斯 ,那么他到底天真在哪了呢?
这主要是因为朴素贝叶斯的基本设是所有特征值之间都是相互的,这才使得概率直接相乘这种简单计算方式得以实现。然而在现实生活中,各个特征值之间往往存在一些关联,比如上面的例子,一篇文章中不同单词之间一定是有关联的,比如有些词总是容易同时出现。
因此,在经典朴素贝叶斯的基础上,还有更为灵活的建模方式—— 贝叶斯网络(Bayesian Belief Networks, BBN) ,可以单独指定特征值之间的是否。这里就不展开了,有兴趣的同学们可以做进一步了解。
我们来对这个经典算法做个点评:
优点:
缺点:
好了,对于 朴素贝叶斯 的介绍就到这里,不知道各位看完之后是否会对数据挖掘这个领域产生了一点兴趣了呢?
数据挖掘算法有哪些
数据挖掘的核心是为数据建立模型的过程。所有的数据挖掘产品都有这个建模过程,不同的是它们构造模型的方式互不相同。进行数据挖掘时可采用许多不同的算法。决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。常用的算法有CHAID、CART、ID3和C4.5。决策树方法很直观,这是它的优点,缺点是随着数据复杂性的提高,分支数增多,管理起来很困难。ANGOSS公司的KnowedgeSEEKER产品采用了混合算法的决策树。神经网络近来越来越受到人们的关注,因为它为解决大复杂度问题提供了一种相对来说比较有效的简单方法。神经网络常用于两类问题:分类和回归。它的优点是它能地对复杂问题进行预测。神经网络的缺点是网络模型是个黑盒子,预测值难于理解;神经网络有过拟合的现象。IBM、SAS、SPSS、HNC、ANGOSS等公司是这个产品的供应者。遗传算法是一种基于进化过程的组合优化方法。它的基本思想是随着时间的更替,只有最适合的物种才得以进化。遗传算法能够解决其它技术难以解决的问题,然而,它也是一种最难于理解和最开放的方法。遗传算法通常与神经网络结合使用。采用上述技术的某些专门的分析工具已经发展了大约十年的历史,不过这些工具所面对的数据量通常较小。而现在这些技术已经被直接集成到许多大型的工业标准的数据仓库和联机分析系统中去了。
数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART。
数据挖掘本质还是机器学习算法
具体可以参见《数据挖掘十大常见算法》
常用的就是:SVM,决策树,朴素贝叶斯,逻辑斯蒂回归等
主要解决分类和回归问题
朴素贝叶斯,它是一种简单但极为强大的预测建模算法。之所以称为朴素贝叶斯,是因为它设每个输入变量是的。这个设很硬,现实生活中根本不满足,但是这项技术对于绝大部分的复杂问题仍然非常有效。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。