大数据挖掘算法设计.docx
- 文档编号:10083988
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:31
- 大小:655.48KB
大数据挖掘算法设计.docx
《大数据挖掘算法设计.docx》由会员分享,可在线阅读,更多相关《大数据挖掘算法设计.docx(31页珍藏版)》请在冰豆网上搜索。
大数据挖掘算法设计
大数据挖掘平台算法设计
一.基本统计方法2
二.降维算法(PCA/SVD)2
2.1主成分分析(PCA)2
2.2奇异值分解(SVD)3
三.分类算法3
3.1分类算法基本介绍3
3.2分类算法输入与输出3
四.聚类算法3
4.1聚类算法介绍3
4.2聚类算法的输入3
4.3聚类算法的输出3
五.关联分析算法3
5.1关联分析算法介绍3
5.2关联分析算法的输入3
5.3关联分析算法的输出3
六.数值预测算法3
6.1数值预测算法介绍3
6.2数值预测算法的输入3
6.3数值预测算法的输出3
6.4数值预测算法的效果评估3
一.基本统计方法
基本统计方法包括相关分析和假设检验,建模所需数据比较简单,具体如表1所示。
表1-1基本统计方法输入输出整理
算法类型
算法名称
输入
输出
输出形式
基本统计方法
相关分析(Pearson、Spearman)
各变量的值
(数值型)
变量的相关系数
表或图
假设检验(卡方检验、KS检验)
各变量的值
(数值型)
检验统计量及p值
表或图
二.降维算法(PCA/SVD)
2.1主成分分析(PCA)
主成分分析(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。
2.1.1PCA输入
变量类型:
主成分分析的变量类型都是数值型变量
目标变量定义:
主成分分析无目标变量(无因变量)
2.1.2PCA输出
主成分分析分析输出包括各主成分得分表,如表1-8所示,第一列为标签变量,X1、X2、X3、X4、X5为建模输入的变量,第一主成分得分、第二主成分得分、第三主成分得分以及主成分综合得分为各主成分的得分。
表1-2主成分分析输出结果(示例)
样本
X1
X2
X3
…
X5
第一主成分得分
第二主成分得分
主成分综合
得分
001
1670.01
848.93
821.2
…
0.7
3.17
1.33
2.526
002
1140.25
562.12
578.24
…
0.47
1.55
0.34
1.1265
003
7100.45
3619.28
3481.29
…
0.3
-0.84
0.78
-0.273
004
3470.01
1759.98
1709.92
…
0.37
0.34
-0.21
0.1475
主成分分析分析输出还包括各主成分特征值及方差贡献率,如表1-3所示。
表1-3特征值与方差贡献率
Component
InitialEigenvalues
ExtractionSumsofSquaredLoadings
RotationSumsofSquaredLoadings
Total
%ofVariance
Cumulative%
Total
%ofVariance
Cumulative%
Total
%ofVariance
Cumulative%
1
4.815
37.038
37.038
4.815
37.038
37.038
3.315
25.502
25.502
2
2.412
18.551
55.589
2.412
18.551
55.589
2.385
18.342
43.844
3
1.605
12.345
67.935
1.605
12.345
67.935
2.287
17.595
61.439
主成分分析还包括KMO检验表,判断是否适合做主成分分析,如表1-4所示。
表1-4KMOandBartlett'sTest
Kaiser-Meyer-OlkinMeasureofSamplingAdequacy.
0.693
Bartlett'sTestofSphericity
Approx.Chi-Square
523.978
df
78
Sig.
.000
主成分分析还包括载荷矩阵,如表1-5所示,可以得出各指标在各主成分的载荷系数。
表1-5载荷矩阵(示例)
成长性指标
Component
.955
.249
-.003
-.065
-.076
.950
.256
-.019
-.073
-.091
.937
.280
-.042
-.080
-.104
.345
.893
.055
-.032
-.085
2.2奇异值分解(SVD)
假设C是MxN矩阵,U是MxM矩阵,其中U的列为
的正交特征向量,V为NxN矩阵,其中V的列为
的正交特征向量,再假设r为C矩阵的秩,则存在奇异值分解:
其中
和
的特征值相同,为
Σ为MXN,其中
,其余位置数值为0,
的值按大小降序排列。
以下是Σ的完整数学定义:
σi称为矩阵C的奇异值。
SVD常用于潜在语义分析,作为文本数值转化后的计算模型。
2.2.1SVD分解的输入
变量类型:
SVD分解的输入变量都是数值型变量
目标变量定义:
SVD分解无目标变量(无因变量)
2.2.2SVD分解的输出
变量类型:
SVD分解的输出包括三部分:
U矩阵、Σ(奇异值对角阵或奇异值)和V(V矩阵或V的转置矩阵)。
SVD的分解如图1所示,
图1-1基于R语言进行SVD分解
三.分类算法
3.1分类算法基本介绍
3.1.1决策树算法
决策树(Decisiontree)是用于对数据进行分类和预测的主要数据挖掘技术之一,是一种以实例为基础的归纳学习算法。
它利用自顶向下的递归方式能够从一组无规则的实例中推理出分类规则,并得到类似一棵树的枝干的结构图。
树的最顶端是根节点,在部节点进行属性的比较即表示对一个属性的测试,并从该节点根据不同属性值判断向下进行分枝,一个分枝即表示一个测试输出,最终的叶节点代表一个类别。
算法优势:
1)模型非常直观,容易让人理解和应用;2)决策树搭建和应用的速度比较快;3)决策树对于数据分布没有严格要求;4)受缺失值和极端值对模型的影响很小。
算法不足:
1)某些自变量类别较多时容易出现过拟合;2)没有像归或者聚类那样丰富多样的检验指标。
(1)C4.5算法。
C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法。
C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:
1)用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;2)在树构造过程中进行剪枝;3)能够完成对连续属性的离散化处理;4)能够对不完整数据进行处理。
C4.5算法有如下优点:
产生的分类规则易于理解,准确率较高。
其缺点是:
在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
(2)CART算法。
分类回归树(CART,ClassificationAndRegressionTree)也属于一种决策树,分类回归树是一棵二叉树,且每个非叶子节点都有两个孩子,所以对于第一棵子树其叶子节点数比非叶子节点数多1。
CART与ID3区别:
CART中用于选择变量的不纯性度量是Gini指数; 如果目标变量是标称的,并且是具有两个以上的类别,则CART可能考虑将目标类别合并成两个超类别(双化); 如果目标变量是连续的,则CART算法找出一组基于树的回归方程来预测目标变量。
(3)CHAID算法。
CHAID是卡方自动交互检测(CHi-squaredAutomaticInteractionDetection)的缩写,是一种基于调整后的显着性检验(邦费罗尼检验)决策树技术。
CHAID可用于预测(类似回归分析,CHAID最初被称为XAID)以及分类,并用于检测变量之间的相互作用。
CHAID基于1960和1970年代,一个USAID(自动交互效应检测)和THAID(THETA自动交互检测)程序的扩展。
而后者又是早期1950英国研究的扩展。
在实践中,CHAID经常使用在直销的背景下,选择消费者群体,并预测他们的反应,一些变量如何影响其他变量,而其他早期应用是在医学和精神病学的研究领域。
和其他决策树一样,CHAID的优势是它的结果是非常直观的易于理解的。
由于默认情况下CHAID采用多路分割,需要相当大的样本量,来有效地开展工作,而小样本组受访者可以迅速分为太小了的组,而无法可靠的分析。
3.1.2朴素贝叶斯
朴素贝叶斯分类是一种十分简单的分类算法,叫它朴素贝叶斯分类是因为这种方法的思想真的很朴素,朴素贝叶斯的思想基础是这样的:
对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。
通俗来说,就好比这么个道理,你在街上看到一个黑人,我问你你猜这哥们哪里来的,你十有八九猜非洲。
为什么呢?
因为黑人中非洲人的比率最高,当然人家也可能是美洲人或亚洲人,但在没有其它可用信息下,我们会选择条件概率最大的类别,这就是朴素贝叶斯的思想基础。
朴素贝叶斯分类的正式定义如下:
1、设
为一个待分类项,而每个a为x的一个特征属性。
2、有类别集合
。
3、计算
。
4、如果
,则
。
那么现在的关键就是如何计算第3步中的各个条件概率。
我们可以这么做:
1、找到一个已知分类的待分类项集合,这个集合叫做训练样本集。
2、统计得到在各类别下各个特征属性的条件概率估计。
即
3、如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:
因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。
又因为各特征属性是条件独立的,所以有:
算法优势:
1) 朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率;2)NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。
算法不足:
1)理论上,NBC模型与其他分类方法相比具有最小的误差率。
但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的(可以考虑用聚类算法先将相关性较大的属性聚类),这给NBC模型的正确分类带来了一定影响。
在属性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型。
而在属性相关性较小时,NBC模型的性能最为良好。
2)需要知道先验概率。
3.1.3logistic回归
Logistic回归是在给出方程,输入变量取值的条件下,输出变量取1的概率为多少。
通常根据某事物的危险因素预测该事物发生的概率。
逻辑回归是当前业界比较常用的机器学习方法,用于估计某种事物的可能性。
Logisticregression可以用来回归,也可以用来分类,主要是二分类。
假设我们的样本是{x,y},y是0或者1,表示正类或者负类,x是我们的m维的样本特征向量。
那么这个样本x属于正类,也就是y=1的“概率”可以通过下面的逻辑函数来表示:
算法主要优势:
1)是一种应用广泛的成熟的统计方法;2)逻辑回归擅长辨识事物的线性关系;
算法不足:
1)变量之间的多重共线性会对模型造成影响;2)异常值会给模型带来很大干扰;3)逻辑回归模型本身不能处理缺失值
3.1.4随机森林
随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。
在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。
算法主要优势:
1)在数据集上表现良好
2)在当前的很多数据集上,相对其他算法有着很大的优势
3)它能够处理很高维度(feature很多)的数据,并且不用做特征选择
4)在训练完后,它能够给出哪些feature比较重要
5)在创建随机森林的时候,对generlizationerror使用的是无偏估计
6)在训练过程中,能够检测到feature间的互相影响
算法不足:
1)随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合
2) 对于有不同级别的属性的数据,级别划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。
3.1.5支持向量机
支持向量机(SupportVectorMachine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。
支持向量机方法是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力(或称泛化能力)。
图1-2线性可分情况下的最优分类线
3.1.6梯度提升树(GBTs)
GradientBoosting是一种实现Boosting的方法,它主要的思想是,每一次建立模型是在之前建立模型损失函数的梯度下降方向。
损失函数(lossfunction)描述的是模型的不靠谱程度,损失函数越大,则说明模型越容易出错。
如果我们的模型能够让损失函数持续的下降,则说明我们的模型在不停的改进,而最好的方式就是让损失函数在其梯度(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分类算法建模输入参数(基于SparkMLlib)
算法名称
输入参数
算法名称
输入参数
逻辑回归
.训练集和测试集比例
.目标变量类型数
朴素贝叶斯
.训练集和测试集比例
.指定bernoulli或multinomial
.平滑因子
决策树
.训练集和测试集比例
.目标变量类型数
.maxDepth(默认为5)
.maxBins(默认为32)
.划分选择(gini或熵)
支持向量机
.训练集和测试集比例
.迭代次数
随机森林
.训练集和测试集比例
.目标变量类型数
.maxDepth(默认为5)
.maxBins(默认为32)
.划分选择(gini或熵)
.决策树棵数
.分割策略
GBTs
.训练集和测试集比例
.目标变量类型数
.maxDepth(默认为5)
.boostingStrategy
.numIterations
3.2.1变量类型
输入变量通常分为以下几种:
变量类型通常包括:
标志变量,仅作为标记,不进行计算。
数值型变量,包括连续性和离散型变量。
取值是连续可无限细分的变量,如温度)为连续型变量;取值是有限个离散值的变量(如家庭人口数)为离散变量。
类型变量,包括定类变量和定序变量。
定类变量是指变量为类型但没顺序等级之分的变量(如红色、黄色、蓝色),定序变量为有次序的分类变量(如第一名、第二名、第三名)。
输入和输出变量。
所谓输入变量就是自变量,即解释变量;输出变量就是因变量,即被解释变量。
如Y=a+bX,X为自变量,Y为因变量。
分类算法都必须包括因变量(输出变量),本文所指分类算法仅有一个人输出变量。
3.2.2输出结果
输出结果包括:
变量重要性、分类结果明细、以及部分算法特有的输出。
变量重要性:
对因变量影响程度的变量,影响程度越高越重要。
图1-3变量重要性(示意图)
分类结果明细:
包括输入变量、输出变量及模型计算出的分类名称和概率值。
表1-8分类结果明细表(示例)
用户
基站个数
发送量
接收量
分类名称
响应概率
1
46
20
是
0.907
2
1042
22
否
0.685
1
183
8
否
0.893
1
183
8
否
0.893
1
183
8
否
0.893
1
286
128
是
0.597
1
151
158
否
0.956
1
326
65
是
0.597
2
10
22
否
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推广至多元分类问题,只不过增加一些行和列,通常用来展示对测试集的预测结果。
好的预测结果应该是在主对角线上的值要大,而非主对角线上数值要小。
常用度量:
综合正确率(Accuracy)A=(TP+TN)/(TP+TN+FN+FP);也称为准确率,衡量分类器对整个样本的判定能力,即正的判定为正,负的判定为负。
查全率(Recall)R=TP/(TP+FN),也称为真阳性率,或者召回率,查全率衡量分类器正确预测的正例比例,如果分类器的查全率高,则很少将正例误分为负例。
查准率(Precision)P=TP/(TP+FP),也称为精确度,衡量分类器判定为正例的那部分记录中实际为正例的记录所占比例。
查准率越高,分类器的假阳性率越低。
F1(F1-Measure)=2RP/(R+P)=2TP/(2TP+FP+FN)=2/(1/R+1/P),表示查全率和查准率的调和平均值,由于两个数的调和均值倾向于接近较小的值,因此F1度量值高可确保查全率和查准率都比较高。
真阳性率(TruePositiveRate)TPR=TP/(TP+FN),正样本预测结果数/正样本实际数
真阴性率(TrueNegativeRate)TNR=TN/(TN+FP),负样本预测结果数/负样本实际数
假阳性率(FalsePositiveRate)FPR=FP/(FP+TN),被预测为正的负样本结果数/负样本实际数
假阴性率(FalseNegativeRate)FNR=FN/(FN+TP),被预测为负正样本结果数/正样本实际数
表1-9分类预测模型评价表(混淆矩阵)
预测类别
yes
no
真实类别
yes
TP
FN
no
FP
TN
除了混淆矩阵,常用的分类效果评价还有ROC曲线、lift值等。
接受者操作特征(ReceiverOperatingCharacteristic,ROC)曲线是显示分类器真阳性率和假阳性率之间折中的一种图形化方法。
如图1-3所示,X轴为假阳性率,Y轴为真阳性率,如果一个模型比较好,ROC下方的面积应该足够大。
图1-6分类预测效果评价(ROC)
处于ROC曲线下方的那部分面积的大小就是AUC指。
通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的performance。
四.聚类算法
4.1聚类算法介绍
4.1.1K-means聚类
K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。
该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。
算法主要优势:
算法快速、简单;对大数据集有较高的效率并且是可伸缩性的;时间复杂度近于线性,而且适合挖掘大规模数据集。
k-means算法接受输入量k;然后将n个数据对象划分为k个聚类以便使得所获得的聚类满足:
同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。
聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。
流程如下:
(1)选择k个初始中心点,例如c[0]=data[0],…c[k-1]=data[k-1];
(2)对于data[0]….data[n],分别与c[0]…c[k-1]比较,假定与c[i]差值最少,就标记为i;
(3)对于所有标记为i点,重新计算c[i]={所有标记为i的data[j]之和}/标记为i的个数;
(4)重复
(2)(3),直到所有c[i]值的变化小于给定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 挖掘 算法 设计