❶ 数据挖掘核心算法之一--回归
数据挖掘核心算法之一--回归
回归,是一个广义的概念,包含的基本概念是用一群变量预测另一个变量的方法,白话就是根据几件事情的相关程度,用其中几件来预测另一件事情发生的概率,最简单的即线性二变量问题(即简单线性),例如下午我老婆要买个包,我没买,那结果就是我肯定没有晚饭吃;复杂一点就是多变量(即多元线性,这里有一点要注意的,因为我最早以前犯过这个错误,就是认为预测变量越多越好,做模型的时候总希望选取几十个指标来预测,但是要知道,一方面,每增加一个变量,就相当于在这个变量上增加了误差,变相的扩大了整体误差,尤其当自变量选择不当的时候,影响更大,另一个方面,当选择的俩个自变量本身就是高度相关而不独立的时候,俩个指标相当于对结果造成了双倍的影响),还是上面那个例子,如果我丈母娘来了,那我老婆就有很大概率做饭;如果在加一个事件,如果我老丈人也来了,那我老婆肯定会做饭;为什么会有这些判断,因为这些都是以前多次发生的,所以我可以根据这几件事情来预测我老婆会不会做晚饭。
大数据时代的问题当然不能让你用肉眼看出来,不然要海量计算有啥用,所以除了上面那俩种回归,我们经常用的还有多项式回归,即模型的关系是n阶多项式;逻辑回归(类似方法包括决策树),即结果是分类变量的预测;泊松回归,即结果变量代表了频数;非线性回归、时间序列回归、自回归等等,太多了,这里主要讲几种常用的,好解释的(所有的模型我们都要注意一个问题,就是要好解释,不管是参数选择还是变量选择还是结果,因为模型建好了最终用的是业务人员,看结果的是老板,你要给他们解释,如果你说结果就是这样,我也不知道问什么,那升职加薪基本无望了),例如你发现日照时间和某地葡萄销量有正比关系,那你可能还要解释为什么有正比关系,进一步统计发现日照时间和葡萄的含糖量是相关的,即日照时间长葡萄好吃,另外日照时间和产量有关,日照时间长,产量大,价格自然低,结果是又便宜又好吃的葡萄销量肯定大。再举一个例子,某石油产地的咖啡销量增大,国际油价的就会下跌,这俩者有关系,你除了要告诉领导这俩者有关系,你还要去寻找为什么有关系,咖啡是提升工人精力的主要饮料,咖啡销量变大,跟踪发现工人的工作强度变大,石油运输出口增多,油价下跌和咖啡销量的关系就出来了(单纯的例子,不要多想,参考了一个根据遥感信息获取船舶信息来预测粮食价格的真实案例,感觉不够典型,就换一个,实际油价是人为操控地)。
回归利器--最小二乘法,牛逼数学家高斯用的(另一个法国数学家说自己先创立的,不过没办法,谁让高斯出名呢),这个方法主要就是根据样本数据,找到样本和预测的关系,使得预测和真实值之间的误差和最小;和我上面举的老婆做晚饭的例子类似,不过我那个例子在不确定的方面只说了大概率,但是到底多大概率,就是用最小二乘法把这个关系式写出来的,这里不讲最小二乘法和公式了,使用工具就可以了,基本所有的数据分析工具都提供了这个方法的函数,主要给大家讲一下之前的一个误区,最小二乘法在任何情况下都可以算出来一个等式,因为这个方法只是使误差和最小,所以哪怕是天大的误差,他只要是误差和里面最小的,就是该方法的结果,写到这里大家应该知道我要说什么了,就算自变量和因变量完全没有关系,该方法都会算出来一个结果,所以主要给大家讲一下最小二乘法对数据集的要求:
1、正态性:对于固定的自变量,因变量呈正态性,意思是对于同一个答案,大部分原因是集中的;做回归模型,用的就是大量的Y~X映射样本来回归,如果引起Y的样本很凌乱,那就无法回归
2、独立性:每个样本的Y都是相互独立的,这个很好理解,答案和答案之间不能有联系,就像掷硬币一样,如果第一次是反面,让你预测抛两次有反面的概率,那结果就没必要预测了
3、线性:就是X和Y是相关的,其实世间万物都是相关的,蝴蝶和龙卷风(还是海啸来着)都是有关的嘛,只是直接相关还是间接相关的关系,这里的相关是指自变量和因变量直接相关
4、同方差性:因变量的方差不随自变量的水平不同而变化。方差我在描述性统计量分析里面写过,表示的数据集的变异性,所以这里的要求就是结果的变异性是不变的,举例,脑袋轴了,想不出例子,画个图来说明。(我们希望每一个自变量对应的结果都是在一个尽量小的范围)
我们用回归方法建模,要尽量消除上述几点的影响,下面具体讲一下简单回归的流程(其他的其实都类似,能把这个讲清楚了,其他的也差不多):
first,找指标,找你要预测变量的相关指标(第一步应该是找你要预测什么变量,这个话题有点大,涉及你的业务目标,老板的目的,达到该目的最关键的业务指标等等,我们后续的话题在聊,这里先把方法讲清楚),找相关指标,标准做法是业务专家出一些指标,我们在测试这些指标哪些相关性高,但是我经历的大部分公司业务人员在建模初期是不靠谱的(真的不靠谱,没思路,没想法,没意见),所以我的做法是将该业务目的所有相关的指标都拿到(有时候上百个),然后跑一个相关性分析,在来个主成分分析,就过滤的差不多了,然后给业务专家看,这时候他们就有思路了(先要有东西激活他们),会给一些你想不到的指标。预测变量是最重要的,直接关系到你的结果和产出,所以这是一个多轮优化的过程。
第二,找数据,这个就不多说了,要么按照时间轴找(我认为比较好的方式,大部分是有规律的),要么按照横切面的方式,这个就意味横切面的不同点可能波动较大,要小心一点;同时对数据的基本处理要有,包括对极值的处理以及空值的处理。
第三, 建立回归模型,这步是最简单的,所有的挖掘工具都提供了各种回归方法,你的任务就是把前面准备的东西告诉计算机就可以了。
第四,检验和修改,我们用工具计算好的模型,都有各种假设检验的系数,你可以马上看到你这个模型的好坏,同时去修改和优化,这里主要就是涉及到一个查准率,表示预测的部分里面,真正正确的所占比例;另一个是查全率,表示了全部真正正确的例子,被预测到的概率;查准率和查全率一般情况下成反比,所以我们要找一个平衡点。
第五,解释,使用,这个就是见证奇迹的时刻了,见证前一般有很久时间,这个时间就是你给老板或者客户解释的时间了,解释为啥有这些变量,解释为啥我们选择这个平衡点(是因为业务力量不足还是其他的),为啥做了这么久出的东西这么差(这个就尴尬了)等等。
回归就先和大家聊这么多,下一轮给大家聊聊主成分分析和相关性分析的研究,然后在聊聊数据挖掘另一个利器--聚类。
❷ 数据挖掘算法 PageRank
数据挖掘算法:PageRank
1. 引言
PageRank是Sergey Brin与Larry Page于1998年在WWW7会议上提出来的,用来解决链接分析中网页排名的问题。在衡量一个网页的排名,直觉告诉我们:
1、当一个网页被更多网页所链接时,其排名会越靠前;
2、排名高的网页应具有更大的表决权,即当一个网页被排名高的网页所链接时,其重要性也应对应提高。
对于这两个直觉,PageRank算法所建立的模型非常简单:一个网页的排名等于所有链接到该网页的网页的加权排名之和:
PRi表示第i个网页的PageRank值,用以衡量每一个网页的排名;若排名越高,则其PageRank值越大。
网页之间的链接关系可以表示成一个有向图代表了网页j链接到了网页i;Oj为网页j的出度,也可看作网页j的外链数( the number of out-links)。
假定P=(PR1,PR2,?,PRn)T为n维PageRank值向量,A为有向图G所对应的转移矩阵,
n个等式(1)可改写为矩阵相乘:
但是,为了获得某个网页的排名,而需要知道其他网页的排名,这不就等同于“是先有鸡还是先有蛋”的问题了么?幸运的是,PageRank采用power iteration方法破解了这个问题怪圈。欲知详情,请看下节分解。
2. 求解
为了对上述及以下求解过程有个直观的了解,我们先来看一个例子,网页链接关系图如下图所示:
那么,矩阵A即为
所谓power iteration,是指先给定一个P的初始值P0,然后通过多轮迭代求解:
最后收敛于||Pk?Pk?1||<ξ,即差别小于某个阈值。
我们发现式子(2)为一个特征方程(characteristic equation),并且解P是当特征值(eigenvalue)为1时的特征向量(eigenvector)。为了满足(2)是有解的,则矩阵A应满足如下三个性质:
1、stochastic matrix,则行至少存在一个非零值,即必须存在一个外链接(没有外链接的网页被称为dangling pages);
2、不可约(irrecible),即矩阵A所对应的有向图G必须是强连通的,对于任意两个节点u,v∈V,存在一个从u到v的路径;
3、非周期性(aperiodic),即每个节点存在自回路。
显然,一般情况下矩阵A这三个性质均不满足。为了满足性质stochastic matrix,可以把全为0的行替换为e/n,其中e为单位向量;同时为了满足性质不可约、非周期,需要做平滑处理:
其中,d为 damping factor,常置为0与1之间的一个常数;E为单位阵。那么,式子(1)被改写为
❸ 数据挖掘的十大经典算法,总算是讲清楚了,想提升自己的赶快收藏
一个优秀的数据分析师,除了要掌握基本的统计学、数据分析思维、数据分析工具之外,还需要掌握基本的数据挖掘思想,帮助我们挖掘出有价值的数据,这也是数据分析专家和一般数据分析师的差距所在。
国际权威的学术组织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。 在分类树下面有两个关键的思想。第一个是关于递归地划分自变量空间的想法(二元切分法);第二个想法是用验证数据进行剪枝(预剪枝、后剪枝)。在回归树的基础上的模型树构建难度可能增加了,但同时其分类效果也有提升。
参考书籍:《机器学习实战》
❹ 有哪些主要的数据挖掘算法
大数据算法有多种,以下是一些主要的算法:
一、聚类算法
聚类算法是一种无监督学习的算法,它将相似的数据点划分到同一个集群中。常见的聚类算法包括K均值聚类、层次聚类等。这些算法在处理大数据时能够有效地进行数据分组,帮助发现数据中的模式和结构。
二、分类算法
分类算法是一种监督学习的算法,它通过对已知类别的数据进行学习,然后预测新数据的类别。常见的分类算法包括决策树分类、支持向量机分类等。这些算法在处理大数据时能够快速进行预测和分类,广泛应用于数据挖掘、机器推荐等领域。
三、关联规则挖掘算法
关联规则挖掘算法主要用于发现数据中的关联关系。典型的关联规则挖掘算法有Apriori算法等。这些算法在处理大数据时能够发现不同数据项之间的关联关系,对于购物篮分析、用户行为分析等场景非常有用。
四、回归分析算法
回归分析算法是一种预测性的建模技术,用于根据已知的数据预测未来的结果。常见的回归分析算法包括线性回归、逻辑回归等。这些算法在处理大数据时能够建立变量之间的关系模型,用于预测和决策支持。
五、深度学习算法
深度学习算法是一种基于神经网络的机器学习算法,能够处理大规模的数据集并自动提取数据的特征。常见的深度学习算法包括卷积神经网络(CNN)、循环神经网络(RNN)等。这些算法在处理图像、视频、文本等大数据时表现出良好的性能。
以上是主要的几种大数据算法的简要介绍。它们各自有着不同的特点和应用场景,可根据具体的需求选择合适的大数据算法进行数据处理和分析。
❺ 数据挖掘的方法及实施
数据挖掘的方法及实施
作为一门处理数据的新兴技术,数据挖掘有许多的新特征。首先,数据挖掘面对的是海量的数据,这也是数据挖掘产生的原因。其次,数据可能是不完全的、有噪声的、随机的,有复杂的数据结构,维数大。最后,数据挖掘是许多学科的交叉,运用了统计学,计算机,数学等学科的技术。以下是常见和应用最广泛的算法和模型:
传统统计方法:①抽样技术:我们面对的是大量的数据,对所有的数据进行分析是不可能的也是没有必要的,就要在理论的指导下进行合理的抽样。②多元统计分析:因子分析,聚类分析等。③统计预测方法,如回归分析,时间序列分析等。
可视化技术:用图表等方式把数据特征用直观地表述出来,如直方图等,这其中运用的许多描述统计的方法。可视化技术面对的一个难题是高维数据的可视化。
决策树:利用一系列规则划分,建立树状图,可用于分类和预测。常用的算法有CART、CHAID、ID3、C4.5、C5.0等。
神经网络:模拟人的神经元功能,经过输入层,隐藏层,输出层等,对数据进行调整,计算,最后得到结果,用于分类和回归。
遗传算法:基于自然进化理论,模拟基因联合、突变、选择等过程的一种优化技术。
关联规则挖掘算法:关联规则是描述数据之间存在关系的规则,形式为“A1∧A2∧…An→B1∧B2∧…Bn”。一般分为两个步骤:①求出大数据项集。②用大数据项集产生关联规则。
除了上述的常用方法外,还有粗集方法,模糊集合方法,Bayesian Belief Netords,最邻近算法(k-nearest neighbors method(KNN))等。
数据挖掘的实施流程
前面我们讨论了数据挖掘的定义,功能和方法,现在关键的问题是如何实施,其一般的数据挖掘流程如下:
问题理解和提出→数据准备→数据整理→建立模型→评价和解释
问题理解和提出:在开始数据挖掘之前最基础的就是理解数据和实际的业务问题,在这个基础之上提出问题,对目标有明确的定义。
数据准备:获取原始的数据,并从中抽取一定数量的子集,建立数据挖掘库,其中一个问题是如果企业原来的数据仓库满足数据挖掘的要求,就可以将数据仓库作为数据挖掘库。
数据整理:由于数据可能是不完全的、有噪声的、随机的,有复杂的数掘结构,就要对数据进行初步的整理,清洗不完全的数据,做初步的描述分析,选择与数据挖掘有关的变量,或者转变变量。
建立模型:根据数据挖掘的目标和数据的特征,选择合适的模型。
评价和解释:对数据挖掘的结果进行评价,选择最优的模型,作出评价,运用于实际问题,并且要和专业知识结合对结果进行解释。
以上的流程不是一次完成的,可能其中某些步骤或者全部要反复进行。