资源描述
-大数据挖掘平台算法设计目录一根本统计方法2二降维算法PCA/SVD22.1主成分分析PCA22.2奇异值分解SVD3三分类算法33.1分类算法根本介绍33.2分类算法输入与输出3四聚类算法34.1 聚类算法介绍34.2 聚类算法的输入34.3 聚类算法的输出3五关联分析算法35.1 关联分析算法介绍35.2 关联分析算法的输入35.3 关联分析算法的输出3六.数值预测算法36.1 数值预测算法介绍36.2 数值预测算法的输入36.3 数值预测算法的输出36.4 数值预测算法的效果评估3一根本统计方法根本统计方法包括相关分析和假设检验,建模所需数据比拟简单,具体如表1所示。表1-1 根本统计方法输入输出整理算法类型算法名称输入输出输出形式根本统计方法相关分析Pearson、Spearman各变量的值数值型变量的相关系数表或图假设检验卡方检验、KS检验各变量的值数值型检验统计量及p值表或图二降维算法PCA/SVD2.1主成分分析PCA主成分分析(PCA)是最常用的线性降维方法,它的目标是通过*种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保存住较多的原数据点的特性。2.1.1 PCA输入变量类型:主成分分析的变量类型都是数值型变量目标变量定义:主成分分析无目标变量无因变量2.1.2 PCA输出主成分分析分析输出包括各主成分得分表,如表1-8所示,第一列为标签变量,*1、*2、*3、*4、*5为建模输入的变量,第一主成分得分、第二主成分得分、第三主成分得分以及主成分综合得分为各主成分的得分。表 1-2 主成分分析输出结果例如样本*1*2*3*5第一主成分得分第二主成分得分主成分综合得分0011670.01848.93821.20.73.171.332.5260021140.25562.12578.240.471.550.341.12650037100.453619.283481.290.3-0.840.78-0.2730043470.011759.981709.920.370.34-0.210.1475主成分分析分析输出还包括各主成分特征值及方差奉献率,如表1-3所示。表1-3 特征值与方差奉献率ponentInitial EigenvaluesE*traction Sums of Squared LoadingsRotation Sums of Squared LoadingsTotal% of VarianceCumulative %Total% of VarianceCumulative %Total% of VarianceCumulative %14.81537.03837.0384.81537.03837.0383.31525.50225.50222.41218.55155.5892.41218.55155.5892.38518.34243.84431.60512.34567.9351.60512.34567.9352.28717.59561.439主成分分析还包括KMO检验表,判断是否适合做主成分分析,如表1-4所示。表1-4 KMO and Bartletts TestKaiser-Meyer-Olkin Measure of Sampling Adequacy.0.693Bartletts Test of SphericityAppro*. Chi-Square523.978df78Sig.000主成分分析还包括载荷矩阵,如表1-5所示,可以得出各指标在各主成分的载荷系数。表1-5 载荷矩阵例如成长性指标ponent.955.249-.003-.065-.076.950.256-.019-.073-.091.937.280-.042-.080-.104.345.893.055-.032-.0852.2奇异值分解SVD假设C是M * N矩阵,U是M * M矩阵,其中U的列为的正交特征向量,V为N * N矩阵,其中V的列为的正交特征向量,再假设r为C矩阵的秩,则存在奇异值分解:其中和的特征值一样,为为M * N,其中,其余位置数值为0,的值按大小降序排列。以下是的完整数学定义:i称为矩阵C的奇异值。SVD常用于潜在语义分析,作为文本数值转化后的计算模型。2.2.1 SVD分解的输入变量类型:SVD分解的输入变量都是数值型变量目标变量定义:SVD分解无目标变量无因变量2.2.2 SVD分解的输出变量类型:SVD分解的输出包括三局部:U矩阵、奇异值对角阵或奇异值和VV矩阵或V的转置矩阵。SVD的分解如图1所示,图1-1 基于R语言进展SVD分解三分类算法3.1分类算法根本介绍3.1.1 决策树算法决策树(Decision tree)是用于对数据进展分类和预测的主要数据挖掘技术之一,是一种以实例为根底的归纳学习算法。它利用自顶向下的递归方式能够从一组无规则的实例中推理出分类规则,并得到类似一棵树的枝干的构造图。树的最顶端是根节点,在部节点进展属性的比拟即表示对一个属性的测试,并从该节点根据不同属性值判断向下进展分枝,一个分枝即表示一个测试输出,最终的叶节点代表一个类别。算法优势:1模型非常直观,容易让人理解和应用;2决策树搭建和应用的速度比拟快;3决策树对于数据分布没有严格要求;4受缺失值和极端值对模型的影响很小。算法缺乏:1*些自变量类别较多时容易出现过拟合; 2没有像归或者聚类那样丰富多样的检验指标。1C4.5算法。C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法。C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进展了改进:1) 用信息增益率来选择属性,克制了用信息增益选择属性时偏向选择取值多的属性的缺乏;2) 在树构造过程中进展剪枝;3) 能够完成对连续属性的离散化处理;4) 能够对不完整数据进展处理。C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进展屡次的顺序扫描和排序,因而导致算法的低效。2CART算法。分类回归树(CART,Classification And Regression Tree)也属于一种决策树,分类回归树是一棵二叉树,且每个非叶子节点都有两个孩子,所以对于第一棵子树其叶子节点数比非叶子节点数多1。CART与ID3区别:CART中用于选择变量的不纯性度量是Gini指数;如果目标变量是标称的,并且是具有两个以上的类别,则CART可能考虑将目标类别合并成两个超类别双化;如果目标变量是连续的,则CART算法找出一组基于树的回归方程来预测目标变量。3CHAID算法。CHAID是卡方自动交互检测CHi-squared Automatic Interaction Detection的缩写,是一种基于调整后的显着性检验邦费罗尼检验决策树技术。CHAID可用于预测类似回归分析,CHAID最初被称为*AID以及分类,并用于检测变量之间的相互作用。CHAID基于1960和1970年代,一个US AID自动交互效应检测和THAIDTHETA自动交互检测程序的扩展。而后者又是早期1950英国研究的扩展。在实践中,CHAID经常使用在直销的背景下,选择消费者群体,并预测他们的反响,一些变量如何影响其他变量,而其他早期应用是在医学和精神病学的研究领域。和其他决策树一样,CHAID的优势是它的结果是非常直观的易于理解的。由于默认情况下CHAID采用多路分割,需要相当大的样本量,来有效地开展工作,而小样本组受访者可以迅速分为太小了的组,而无法可靠的分析。3.1.2 朴素贝叶斯朴素贝叶斯分类是一种十分简单的分类算法,叫它朴素贝叶斯分类是因为这种方法的思想真的很朴素,朴素贝叶斯的思想根底是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。通俗来说,就好比这么个道理,你在街上看到一个黑人,我问你你猜这哥们哪里来的,你十有八九猜非洲。为什么呢?因为黑人中非洲人的比率最高,当然人家也可能是美洲人或亚洲人,但在没有其它可用信息下,我们会选择条件概率最大的类别,这就是朴素贝叶斯的思想根底。朴素贝叶斯分类的正式定义如下:1、设为一个待分类项,而每个a为*的一个特征属性。2、有类别集合。3、计算。4、如果,则。则现在的关键就是如何计算第3步中的各个条件概率。我们可以这么做:1、找到一个分类的待分类项集合,这个集合叫做训练样本集。2、统计得到在各类别下各个特征属性的条件概率估计。即3、如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:算法优势:1朴素贝叶斯模型发源于古典数学理论,有着坚实的数学根底,以及稳定的分类效率;2NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比拟简单。算法缺乏:1理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的可以考虑用聚类算法先将相关性较大的属性聚类,这给NBC模型的正确分类带来了一定影响。在属性个数比拟多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型。而在属性相关性较小时,NBC模型的性能最为良好。2需要知道先验概率。3.1.3 logistic回归 Logistic回归是在给出方程,输入变量取值的条件下,输出变量取1的概率为多少。通常根据*事物的危险因素预测该事物发生的概率。逻辑回归是当前业界比拟常用的机器学习方法,用于估计*种事物的可能性。Logistic regression可以用来回归,也可以用来分类,主要是二分类。假设我们的样本是*, y,y是0或者1,表示正类或者负类,*是我们的m维的样本特征向量。则这个样本*属于正类,也就是y=1的“概率可以通过下面的逻辑函数来表示:算法主要优势:1是一种应用广泛的成熟的统计方法; 2逻辑回归擅长辨识事物的线性关系;算法缺乏:1变量之间的多重共线性会对模型造成影响;2异常值会给模型带来很大干扰;3逻辑回归模型本身不能处理缺失值3.1.4 随机森林随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进展一下判断,看看这个样本应该属于哪一类对于分类算法,然后看看哪一类被选择最多,就预测这个样本为那一类。算法主要优势:1在数据集上表现良好2在当前的很多数据集上,相对其他算法有着很大的优势3它能够处理很高维度feature很多的数据,并且不用做特征选择4在训练完后,它能够给出哪些feature比拟重要5在创立随机森林的时候,对generlization error使用的是无偏估计6在训练过程中,能够检测到feature间的互相影响算法缺乏:1随机森林已经被证明在*些噪音较大的分类或回归问题上会过拟合2对于有不同级别的属性的数据,级别划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。3.1.5 支持向量机支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。支持向量机方法是建立在统计学习理论的VC 维理论和构造风险最小原理根底上的,根据有限的样本信息在模型的复杂性即对特定训练样本的学习精度,Accuracy和学习能力即无错误地识别任意样本的能力之间寻求最正确折衷,以期获得最好的推广能力或称泛化能力。图1-2 线性可分情况下的最优分类线3.1.6 梯度提升树(GBTs)Gradient Boosting是一种实现Boosting的方法,它主要的思想是,每一次建立模型是在之前建立模型损失函数的梯度下降方向。损失函数(loss function)描述的是模型的不靠谱程度,损失函数越大,则说明模型越容易出错。如果我们的模型能够让损失函数持续的下降,则说明我们的模型在不停的改进,而最好的方式就是让损失函数在其梯度Gradient)的方向上下降。随机森林通过对数据随机采样来单独训练每一棵树。这种随机性也使得模型相对于单决策树更强健,且不易在训练集上产生过拟合。GBTs则一次只训练一棵树,后面每一棵新的决策树逐步矫正前面决策树产生的误差。随着树的添加,模型的表达力也愈强。3.2分类算法输入与输出在建模所需数据处理好以后,分类算法主要需要关注的是变量定义、输出结果及模型评估,详情见表1-6所示。表1-6 分类算法输入输出考前须知算法名称输入变量类型输出变量类型输出结果模型评估逻辑回归标志变量、类型变量定类型、定序型、数值型变量连续性、离散型类型变量二分类、多分类变量重要性、分类结果明细、逻辑回归参数混淆矩阵、综合正确率、查全率、查准率、F1、ROC曲线、AUC值决策树标志变量、类型变量定类型、定序型、数值型变量连续性、离散型类型变量二分类、多分类变量重要性、分类结果明细、树状图、分类规则混淆矩阵、综合正确率、查全率、查准率、F1、ROC曲线、AUC值随机森林标志变量、类型变量定类型、定序型、数值型变量连续性、离散型类型变量二分类、多分类变量重要性、分类结果明细、树状图、分类规则混淆矩阵、综合正确率、查全率、查准率、F1、ROC曲线、AUC值朴素贝叶斯标志变量、类型变量定类型、定序型、数值型变量连续性、离散型类型变量二分类、多分类变量重要性、分类结果明细混淆矩阵、综合正确率、查全率、查准率、F1、ROC曲线、AUC值支持向量机标志变量、类型变量定类型、定序型、数值型变量连续性、离散型类型变量二分类、多分类变量重要性、分类结果明细、SVM分类图混淆矩阵、综合正确率、查全率、查准率、F1、ROC曲线、AUC值GBTs标志变量、类型变量定类型、定序型、数值型变量连续性、离散型类型变量二分类、多分类变量重要性、分类结果明细混淆矩阵、综合正确率、查全率、查准率、F1、ROC曲线、AUC值因算法不同,各分类算法的模型输入参数有所不同,具体见表1-7.表1-7 分类算法建模输入参数基于Spark MLlib算法名称输入参数算法名称输入参数逻辑回归.训练集和测试集比例.目标变量类型数朴素贝叶斯.训练集和测试集比例.指定bernoulli或multinomial.平滑因子决策树.训练集和测试集比例.目标变量类型数.ma*Depth默认为5.ma*Bins默认为32.划分选择gini或熵支持向量机.训练集和测试集比例.迭代次数随机森林.训练集和测试集比例.目标变量类型数.ma*Depth默认为5.ma*Bins默认为32.划分选择gini或熵.决策树棵数.分割策略GBTs.训练集和测试集比例.目标变量类型数.ma*Depth默认为5.boostingStrategy.numIterations3.2.1 变量类型输入变量通常分为以下几种:变量类型通常包括:标志变量,仅作为标记,不进展计算。数值型变量,包括连续性和离散型变量。取值是连续可无限细分的变量,如温度为连续型变量;取值是有限个离散值的变量如家庭人口数为离散变量。类型变量,包括定类变量和定序变量。定类变量是指变量为类型但没顺序等级之分的变量如红色、黄色、蓝色,定序变量为有次序的分类变量如第一名、第二名、第三名。输入和输出变量。所谓输入变量就是自变量,即解释变量;输出变量就是因变量,即被解释变量。如Y=a+b*,*为自变量,Y为因变量。分类算法都必须包括因变量输出变量,本文所指分类算法仅有一个人输出变量。3.2.2 输出结果输出结果包括:变量重要性、分类结果明细、以及局部算法特有的输出。变量重要性:对因变量影响程度的变量,影响程度越高越重要。图1-3 变量重要性示意图分类结果明细:包括输入变量、输出变量及模型计算出的分类名称和概率值。表1-8 分类结果明细表例如用户基站个数发送量接收量分类名称响应概率14620是0.9072104222否0.68511838否0.89311838否0.89311838否0.8931286128是0.5971151158否0.956132665是0.59721022否0.849以上所述变量重要性及分类结果明细是所有分类算法都具有的输出,下面将展示局部算法特有的输出结果。除了可输出变量重要性和分类结果明细,决策树的输出还包括树状图,直观展示各节点的分割情况,展示分类规则,如图1-2所示。图1-4 变量重要性示意图决策树的输出还包括分类规则,分析人员可提取符合业务场景的重要规则,如图1-3所示。图1-5 变量重要性示意图3.2.3 分类算法模型评估分类器的评估与分类器本身同样重要。分类算法建模效果需要结合一系列的评估指标进展准确度、覆盖率以及稳定性评价。分类算法模型评估通常包括混淆矩阵、综合正确率、查全率、查准率、F1、ROC曲线、AUC值。分类效果评估通常采用混淆矩阵,以二分类为例多分类情况类似如表1-2所示。TP表示实际值为yes,预测值也为yes的个数;FP表示实际值为no,预测值为yes的个数;FN表示实际值为yes,预测值为no的个数;TN表示实际值为no,预测值也为no的个数。通常将表1-2推广至多元分类问题,只不过增加一些行和列,通常用来展示对测试集的预测结果。好的预测结果应该是在主对角线上的值要大,而非主对角线上数值要小。常用度量:综合正确率AccuracyA= (TP+TN)/(TP+TN+FN+FP);也称为准确率,衡量分类器对整个样本的判定能力,即正的判定为正,负的判定为负。查全率RecallR=TP/(TP+FN),也称为真阳性率,或者召回率,查全率衡量分类器正确预测的正例比例,如果分类器的查全率高,则很少将正例误分为负例。查准率PrecisionP= TP/(TP+FP),也称为准确度,衡量分类器判定为正例的那局部记录中实际为正例的记录所占比例。查准率越高,分类器的假阳性率越低。F1(F1-Measure)=2RP / ( R +P )=2TP/(2TP+FP+FN)=2/(1/R+1/P),表示查全率和查准率的调和平均值,由于两个数的调和均值倾向于接近较小的值,因此F1度量值高可确保查全率和查准率都比拟高。真阳性率True Positive RateTPR=TP/(TP+FN),正样本预测结果数/正样本实际数真阴性率True Negative RateTNR=TN/(TN+FP),负样本预测结果数/负样本实际数假阳性率False Positive RateFPR=FP/(FP+TN),被预测为正的负样本结果数/负样本实际数假阴性率False Negative RateFNR=FN/(FN+TP),被预测为负正样本结果数/正样本实际数表1-9 分类预测模型评价表混淆矩阵预测类别yesno真实类别yesTPFNnoFPTN除了混淆矩阵,常用的分类效果评价还有ROC曲线、lift值等。承受者操作特征Receiver Operating Characteristic,ROC曲线是显示分类器真阳性率和假阳性率之间折中的一种图形化方法。如图1-3所示,*轴为假阳性率,Y轴为真阳性率,如果一个模型比拟好,ROC下方的面积应该足够大。图 1-6 分类预测效果评价ROC处于ROC曲线下方的那局部面积的大小就是AUC指。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的performance。四聚类算法4.1 聚类算法介绍4.1.1 K-means聚类K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。算法主要优势:算法快速、简单;对大数据集有较高的效率并且是可伸缩性的;时间复杂度近于线性,而且适合挖掘大规模数据集。k-means 算法承受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象引力中心来进展计算的。流程如下:1选择k个初始中心点,例如c0=data0,ck-1=datak-1;2对于data0.datan, 分别与c0ck-1比拟,假定与ci差值最少,就标记为i;3对于所有标记为i点,重新计算ci= 所有标记为i的dataj之和/标记为i的个数;4重复(2)(3),直到所有ci值的变化小于给定阈值。4.1.2 高斯混合模型GMM统计学习的模型有两种,一种是概率模型,一种是非概率模型。所谓概率模型,是指训练模型的形式是P(Y|*)。输入是*,输出是Y,训练后模型得到的输出不是一个具体的值,而是一系列的概率值对应于分类问题来说,就是输入*对应于各个不同Y类的概率,然后我们选取概率最大的那个类作为判决对象软分类-soft assignment。所谓非概率模型,是指训练模型是一个决策函数Y=f(*),输入数据*是多少就可以投影得到唯一的Y,即判决结果硬分类-hard assignment。所谓混合高斯模型GMM就是指对样本的概率密度分布进展估计,而估计采用的模型训练模型是几个高斯模型的加权和具体是几个要在模型训练前建立好。每个高斯模型就代表了一个类一个Cluster。对样本中的数据分别在几个高斯模型上投影,就会分别得到在各个类上的概率。然后我们可以选取概率最大的类所为判决结果。从中心极限定理的角度上看,把混合模型假设为高斯的是比拟合理的,当然,也可以根据实际数据定义成任何分布的Mi*ture Model,不过定义为高斯的在计算上有一些方便之处,另外,理论上可以通过增加Model的个数,用GMM近似任何概率分布。混合高斯模型的定义为:其中K 为模型的个数;k为第k个高斯的权重;p* / k则为第k个高斯概率密度,其均值为k,方差为k。对此概率密度的估计就是要求出k、k 和k 各个变量。当求出p* 的表达式后,求和式的各项的结果就分别代表样本* 属于各个类的概率。在做参数估计的时候,常采用的是最大似然方法。最大似然法就是使样本点在估计的概率密度函数上的概率值最大。由于概率值一般都很小,N 很大的时候, 连乘的结果非常小,容易造成浮点数下溢。所以我们通常取log,将目标改写成:也就是最大化对数似然函数,完整形式为:一般用来做参数估计的时候,我们都是通过对待求变量进展求导来求极值,在上式中,log函数中又有求和,你想用求导的方法算的话方程组将会非常复杂,没有闭合解。可以采用的求解方法是EM算法将求解分为两步:第一步,假设知道各个高斯模型的参数可以初始化一个,或者基于上一步迭代结果,去估计每个高斯模型的权值;第二步,基于估计的权值,回过头再去确定高斯模型的参数。重复这两个步骤,直到波动很小,近似到达极值注意这里是极值不是最值,EM算法会陷入局部最优。具体表达如下: 1)E step对于第i个样本*i 来说,它由第k 个model 生成的概率为:在这一步,假设高斯模型的参数和是的由上一步迭代而来或由初始值决定。 2)M step高斯混合模型-GMMGaussian Mi*ture Model 3)重复上述两步骤直到算法收敛。4.1.3 二分k均值bisecting k-means二分k均值bisecting k-means算法的主要思想是:首先将所有点作为一个簇,然后将该簇一分为二。之后选择能最大程度降低聚类代价函数也就是误差平方和的簇划分为两个簇。以此进展下去,直到簇的数目等于用户给定的数目k为止。以上隐含着一个原则是:因为聚类的误差平方和能够衡量聚类性能,该值越小表示数据点月接近于它们的质心,聚类效果就越好。所以我们就需要对误差平方和最大的簇进展再一次的划分,因为误差平方和越大,表示该簇聚类越不好,越有可能是多个簇被当成一个簇了,所以我们首先需要对这个簇进展划分。二分k均值算法的伪代码如下:将所有数据点看成一个簇当簇数目小于k时对每一个簇计算总误差在给定的簇上面进展k-均值聚类k=2计算将该簇一分为二后的总误差选择使得误差最小的那个簇进展划分操作4.1.4 快速迭代聚类PICPIC利用数据归一化的逐对相似度矩阵,采用截断的快速迭代法,寻找数据集的一个超低维嵌入。这种嵌入恰好是很有效率的聚类指标,使它在真实的数据集上总是好于广泛使用谱聚类方法。在大规模数据集上,PIC非常快,比基于最好的特征计算技术实现快1000倍。4.2 聚类算法的输入聚类各算法的输入类似,变量类型通常为数值型变量局部聚类支持类型变量;输入参数通常包括聚类数目、迭代次数、收敛阀值等;输出参数包括聚类结果及聚类评估,详情如表1-8所示。表1-10 聚类算法的输入与输出算法名称输入变量类型模型参数输出结果模型评估K均值数值型聚类数目、最大迭代次数、算法被运行次数、初始类中心的选择、步数、收敛阀值聚类结果明细、类中心误差平方和越小越好高斯混合模型GMM数值型聚类结果明细、类中心误差平方和越小越好快速迭代聚类PIC数值型最大迭代次数聚类结果明细、类中心误差平方和越小越好二分K均值数值型聚类数目聚类结果明细、类中心误差平方和越小越好流k-均值数值型聚类数目聚类结果明细、类中心误差平方和越小越好4.3 聚类算法的输出4.3.1 聚类结果明细聚类分析输出包括聚类结果表,如表1-7所示,第一列的地区为聚类对象,*1、*2、*3为聚类指标,聚类类别是模型输出的聚类结果。表 1-11 K-means聚类结果表例如地区*1*2*3聚类类别1670 849 821 1*1140 562 578 47100 3619 3481 23470 1760 1710 42460 1261 1199 44395 2208 2188 32792 1412 1380 33911 1977 1933 31900 951 949 17798 3800 3998 25175 2633 2541 24.3.2 各指标的类中心聚类分析的输出结果通常还应包括各类别样本数、类中心及围值,如表1-8所示。表 1-12 各类别样本量及类中心例如类别数量价格马力车长中心围中心围中心围13614.61120.355-142176.4149.4-21524832.59217.2193-255194.831557.82304.9275-450192.545422.9914.9-41167.2145-193186157-2084.3.3 聚类效果的评估确定聚类个数是聚类分析中迄今为止尚未完全解决的问题之一,主要障碍是对类的构造和容很难给出统一的定义,这样就给不出从理论上和实践中都可行的虚无假设。实际应用中人们主要根据研究目的,从实用的角度出发,选择适宜的分类数。以spark机器学习的K均值聚类为例,Spark MLlib 在 KMeansModel 类里提供了 puteCost 方法,该方法通过计算所有数据点到其最近的中心点的平方和来评估聚类的效果。一般来说,同样的迭代次数和算法跑的次数,这个值越小代表聚类的效果越好。但是在实际情况下,我们还要考虑到聚类结果的可解释性,不能一味的选择使 puteCost 结果值最小的那个K。聚类评价准则:准则1:各类中心之间的距离尽可能大。准则2:各类所包含的样本量不宜过多。准则3:聚类的数目应该符合使用目的。准则4:假设采用几种不同的聚类方法处理,则在各自的聚类图上应该发现一样的类。五关联分析算法5.1 关联分析算法介绍5.1.1 Apriori算法Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。该算法的根本思想是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,则只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了baike.baidu./view/96473.htm递归的方法。5.1.2 FP-growth众所周知,Apriori算法在产生频繁模式完全集前需要对数据库进展屡次扫描,同时产生大量的候选频繁集,这就使Apriori算法时间和空间复杂度较大。但是Apriori算法中有一个很重要的性质:频繁项集的所有非空子集都必须也是频繁的。但是Apriori算法在挖掘额长频繁模式的时候性能往往低下,Jiawei Han提出了FP-Growth算法。它采取如下分治策略:将提供频繁项集的数据库压缩到一棵频繁模式树FP-tree,但仍保存项集关联信息。在算法中使用了一种称为频繁模式树Frequent Pattern Tree的数据构造。FP-tree是一种特殊的前缀树,由频繁项头表和项前缀树构成。FP-Growth算法基于以上的构造加快整个挖掘过程。5.1.3 Prefi*span Prefi*span算法家炜教师在2004年提出的序列模式算法,prefi*span算法的核心是产生前缀和对应的后缀,每次递归都将适宜的后缀变为前缀。Prefi*Span算法仅仅检测称为prefi*的前段序列片,将这个数据库在这个prefi*上投影,挖掘其中的频繁项,然后扩大到prefi*中,继续开掘,直到挖掘出所有的频繁序列。时空效率要比类Apriori算法有较大的提高。Prefi*Span算法的实现步骤如下:1读入序列数据库S及最小支持度阈值min_sup2预设第一次序列长度K=1,从映射数据库中发现长度为K的频繁序列集S,频繁序列是数据库中发生次数不小于阈值的序列。3以S划分搜索空间,分别挖掘含有这些频繁序列为Prefi*的长度为K+1的频繁序列,如果挖掘结果为空,则停顿。4将序列长度K增加1,将3所找到的L赋予S,再转到35记录并输出所有挖掘到的频繁序列。5.2 关联分析算法的输入关联规则的数据类型:关联分析的输入变量为类型变量或者已数值化的类型变量、离散变量,如果建模的变量是连续性变量,需要先进展离散化处理。数据通常处理成矩阵的形式。不同的平台对原始数据处理方式有所不同,如IBM spss modeler的Apriori算法要求商品序列是个二分类的类型变量,R语言通过函数直接转换原始数据,调用算法包即可实现Apriori算法关联规则。关联分析的数据输入可以按条件指定目标变量控制后项条件。关联规则算法通用输出参数:支持度、置信度5.3 关联分析算法的输出关联分析的输出通常为一系列规则,可根据输入阀值调整可输出的规则,输出项主要包括前项、后项、支持度、置信度、提升度。根据算法平台不同,适当增减一些可视化的结果。1.支持度Support支持度表示项集*,Y在总项集里出现的概率。公式为: Support(*Y) = P(*,Y) / P(I) = P(*Y) / P(I) = num(*UY) / num(I)其中,I表示总事务集。num()表示求事务集里特定项集出现的次数。比方,num(I)表示总事务集的个数num(*Y)表示含有*,Y的事务集的个数个数也叫次数。2.置信度Confidence置信度表示在先决条件*发生的情况下,由关联规则*Y“推出Y的概率。即在含有*的项集中,含有Y的可能性,公式为: Confidence(*Y) = P(Y|*) = P(*,Y) / P(*) = P(*UY) / P(*) 3.提升度Lift提升度表示含有*的条件下,同时含有Y的概率,与不含*的条件下却含Y的概率之比。 Lift(*Y) = P(Y|*) / P(Y)六.数值预测算法6.1 数值预测算法介绍6.1.1 回归预测OLS回归线性回归,是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。线性回归(Linear Regression)是利用称为线性回归方程的函数对一个或多个自变量和因变量之间关系进展建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。用最小二乘法求参数被称为最小二乘法回归,在没有特别说明的情况下,回归分析通常指最小二乘法OLS回归。6.1.2 回归预测Lasso回归使用数理统计模型从海量数据中有效挖掘信息越来越受到业界关注。在建立模型之初,为了尽量减小因缺少重要自变量而出现的模型偏差,通常会选择尽可能多的自变量。然而,建模过程需要寻找对因变量最具有强解释力的自变量集合,也就是通过自变量选择(指标选择、字段选择)来提高模型的解释性和预测精度。指标选择在统计建模过程中是极其重要的问题。Lasso算法则是一种能够实现指标集合精简的估计方法。Tibshirani(1996)提出了Lasso(The Least Absolute Shrinkage and Selectionator operator)算法。这种算法通过构造一个惩罚函数获得一个精炼的模型;通过最终确定一些指标的系数为零,LASSO算法实现了指标集合精简的目的。这是一种处理具有复共线性数据的有偏估计。Lasso的根本思想是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,从而能够产生*些严格等于0的回归系数,得到解释力较强的模型。R统计软件的Lars算法的软件包提供了Lasso算法。根据模型改进的需要,数据挖掘工作者可以借助于Lasso算法,利用AIC准则和BIC准则精炼简化统计模型的变量集合,到达降维的目的。因此,Lasso算法是可以应用到数据挖掘中的实用算法。6.1.3 回归预测岭回归岭回归ridge regression是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改进的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失局部信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法。通常岭回归方程的R平方值会稍低于普通回归分析,但回归系数的显著性往往明显高于普通回归,在存在共线性问题和病态数据偏多的研究中有较大的实用价值。6.1.4 移动平均法移动平均法moving average method是根据时间序列,逐项推移,依次计算包含一定项数的序时平均数,以此进展预测的方法。移动平均法包括一次移动平均法、加权移动平均法和二次移动平均法。移动平均法是用一组最近的实际数据值来预测未来一期或几期公司产品的需求量、公司产能等的一种常用方法。移动平均法适用于近期预测。当产品需求既不快速增长也不快速下降,且不存在季节性因素时,移动平均法能有效地消除预测中的随机波动,是非常有用的。移动平均法根据预测时使用的各元素的权重不同,可以分为:简单移动平均和加权移动平均。6.1.5 指数平滑法指数平滑法E*ponential Smoothing,ES是布朗(Robert G.Brown)所提出,布朗认为时间序列的态势具有稳定性或规则性,所以时间序列可被合理地顺势推延;他认为最近的过去态势,在*种程度上会持续到未来,所以将较大的权数放在最近的资料。指数平滑法是生产预测中常用的一种方法。也用于中短期经济开展趋势预测,所有预测方法中,指数平滑是用得最多的一种。简单的全期平均法是对时间数列的过去数据一个不漏地全部加以同等利用;移动平均法则不考虑较远期的数据,并在加权移动平均法中给予近期资料更大的权重;而指数平滑法则兼容了全期平均和移动平均所长,不舍弃过去的数据,但是仅给予逐渐减弱的影响程度,即随着数据的远离,赋予逐渐收敛为零的权数。也就是说指数平滑法是在移动平均法根底上开展起来的一种时间序列分析预测法,它是通过计算指数平滑值,配合一定的时间序列预测模型对现象的未来进展预测。其原理是任一期的指数平滑值都是本期实际观察值与前一期指数平滑值的加权平均。指数平滑可分为一次和屡次平滑。一次指数平滑预测当时间数列无明显的趋势变化,可用一次指数平滑预测。其预测公式为:yt+1=ayt+(1-a)yt 式中,yt+1-t+1期的预测值,即本期t期的平滑值St ;yt-t期的实际值;yt-t期的预测值,即上期的平滑值St-1 。该公式又可以写作:yt+1=yt+a(yt- yt)。可见,下期预测值又是本期预测值与以a为折扣的本期实际值与预测值误差之和。二次指数平滑预测二次指数平滑是对一次指数平滑的再平滑。它适用于具线性趋势的时间数列。其预测公式为:yt+m=(2+am/(1-a)yt-(1+am/(1-a)yt=(2yt-yt)+m(yt-yt) a/(1-a)式中,yt= ayt-1+(1-a)yt-1 显然,二次指数平滑是一直线方程,其截距为:(2yt-yt),斜率为:(yt-yt) a/(1-a),自变量为预测天数。二次指数平滑根本公式 St=St+(1-)St-1 Yt+T=at+btT at=2St-St bt=(/1-)(St-St)St-第t期的一次指数平滑值 St-第t期的二次指数平滑值-平滑系数 Yt+T-第t+T期预测值 T-由t期向后推移期数6.1.6 自回归移动平均模型ARIMA自回归移动平均模型(Autoregressive Integrated Moving Average Model,简记ARIMA),是由博克思(Bo*)和詹金斯(Jenkins)于70年代初提出的著名时间序列预测方法,所以又称为bo*-jenkins模型、博克思-詹金斯法。其中ARIMAp,d,q称为差分自回归移动平均模型,AR是自回归, p为自回归项; MA为移动平均,q为移动平均项数,d为时间序列成为平稳时所做的差分次数。所谓ARIMA模型,是指将非平稳时间序列转化为平稳时间序列,然后将因变量仅对它的滞后值以及随机误差项的现值和滞后值进展回归所建立的模型。ARIMA模型根据原序列是否平稳以及回归中所含局部的不同,包括移动平均过程MA、自回归过程AR、自回归移动平均过程ARMA以及ARIMA过程。6.2 数值预测算法的输入本文所指数值预测算法的输入变量都是数值型变量,需要指定因变量和自变量。输入参数有迭代次数、步长、平滑系数、差分阶数等,根据实际情况选用对应的输入参数。6.3 数值预测算法的输出预测算法的输出通常包括输入变量的原始值、预测值,以报表的形式输出,同时包括预测数据的可视化图形。表 1-13 预测算法的输出局部例如预测算法的输出的可视化图形包括原始值及拟合值,如下图。图1-7 指数平滑算法的拟合图如图1-6所示,左图与右图分别表示代理商1和代理商2的出票量,黑色曲线为原始值,蓝色曲线为预测值,蓝色曲线对两家代理商进展了未来一周的出票量预测。图1-8 指数平滑算法的拟合图预测算法通常还会输出模型的参数估计值,如:回归算法输出回归系数;自回归移动平均模型输出差分阶数及自回归、移动平均模型系数。6.4 数值预测算法的效果评估预测算法的最根本的评估准则是实际值与预测值的误差尽可能小。MSE均方误差:越小越好;可决系数R2或者调整的可决系数:越大越好,主要应用于回归算法;参数显著性:要求模型参数通过显著性检验;AIC或者BIC:越小越好。. z.
展开阅读全文