常用数据挖掘算法简介

1.朴素贝叶斯
 

朴素贝叶斯分类法是统计学分类方法,在特征条件独立的前提下,基于贝叶斯定理计算的隶属关系概率进行分类。

朴素贝叶斯分类有着坚实的数学基础和稳定的分类效率,同时,分类模型需要估计的参数很少,对缺失数据不太敏感,算法也比较简单。

从理论上讲,朴素贝叶斯分类模型与其他分类方法相比的误差率最小,但是实际上并非总是如此,这是因为朴素贝叶斯分类模型假设各属性之间相互独立,然而这个假设在实际应用中往往是不成立的,因此,这在一定程度上影响了模型的正确分类。

 
2.决策树
 

决策树是一种类似于流程图的树结构。其中,每个内部节点代表在一个属性上的测试,每个分支代表该测试的一个输出,每个叶节点代表存放一个类标号,顶层节点是根节点。

在构造决策树时,使用属性选择度量来选择将元组划分成不同的类的属性。决策树中的许多分枝可能反映训练数据中的噪声或离群点,使用剪枝识别来减去是这种分枝,以提高泛化性。

常用的决策树模型包括ID3、C4.5和CART。它们都采用自上到下递归的分枝方式构造决策树,各算法之间的差别在于创建决策树时如何选择属性和剪枝机制。

 

3.K最近邻分类
 

K最近邻分类算法(KNN)的核心思想是,如果一个样本在特征空间中的K歌最相邻的样本中大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。

该方法在确定分类决策上只依据最近邻的一个或者几个样本的类别来决定待分样本所属的类别。KNN算法在类别决策时只与极少量的相邻样本有关。

由于KNN方法主要靠周围有限的邻近样本,而不是靠判别类域的方法来确定所属类别,因此对于类域的交叉或重叠较多的待分样本集来说,KNN算法较其他方法更为合适。

KNN算法不仅可以用于分类,还可以用于回归。通过找到一个样本的K个最近邻居,将这些邻居的属性的平均值赋予该样本,就可以得到该样本的属性。更有用的方法是将不同距离的邻居对该样本产生的影响设定不同的权重,权重与距离成反比。

 
4.神经网络
 

4.1人工神经网络

人工神经网络是模仿生理神经网络的结构和功能设计的一种信息处理系统。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。

大量的人工神经元以一定的规则连接成神经网络,神经元之间的连接以及各连接的权重表示特定的信息。

神经网络分布式存储信息,具有很高的容错性。每个神经元都可以进行独立运算、处理接收信息并输出结果,同时,神经网络具有并行运算能力,实时性很强。

神经网络对信息处理具有自组织、自学习的特点,便于联想、综合和推广。

 

4.2深度学习

深度学习源于人工神经网络的研究,其目的在于建立能够模人脑进行分析学习的神经网络,并模仿人脑的工作机制来解释数据。

深度学习模型结构是含有多个隐层的多层感知器,它通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

深度学习的概念由Hinton等人于2006年提出,是基于深度置信网络(DBN)提出的非监督贪心逐层训练算法,目的是解决深层结构相关的优化问题。随后,他们又提出了多层自动编码器深层结构。

此外,Lecun等人提出的卷积神经网络(CNN)是第一个真正多层结构的学习算法,它利用空间相对关系来减少参数的数量,从而提高训练性能。

深度学习涉及相当广泛的机器学习技术和结构,根据这些结构和技术应用的方式,可以将其分成如下三类:

生成型深度结构。该结构描述数据的高阶相关特性或观测数据和相应类别的联合概率分布;
区分型深度结构。目的是提供对模式分类的区分性能力,通常描述数据的后验分布;
混合型结构。它的目标是区分性的,但通常利用生成型结构的输出更易优化。

5.支持向量机


支持向量机(Support Vector Machine,SVM)算法是经典的机器学习算法之一,无论在理论分析还是实际应用中都已取得了很好的成果。

SVM算法由Vapnik和Chervonenkis共同提出,其理论基础是Vapnik提出的“结构风险最小化”原理。

SVM算法泛化能力很强,在解决很多复杂问题时有很好的表现。例如,为满足美国邮政服务局利用手写邮政编码进行邮件自动分类的需要,Boser和Guyon等人利用SVM算法对手写阿拉伯数字进行了识别。

后来,Osuna E和Freund R提出了基于SVM的面部识别方法。Joachims等利用SVM算法实现了对路透社新闻故事数据集的文本分类。

除了数据分类,SVM逐渐被应用于回归分析、多种背景的模式识别、数据挖掘、函数逼近拟合、医学诊断等多个领域。

如今,SVM已成为机器学习领域的主要研究方向之一,它所代表的统计学理论也必将带来机器学习领域的一场深刻变革。

SVM算法的思想源于线性学习器,即Rosenblatt感知机。感知机可以将线性可分的两种不同类型的样例自动划分为两类。

如果这两类样例不是线性可分的,就可以用核函数方法将实验对象的属性表达于高维特征向量中并由最优化理论的学习算法进行训练,实现由统计学理论推导得出的学习偏置,从而达到分类的效果。

6.集成学习

6.1随机森林

随机森林(Random Forest)是利用多棵树对样本进行训练并预测的一种分类器。简单地说,随机森林就是由多棵CART(Classification and Regression Tree)构成的。

对于每棵树而言,它们使用的训练集是从总的训练集中通过有放回采样得到的,这意味着总的训练集中的有些样本可能会多次出现于一棵树的训练集中,也可能从未出现于一棵树的训练集中。

在训练每棵树的节点时,使用的特征是从所有特征中按照一定比例通过无放回随机抽样方法获得的。

 

6.2GBDT

梯度提升决策树(Gradient Boost Decision Tree,GBDT)的应用很广泛,可用来进行分类和回归,并表现出了很好的效果。

梯度提升(Gradient Boost)是一个框架,里面可以嵌入很多不同的算法,Boost指的是提升,Boosting算法一般都包括迭代过程,每一次新的训练都是为了改进上一次的结果。

原始的Boost算法是在算法开始的时候,为每一个样本赋予一个相同的权重。也就是说,开始的时候,每个样本同样重要。

在每一步模型训练时,通过结果发现数据点的估计有对有错,那么,就在训练结束时,增加分错的点的权重,减少分对的点的权重。如果某些点老是被分错,那么就会被赋予一个很高的权重。

在N次迭代之后,就得到了N个简单的基础分类器,将它们组合起来就得到了一个最终分类模型,比如通过加权方法。

Gradient Boost与传统Boost的区别是,每一次训练是为了减少上一次的残差(residual)。为了消除残差,可以在残差减少的梯度方向上建立一个新的模型。

因此,在Gradient Boost中,建立新的模型是为了使之前模型的残差朝着梯度方向减少,这与传统Boost单纯增加错误权重、减少正确权重有很大的区别。

 

6.3AdaBoost

AdaBoost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。

AdaBoost算法是通过改变数据分布来实现的,根据每次训练集中每个样本的分类是否正确,以及前次总体分类准确率,来确定每个样本的权重。

接着,将修改过权重的新数据集送入下层分类器进行训练,最后,将每次训练得到的分类器融合起来,得到最终的决策分类器。

使用AdaBoost分类器可以排除一些不惜要的训练数据特征,并将关注点放在关键的训练数据上。

目前,AdaBoost的研究和应用集中于分类问题上,近年来也出现了一些在回归问题上的应用。AdaBoost算法主要解决了两类问题、多类单标签问题、多类多标签问题、单类单标签问题、回归问题,等等。

 

7.聚类


聚类分析又叫“数值分类”,指的是将个体或对象分类,使得同一类中对象之间的相似性最大,类间对象的差异性最大。

设已知N个观测值X1,X2,…Xn,每个观测值是一个p维向量。聚类分析的思想是将每个观测值Xi看成p维空间的一个点,在p维空间中引入“距离”的概念,则可按照各点间距离的远近将各点归类。

如果对p个变量进行分类,常常定义一种“相似系数”来衡量变量之间的联系紧密程度,按各变量之间的相似系数大小将变量进行分类。

根据实际问题需求和变量类型,对距离和相似系数有不同的定义方法。

 

8.频繁模式、关联和相关性挖掘


Apriori

Apriori算法是一种最有影响力的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。

关联规则在分类树行属于单维、单层、布尔关联规则。所有支持度大鱼最小支持度的项集称为“频繁项集”,简称“频集”。

Apriori演算法所使用的前置统计量包括了:

最大规则物件数:规则中物件所包含的最大物件数量

最小支援:规则中物件或是物件组必须符合的最低案例数

最小置信水准:计算规则所必须符合的最低置信水准门槛

该算法的基本思想是首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一致,然后由频集产生强关联规则。这些规则必须满足最小支持度和最小可信度。

接着,使用第一步找到的频集所产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。

一旦这些规则生成,那么只有那些大于用户给定最小可信度的规则才能留下来。为了生成所有频集,使用了递推的方法。

 

9.最大期望(EM)算法


在统计计算中,最大期望(Expectation-Maximization)算法是在概率(probalilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)。

最大期望经常用在机器学习和计算机视觉的数据集聚(Data Clustering)领域。最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),也就是将隐藏变量项能够观测到的一样包含在内,从而计算最大似然的期望值;另一步是最大化(M),也就是最大化在计算E时找到的最大似然的期望值,从而计算参数的最大似然估计。接着,将计算出的参数应用于另一个E的计算,不断交替进行。

 

10.PageRank


在提出PageRank之前,已经有研究者提出利用网页入链数量进行链接分析计算,这种入链方法假设一个网页的入链越多,网页越重要。

早期的很多搜索引擎也采纳了入链数量作为链接分析方法,对于搜索引擎效果提升也有较明显的效果。

PageRank除了考虑入链数量的影响,还参考了网页质量因素,两者结合获得了更好地网页重要性评价标准。

对于某个互联网网页来说,该网页的PageRank计算基于以下两个基本假设:

数量假设:在Web图模型中,如果一个页面节点接收到的其他网页指向的入链数量越多,那么这个页面越重要。

质量假设:指向该页面的入链质量不同,质量高的页面会通过链接向其他页面传递更多权重。所以越是质量高的页面指向页面A,页面A就越重要。

基于以上两个假设,PageRank算法刚开始赋予每个页面相同的重要性得分,通过迭代递归计算来更新每个页面节点的PageRank得分,直到得分稳定为止。

PageRank计算得出的结果是网页的重要性评价,这与用户输入的查询是没有任何关系的,即算法是与主题无关的。

假设有一个搜索引擎,其相似度计算函数不考虑内容相似因素,完全采用PageRank进行排序,那么这个搜索引擎的表现会是什么样子呢?

这个搜索引擎对于任意不同的查询请求,返回的结果都是相同的,即返回PageRank值最高的页面。

 

11.其他常用算法


11.1推荐算法

推荐算法大致可以分为三类:基于内容的推荐算法、协同过滤推荐算法和基于知识的推荐算法。

基于内容的推荐算法,原始是根据用户喜欢或关注过的item寻找内容类似的item,如果这些item在内容上与以前观看的页面有很大关联,比如有相同的关键词,就把这些item推荐给用户。

这种方法可以避免item的冷启动(如果一个item从未被关注过,其他算法则很少推荐这个item,但是基于内容的推荐算法分析item之间的关联,可以实现对这类item的推荐)问题。

不过,这种方法也会有很多弊端,比如推荐的item可能会重复,另外,由于一些多媒体内容(比如音乐、电影、图片等)很难从中提取特征,因此很难推荐。对于这类内容,其中一种解决方式就是人工给这些item打上标签。

协同过滤算法(Collaborative Filtering),一种是将用户所有数据读入内容中进行运算,称为基于记忆的协同过滤算法(Memory-based Collaborative Filtering),一种是基于模型的协同过滤算法(Model-based Collaborative Filtering),包括Aspect Model、pLSA、LDA、聚类、SVD、Matrix Factorization等。这种方法的训练过程比较长,但是完成训练后,推荐过程比较快。

基于知识的推荐方法,也可以归为基于内容的推荐。这种方法比较典型的操作是构建领域本体,或者建立一定的规则进行推荐。

11.2社区发现

社区现象是复杂网络中的一种普遍现象,表达了多个个体具有的共同体特性。社区的发现技术,从最初的图分割方法、W-H算法、层次聚类法、GN算法等基本算法,逐渐发展和改进,形成了包括改进GN算法、派系过滤算法、局部社区算法和web社区发现方法在内的根据可操作性的方法。网络的社区发现可分为个性化服务、信息推送等提供基本数据的服务,在信息时代,社区的存在更加普遍,发现技术应用也更加方便,商业价值和服务价值也更大。

社区发现问题并没有一个明确地定义,根据一般算法流程,大致可以描述为这样一个问题:讲一个网络分割成若干个由紧密相连节点构成的社区,而分属不同社区的节点间的联系相对松散。

社区发现算法往往面临两大难点,一个是网络中社区的个数、大小都是不确定的,社区发现往往是一种无监督的聚类算法,算法的终止依赖于数学上的收敛;一个是社交网络和电信网络的规模和复杂度都较高,一个用户又往往分属多个社区,构成重叠型社区(Overlapping Community),更增添了社区发现的难度。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【为什么学习数据挖掘】       人工智能、大数据时代有什么技能是可以运用在各种行业的?数据分析就是。      从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。【超实用的课程内容】      本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。本课程分为三大部分:基础知识篇:主要讲解数据挖掘这项技能的基本工作流程和介绍和入门必须的基本技能Python语言的入门,带领大家了解数据挖掘的常见操作和基础知识。数据采集篇:学习如何解决数据挖掘的数据来源问题,读取各类型不同的数据包括CSV,excel,MySQL进行数据采集的交互。数据探索篇:本篇主要解决数据的预处理保证数据的质量并用常见数据挖掘算法进行特征提取,分析数据背后隐含的信息。【报名须知】课程采取录播模式,课程永久有效,可无限次观看课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化【如何开始学习?】PC端:报名成功后可以直接进入课程学习移动端:下载CSDN学院或CSDN

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值