导航:首页 > 网络数据 > 十大数据挖掘算法

十大数据挖掘算法

发布时间:2023-01-09 00:04:24

⑴ 常用的数据挖掘算法有哪几类

可以参考https://wizardforcel.gitbooks.io/dm-algo-top10/content/index.html

⑵ 数据挖掘常用算法有哪些

1、 朴素贝叶斯


朴素贝叶斯(NB)属于生成式模型(即需要计算特征与类的联合概率分布),计算过程非常简单,只是做了一堆计数。NB有一个条件独立性假设,即在类已知的条件下,各个特征之间的分布是独立的。这样朴素贝叶斯分类器的收敛速度将快于判别模型,如逻辑回归,所以只需要较少的训练数据即可。即使NB条件独立假设不成立,NB分类器在实践中仍然表现的很出色。它的主要缺点是它不能学习特征间的相互作用,用mRMR中的R来讲,就是特征冗余。


2、逻辑回归(logistic regression)


逻辑回归是一个分类方法,属于判别式模型,有很多正则化模型的方法(L0,L1,L2),而且不必像在用朴素贝叶斯那样担心特征是否相关。与决策树与SVM相比,还会得到一个不错的概率解释,甚至可以轻松地利用新数据来更新模型(使用在线梯度下降算法online gradient descent)。如果需要一个概率架构(比如,简单地调节分类阈值,指明不确定性,或者是要获得置信区间),或者希望以后将更多的训练数据快速整合到模型中去,那么可以使用它。


3、 线性回归


线性回归是用于回归的,而不像Logistic回归是用于分类,其基本思想是用梯度下降法对最小二乘法形式的误差函数进行优化。


4、最近邻算法——KNN


KNN即最近邻算法,其主要过程为:计算训练样本和测试样本中每个样本点的距离(常见的距离度量有欧式距离,马氏距离等);对上面所有的距离值进行排序;选前k个最小距离的样本;根据这k个样本的标签进行投票,得到最后的分类类别;如何选择一个最佳的K值,这取决于数据。


5、决策树


决策树中很重要的一点就是选择一个属性进行分枝,因此要注意一下信息增益的计算公式,并深入理解它。


6、SVM支持向量机


高准确率,为避免过拟合提供了很好的理论保证,而且就算数据在原特征空间线性不可分,只要给个合适的核函数,它就能运行得很好。在动辄超高维的文本分类问题中特别受欢迎。可惜内存消耗大,难以解释,运行和调参也有些烦人,而随机森林却刚好避开了这些缺点,比较实用。

⑶ 数据挖掘的十大经典算法,总算是讲清楚了,想提升自己的赶快收藏

一个优秀的数据分析师,除了要掌握基本的统计学、数据分析思维、数据分析工具之外,还需要掌握基本的数据挖掘思想,帮助我们挖掘出有价值的数据,这也是数据分析专家和一般数据分析师的差距所在。

国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 评选出了数据挖掘领域的十大经典算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART.

不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响。今天主要分享其中10种经典算法,内容较干,建议收藏备用学习。

1. C4.5

C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:

1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;

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

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

4) 能够对不完整数据进行处理。

C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效(相对的CART算法只需要扫描两次数据集,以下仅为决策树优缺点)。

2. The k-means algorithm 即K-Means算法

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

3. Support vector machines

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

4. The Apriori algorithm

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

5. 最大期望(EM)算法

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

6. PageRank

PageRank是Google算法的重要内容。2001年9月被授予美国专利,专利人是Google创始人之一拉里·佩奇(Larry Page)。因此,PageRank里的page不是指网页,而是指佩奇,即这个等级方法是以佩奇来命名的。

PageRank根据网站的外部链接和内部链接的数量和质量俩衡量网站的价值。PageRank背后的概念是,每个到页面的链接都是对该页面的一次投票, 被链接的越多,就意味着被其他网站投票越多。这个就是所谓的“链接流行度”——衡量多少人愿意将他们的网站和你的网站挂钩。PageRank这个概念引自 学术中一篇论文的被引述的频度——即被别人引述的次数越多,一般判断这篇论文的权威性就越高。

7. AdaBoost

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

8. kNN: k-nearest neighbor classification

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

9. Naive Bayes

在众多的分类模型中,应用最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBC)。 朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。

同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论上,NBC模型与其他分类方法相比具有最小的误差率。 但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。在属 性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型。而在属性相关性较小时,NBC模型的性能最为良好。

10. CART: 分类与回归树

CART, Classification and Regression Trees。 在分类树下面有两个关键的思想。第一个是关于递归地划分自变量空间的想法(二元切分法);第二个想法是用验证数据进行剪枝(预剪枝、后剪枝)。在回归树的基础上的模型树构建难度可能增加了,但同时其分类效果也有提升。

参考书籍:《机器学习实战》

⑷ 数据挖掘算法有哪些

以下主要是常见的10种数据挖掘的算法,数据挖掘分为:分类(Logistic回归模型、神经网络、支持向量机等)、关联分析、聚类分析、孤立点分析。每一大类下都有好几种算法,这个具体可以参考数据挖掘概论这本书(英文最新版)

⑸ 数据挖掘十大算法-

整理里一晚上的数据挖掘算法,其中主要引自wiki和一些论坛。发布到上作为知识共享,但是发现Latex的公式转码到网页的时候出现了丢失,暂时没找到解决方法,有空再回来填坑了。

——编者按

一、 C4.5

C4.5算法是由Ross Quinlan开发的用于产生决策树的算法[1],该算法是对Ross Quinlan之前开发的ID3算法的一个扩展。C4.5算法主要应用于统计分类中,主要是通过分析数据的信息熵建立和修剪决策树。

1.1 决策树的建立规则

在树的每个节点处,C4.5选择最有效地方式对样本集进行分裂,分裂规则是分析所有属性的归一化的信息增益率,选择其中增益率最高的属性作为分裂依据,然后在各个分裂出的子集上进行递归操作。

依据属性A对数据集D进行分类的信息熵可以定义如下:

划分前后的信息增益可以表示为:

那么,归一化的信息增益率可以表示为:

1.2 决策树的修剪方法

C4.5采用的剪枝方法是悲观剪枝法(Pessimistic Error Pruning,PEP),根据样本集计算子树与叶子的经验错误率,在满足替换标准时,使用叶子节点替换子树。

不妨用K表示训练数据集D中分类到某一个叶子节点的样本数,其中其中错误分类的个数为J,由于用估计该节点的样本错误率存在一定的样本误差,因此用表示修正后的样本错误率。那么,对于决策树的一个子树S而言,设其叶子数目为L(S),则子树S的错误分类数为:

设数据集的样本总数为Num,则标准错误可以表示为:

那么,用表示新叶子的错误分类数,则选择使用新叶子节点替换子树S的判据可以表示为:

二、KNN

最近邻域算法(k-nearest neighbor classification, KNN)[2]是一种用于分类和回归的非参数统计方法。KNN算法采用向量空间模型来分类,主要思路是相同类别的案例彼此之间的相似度高,从而可以借由计算未知样本与已知类别案例之间的相似度,来实现分类目标。KNN是一种基于局部近似和的实例的学习方法,是目前最简单的机器学习算法之一。

在分类问题中,KNN的输出是一个分类族群,它的对象的分类是由其邻居的“多数表决”确定的,k个最近邻居(k为正整数,通常较小)中最常见的分类决定了赋予该对象的类别。若k = 1,则该对象的类别直接由最近的一个节点赋予。在回归问题中,KNN的输出是其周围k个邻居的平均值。无论是分类还是回归,衡量邻居的权重都非常重要,目标是要使较近邻居的权重比较远邻居的权重大,例如,一种常见的加权方案是给每个邻居权重赋值为1/d,其中d是到邻居的距离。这也就自然地导致了KNN算法对于数据的局部结构过于敏感。

三、Naive Bayes

在机器学习的众多分类模型中,应用最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBC)[3]。朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。

在假设各个属性相互独立的条件下,NBC模型的分类公式可以简单地表示为:

但是实际上问题模型的属性之间往往是非独立的,这给NBC模型的分类准确度带来了一定影响。在属性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型;而在属性相关性较小时,NBC模型的性能最为良好。

四、CART

CART算法(Classification And Regression Tree)[4]是一种二分递归的决策树,把当前样本划分为两个子样本,使得生成的每个非叶子结点都有两个分支,因此CART算法生成的决策树是结构简洁的二叉树。由于CART算法构成的是一个二叉树,它在每一步的决策时只能是“是”或者“否”,即使一个feature有多个取值,也是把数据分为两部分。在CART算法中主要分为两个步骤:将样本递归划分进行建树过程;用验证数据进行剪枝。

五、K-means

k-平均算法(k-means clustering)[5]是源于信号处理中的一种向量量化方法,现在则更多地作为一种聚类分析方法流行于数据挖掘领域。k-means的聚类目标是:把n个点(可以是样本的一次观察或一个实例)划分到k个聚类中,使得每个点都属于离他最近的均值(此即聚类中心)对应的聚类。

5.1 k-means的初始化方法

通常使用的初始化方法有Forgy和随机划分(Random Partition)方法。Forgy方法随机地从数据集中选择k个观测作为初始的均值点;而随机划分方法则随机地为每一观测指定聚类,然后执行“更新”步骤,即计算随机分配的各聚类的图心,作为初始的均值点。Forgy方法易于使得初始均值点散开,随机划分方法则把均值点都放到靠近数据集中心的地方;随机划分方法一般更适用于k-调和均值和模糊k-均值算法。对于期望-最大化(EM)算法和标准k-means算法,Forgy方法作为初始化方法的表现会更好一些。

5.2 k-means的标准算法

k-means的标准算法主要包括分配(Assignment)和更新(Update),在初始化得出k个均值点后,算法将会在这两个步骤中交替执行。

分配(Assignment):将每个观测分配到聚类中,使得组内平方和达到最小。

更新(Update):对于上一步得到的每一个聚类,以聚类中观测值的图心,作为新的均值点。

六、Apriori

Apriori算法[6]是一种最有影响的挖掘布尔关联规则频繁项集的算法,其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。Apriori采用自底向上的处理方法,每次只扩展一个对象加入候选集,并且使用数据集对候选集进行检验,当不再产生匹配条件的扩展对象时,算法终止。

Apriori的缺点在于生成候选集的过程中,算法总是尝试扫描整个数据集并尽可能多地添加扩展对象,导致计算效率较低;其本质上采用的是宽度优先的遍历方式,理论上需要遍历次才可以确定任意的最大子集S。

七、SVM

支持向量机(Support Vector Machine, SVM)[7]是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

除了进行线性分类之外,SVM还可以使用所谓的核技巧有效地进行非线性分类,将其输入隐式映射到高维特征空间中,即支持向量机在高维或无限维空间中构造超平面或超平面集合,用于分类、回归或其他任务。直观来说,分类边界距离最近的训练数据点越远越好,因为这样可以缩小分类器的泛化误差。

八、EM

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

九、PageRank

PageRank算法设计初衷是根据网站的外部链接和内部链接的数量和质量对网站的价值进行衡量。PageRank将每个到网页的链接作为对该页面的一次投票,被链接的越多,就意味着被其他网站投票越多。

算法假设上网者将会不断点网页上的链接,当遇到了一个没有任何链接出页面的网页,这时候上网者会随机转到另外的网页开始浏览。设置在任意时刻,用户到达某页面后并继续向后浏览的概率,该数值是根据上网者使用浏览器书签的平均频率估算而得。PageRank值可以表示为:

其中,是被研究的页面集合,N表示页面总数,是链接入页面的集合,是从页面链接处的集合。

PageRank算法的主要缺点是的主要缺点是旧的页面等级会比新页面高。因为即使是非常好的新页面也不会有很多外链,除非它是某个站点的子站点。

十、AdaBoost

AdaBoost方法[10]是一种迭代算法,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率。每一个训练样本都被赋予一个权重,表明它被某个分类器选入训练集的概率。如果某个样本点已经被准确地分类,那么在构造下一个训练集中,它被选中的概率就被降低;相反,如果某个样本点没有被准确地分类,那么它的权重就得到提高。通过这样的方式,AdaBoost方法能“聚焦于”那些较难分的样本上。在具体实现上,最初令每个样本的权重都相等,对于第k次迭代操作,我们就根据这些权重来选取样本点,进而训练分类器Ck。然后就根据这个分类器,来提高被它分错的的样本的权重,并降低被正确分类的样本权重。然后,权重更新过的样本集被用于训练下一个分类器Ck[,并且如此迭代地进行下去。

AdaBoost方法的自适应在于:前一个分类器分错的样本会被用来训练下一个分类器。AdaBoost方法对于噪声数据和异常数据很敏感。但在一些问题中,AdaBoost方法相对于大多数其它学习算法而言,不会很容易出现过拟合现象。AdaBoost方法中使用的分类器可能很弱(比如出现很大错误率),但只要它的分类效果比随机好一点(比如两类问题分类错误率略小于0.5),就能够改善最终得到的模型。而错误率高于随机分类器的弱分类器也是有用的,因为在最终得到的多个分类器的线性组合中,可以给它们赋予负系数,同样也能提升分类效果。

引用

[1] Quinlan, J. R. C4.5: Programs for Machine Learning. Morgan Kaufmann Publishers, 1993.

[2] Altman, N. S. An introction to kernel and nearest-neighbor nonparametric regression. The American Statistician. 1992, 46 (3): 175–185. doi:10.1080/00031305.1992.10475879

[3] Webb, G. I.; Boughton, J.; Wang, Z. Not So Naive Bayes: Aggregating One-Dependence Estimators. Machine Learning (Springer). 2005, 58 (1): 5–24. doi:10.1007/s10994-005-4258-6

[4] decisiontrees.net Interactive Tutorial

[5] Hamerly, G. and Elkan, C. Alternatives to the k-means algorithm that find better clusterings (PDF). Proceedings of the eleventh international conference on Information and knowledge management (CIKM). 2002

[6] Rakesh Agrawal and Ramakrishnan Srikant. Fast algorithms for mining association rules in large databases. Proceedings of the 20th International Conference on Very Large Data Bases, VLDB, pages 487-499, Santiago, Chile, September 1994.

[7] Cortes, C.; Vapnik, V. Support-vector networks. Machine Learning. 1995, 20 (3): 273–297. doi:10.1007/BF00994018

[8] 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

[9] Susan Moskwa. PageRank Distribution Removed From WMT. [October 16, 2009]

[10] Freund, Yoav; Schapire, Robert E. A Decision-Theoretic Generalization of on-Line Learning and an Application to Boosting. 1995. CiteSeerX: 10.1.1.56.9855

⑹ 列哪些算法可以应用于大数据挖掘

数据挖掘算法都是可以用于大数据挖掘,大数据简单来说只是说明数据量很大,一般指TB级别以上的,一台服务器无法处理,需要分布式系统来处理。
其中,数据挖掘经典十大算法为:C4.5,K-Means,SVM,Apriori,EM,PageRank,AdaBoost,KNN,NB和CART。
常见的分布式计算有Hadoop Spark等,如果要实时计算的,一般用Storm什么的。

⑺ 数据挖掘十大经典算法之EM

EM(Expectation-Maximum)算法也称期望最大化算法,它是最常见的隐变量估计方法,在机器学习中有极为广泛的用途,例如常被用来学习高斯混合模型(Gaussian mixture model,简称GMM)的参数;隐式马尔科夫算法(HMM)、LDA主题模型的变分推断等等。

EM算法是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,其中一个为期望步(E步),另一个为极大步(M步),一轮轮迭代更新隐含数据和模型分布参数,直到收敛,即得到我们需要的模型参数。

1. EM算法推导过程

补充知识:Jensen不等式:

如果f是凸函数,函数的期望 大于等于 期望的函数。当且仅当下式中X是常量时,该式取等号。(应用于凹函数时,不等号方向相反)

2. EM算法流程

3. EM算法的其他问题

上面介绍的传统EM算法对初始值敏感,聚类结果随不同的初始值而波动较大。总的来说,EM算法收敛的优劣很大程度上取决于其初始参数。

EM算法可以保证收敛到一个稳定点,即EM算法是一定收敛的。

EM算法可以保证收敛到一个稳定点,但是却不能保证收敛到全局的极大值点,因此它是局部最优的算法,当然,如果我们的优化目标是凸的,则EM算法可以保证收敛到全局最大值,这点和梯度下降法这样的迭代算法相同。

EM算法的简单实例: https://zhuanlan.hu.com/p/40991784

参考:

https://zhuanlan.hu.com/p/40991784

https://blog.csdn.net/u011067360/article/details/24368085

⑻ 大数据挖掘的算法有哪些

数据挖掘本质还是机器学习算法
具体可以参见《数据挖掘十大常见算法》
常用的就是:SVM,决策树,朴素贝叶斯,逻辑斯蒂回归等
主要解决分类和回归问题

⑼ 数据挖掘十大经典算法(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) ,可以单独指定特征值之间的是否独立。这里就不展开了,有兴趣的同学们可以做进一步了解。

最后我们来对这个经典算法做个点评:

优点:

缺点:

好了,对于 朴素贝叶斯 的介绍就到这里,不知道各位看完之后是否会对数据挖掘这个领域产生了一点兴趣了呢?

⑽ 数据挖掘十大经典算法之朴素贝叶斯

朴素贝叶斯,它是一种简单但极为强大的预测建模算法。之所以称为朴素贝叶斯,**是因为它假设每个输入变量是独立的。**这个假设很硬,现实生活中根本不满足,但是这项技术对于绝大部分的复杂问题仍然非常有效。

贝叶斯原理、贝叶斯分类和朴素贝叶斯这三者之间是有区别的。

贝叶斯原理是最大的概念,它解决了概率论中“逆向概率”的问题,在这个理论基础上,人们设计出了贝叶斯分类器,朴素贝叶斯分类是贝叶斯分类器中的一种,也是最简单,最常用的分类器。朴素贝叶斯之所以朴素是因为它假设属性是相互独立的,因此对实际情况有所约束,**如果属性之间存在关联,分类准确率会降低。**不过好在对于大部分情况下,朴素贝叶斯的分类效果都不错。

朴素贝叶斯分类器依靠精确的自然概率模型,在有监督学习的样本集中能获取得非常好的分类效果。在许多实际应用中,朴素贝叶斯模型参数估计使用最大似然估计方法,换而言之朴素贝叶斯模型能工作并没有用到贝叶斯概率或者任何贝叶斯模型。

朴素贝叶斯分类 常用于文本分类 ,尤其是对于英文等语言来说,分类效果很好。它常用于垃圾文本过滤、情感预测、推荐系统等。

1、 需要知道先验概率 

先验概率是计算后验概率的基础。在传统的概率理论中,先验概率可以由大量的重复实验所获得的各类样本出现的频率来近似获得,其基础是“大数定律”,这一思想称为“频率主义”。而在称为“贝叶斯主义”的数理统计学派中,他们认为时间是单向的,许多事件的发生不具有可重复性,因此先验概率只能根据对置信度的主观判定来给出,也可以说由“信仰”来确定。 

2、按照获得的信息对先验概率进行修正 

在没有获得任何信息的时候,如果要进行分类判别,只能依据各类存在的先验概率,将样本划分到先验概率大的一类中。而在获得了更多关于样本特征的信息后,可以依照贝叶斯公式对先验概率进行修正,得到后验概率,提高分类决策的准确性和置信度。 

3、分类决策存在错误率 

由于贝叶斯分类是在样本取得某特征值时对它属于各类的概率进行推测,并无法获得样本真实的类别归属情况,所以分类决策一定存在错误率,即使错误率很低,分类错误的情况也可能发生。 

第一阶段:准备阶段

在这个阶段我们需要确定特征属性,同时明确预测值是什么。并对每个特征属性进行适当划分,然后由人工对一部分数据进行分类,形成训练样本。

第二阶段:训练阶段

这个阶段就是生成分类器,主要工作是 计算每个类别在训练样本中的出现频率 及 每个特征属性划分对每个类别的条件概率。

第三阶段:应用阶段

这个阶段是使用分类器对新数据进行分类。

优点:

(1)朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。

(2)对小规模的数据表现很好,能个处理多分类任务,适合增量式训练,尤其是数据量超出内存时,我们可以一批批的去增量训练。

(3)对缺失数据不太敏感,算法也比较简单,常用于文本分类。

缺点:

(1)理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型给定输出类别的情况下,假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。

(2)需要知道先验概率,且先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。

(3)由于我们是通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率。

(4)对输入数据的表达形式很敏感。

参考:

https://blog.csdn.net/qiu__liao/article/details/90671932

https://blog.csdn.net/u011067360/article/details/24368085

阅读全文

与十大数据挖掘算法相关的资料

热点内容
怎样连接移动数据库 浏览:716
走字屏为什么插上u盘找不到文件 浏览:399
如何定义根文件系统 浏览:258
手游数据统计哪里看 浏览:658
酷狗网络无法访问 浏览:501
电脑接受无线网络 浏览:418
uclinuxpdf 浏览:264
文件U盘文件找不到 浏览:63
vue数据接口怎么得到 浏览:995
sql程序设计题 浏览:103
c向文件中追加数据库 浏览:327
reactjs推荐书籍 浏览:157
京东自定义轮播代码 浏览:428
pr的钢笔工具怎么用 浏览:539
重置win10所有原生应用 浏览:626
微信漂流瓶怎么发照片 浏览:908
如皋如何学数控编程培训 浏览:205
extjs如何截取字符串 浏览:545
delphitreeview数据库 浏览:148
百度云Mac版共享文件 浏览:623

友情链接