数据挖掘模型——理论合集

挖掘建模分:分类与预测、聚类分析、关联规则、时序模式等模型。

分类与预测是预测问题的两种主要类型,分类主要是:预测分类标号(离散属性);预测主要是:建立连续值函数模型,预测给定自变量对应的因变量的值。

1.分类与预测

1.1 实现过程

(1)分类

  分类是构造一个分类模型,输入样本属性值,输出对应类别,将每个样本映射到预先定义好的类别。

  分类模型,建立在已有类标记的数据集上,因此,属于“有监督学习”

(2)预测

  预测,指建立两种或两种以上变量间相互依赖的函数模型,进行预测或控制

(3)实现过程

  分类算法:

  a:学习步,通过归纳分析训练样本集建立分类模型得到分类规则;

  b:分类步,先用已知的测试样本集,评估分类规则的准确率

  预测模型:

  a:通过训练集建立预测属性的函数模型

  b:在模型通过检验后进行预测或控制

1.2 常用分类与预测算法   

算法名称算法描述
回归分析回归分析,确定预测属性与其他变量间相互依赖的定量关系。包括:线性回归、非线性回归、Logistic回归、岭回归、主成分回归、偏最小二乘回归等模型
决策树决策树采用自顶向下的递归方式,在内部节点进行属性值比较,并根据不同的属性值从该节点向下分支,最终得到的叶节点是学习划分的类
人工神经网络人工神经网络是一种模仿大脑神经网络结构和功能而建立的信息处理系统,表示神经网络的输入与输出变量之间关系的模型
贝叶斯网络贝叶斯网络又称信度网络,是Bayes方法的扩展,是目前不确定知识表达和推理领域最有效的理论模型之一
支持向量机支持向量机是一种通过某种非线性映射,把低维的非线性可分转化为高维的线性可分,在高维空间进行线性分析的算法

1.3 回归分析

回归模型名称适用条件算法描述
线性回归因变量与自变量是线性关系对一个或多个自变量和因变量间的线性关系进行建模,可用最小二乘法求解模型系数
非线性回归因变量与自变量间不都是线性关系对一个或多个自变量和因变量间的非线性关系进行建模。若非线性关系可通过简单的函数变换转化成线性关系,用线性回归的思想求解,若不能转化,用非线性最小二乘法求解
Logistic回归因变量一般有1和0(是、否)两种取值广义线性回归模型的特例,利用Logistic函数将因变量的取值范围控制在0、1之间,表示取值为1的概率
岭回归参与建模的自变量间具有多重共线性是一种改进最小二乘估计的方法
主成分回归参与建模的自变量间具有多重共线性主成分回归是根据主成分分析的思想提出的,是对最小二乘法的改进,它是参数估计的一种有偏估计。可消除自变量间的多重共线性

1.4 决策树

决策树是一种树状结构,它的每一个叶节点对应着一个分类,非叶节点对应着在某个属性上的划分,根据样本在该属性不同取值将其划分为若干个子集。

决策树构造的核心问题:在每一步如何选择适当的属性对样本做拆分。

决策树处理过程:对分类问题,应从已知类标记的训练样本中学习并构造出决策树,自上而下,分开进行解决。

决策树算法算法描述
ID3算法核心:在决策树的各级节点上,使用信息增益方法作为属性的选择标准,来帮助确定生成每个节点时所应采用的合适属性。
C4.5算法C4.5决策树生成算法相对于ID3算法的重要改进:使用信息增益率来选择节点属性。C4.5可客服ID3算法的不足:ID3算法只适用于离散的描述属性,而C4.5算法既能处理离散的描述属性,也可处理连续的描述属性
CART算法CART决策树是一种非参数分类和回归方法,通过构建树、修剪树、评估树来构造一个二叉树。当终结点是连续变量时,该树为回归树;当终结点是分类变量,该树为分类树

1.5 人工神经网络

人工神经网络:模拟生物神经网络进行信息处理的一种数学模型。

人工神经网络的学习也称为训练,指的是:神经网络在受到外部环境的刺激下调整神经网络的参数,使神经网络以一种新的方式对外部环境做出反应的一个过程。

分类预测时,人工神经网络主要使用有指导的学习方式,即根据给定的训练样本调整人工神经网络参数使网络输出接近于已知的样本类标记或其他形式的因变量。

分类预测时,常用的算法是:误差校正学习算法

误差校正算法,根据神经网络的输出误差对神经元的连接强度进行修正,属于有指导学习。

设神经网络中神经元i作为输入,神经元j为输出神经元,它们的连接权值为wij,则对权值的修正为△wij=ηδjYi,其中η为学习率,δj=Tj-Yj为j的偏差,即输出神经元j的实际输出和教师信号之差。

神经网络训练是否完成通过误差函数E衡量。当误差函数小于某个设定值时,停止神经网络训练。

误差函数计算:

,N为训练样本个数。

人工神经网络算法

算法名称算法描述
BP神经网络一种按误差逆传播算法训练的多层前馈网络,学习算法是:误差校正学习算法
LM神经网络基于梯度下降法和牛顿法结合的多层前馈网络,特点 :迭代次数少,收敛速度快,精确度高
RBF径向基神经网络RBF网络能以任何精度逼近任意连续函数,从输入层到隐含层的变换是非线性的,而从隐含层到输出层的变换是线性的,适用于解决分类问题
FNN模糊神经网络FNN是具有模糊权系数或输入信号是模糊量的神经网络
GMDH神经网络GMDH是前馈神经网络中常用的一种用于预测的神经网络。它的特点:网络结构不固定,在训练中不断改变
ANFIS自适应神经网络神经网络嵌在一个全部模糊的结构中,不知不觉中向训练数据学习,自动产生、修正并高度概括出最佳的输入与输出变量的隶属函数及模糊规则

1.6 分类与预测算法评价

分类与预测模型对训练集进行预测,得到的准确率,不能很好的反映预测模型未来的性能

为有效判断一个预测模型的性能表现,需一组没有参与预测模型建立的数据集,并在该数据集上评价预测模型的准确率,这组独立的数据集叫测试集。

模型预测效果评价指标:

(1)绝对误差E与相对误差e  

(2)平均绝对误差MAE

(3)均方误差MSE

(4)均方根误差RMSE

(5)平均绝对百分误差MAPE(一般认为MAPE小于10时,预测精度较高)

(6)Kappa统计

    Kappa统计是比较两个或多个观测者对同一事物,或观测者对同一事物的两次或多次观测结果是否一致。Kappa统计量和加权Kappa统计量不仅可以用于无序和有序分类变量资料的一致性,重现性检验。

    Kappa取值在[-1,+1]间时:

    Kappa=+1,说明两次判断结果完全一致;

    Kappa=-1,说明两次判断结果完全不一致

    Kappa<0,说明一致程度比机遇造成的还差,两次结果很不一致,在实际应用中毫无意义

    Kappa>0,说明有意义,Kappa越大,说明一致性越好

     Kappa≥0.75,说明已经取得相当满意的一致程度

     Kappa<0,说明一致程度不够 

(7)识别准确度Accuracy

    Accuracy=(TP+FN)/(TP+TN+FP+FN)

   TP为正确的肯定表示正确肯定的分类数,TN为正确的否定表示正确否定的分类数;

   FP为错误的肯定表示错误肯定的分类数,FN为错误的否定表示错误否定的分类数。

(8)识别精确率Precision

    Precision=TP/(TP+FP)

(9)反馈率Recall

    Recall=TP/(TP+TN)

(10)ROC曲线

(11)混淆矩阵

1.7 Python分类与预测模型特点

模型模型特点位置
逻辑回归较基础的线性分类模型sklearn.linear_model
SVM可用来回归、预测、分类等,根据选取不同的核函数。模型可以是线性的/非线性的sklearn.svm
决策树基于“分类讨论、逐步细化”思想的分类模型,模型直观sklearn.tree
随机森林思想跟决策树类似,精度通常比决策树要高,缺点是由于其随机性,丧失了决策树的可解释性sklearn.ensemble
朴素贝叶斯基于概率思想的简单有效的分类模型,能给出容易理解的概率解释sklearn.naive_bayes
神经网络具有强大的拟合能力,可用于拟合、分类等,它有很多个增强版本Keras

2.聚类分析

2.1 常用聚类分析算法

聚类分析是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法。

聚类模型建立在无类标记的数据上,是一种非监督的学习算法。

聚类的输入是一组未被标记的样本,聚类根据数据自身的距离或相似度将其划分为若干组,划分原则是:组内距离最小化而组间距离最大化。

常用聚类方法:

类别包括的主要算法
划分(分裂)方法K-Means算法(K-平均)、K-MEDOIDS算法(K-中心点)、CLARANS算法(基于选择的算法)
层次分析方法BIRCH算法(平衡迭代规约和聚类)、CURE算法(代表点聚类)、CHAMELEON算法(动态模型)
基于密度的方法DBSCAN算法(基于高密度连接区域)、DENCLUE算法(密度分布函数)、OPTICS算法(对象排序识别)
基于网格的方法STING算法(统计信息网络)、CLIOUE算法(聚类高维空间)、WAVE-CLUSTER算法(小波变换)
基于模型的方法统计学方法、神经网络方法

常用聚类算法:

算法名称算法描述
K-MeansK-均值聚类(快速聚类发),在最小化误差函数的基础上将数据划分为预定的类数K。该算法原理简单便于处理大量数据。
K-中心点K-均值算法对孤立点的敏感性,K-中心点算法不采用簇中对象的平均值作为簇中心,选用簇中离平均值最近的对象作为簇中心。
系统聚类系统聚类也称多层次聚类,分类的单位由高到低呈树形结构,且处位置越低,其包含的对象就越少,但这些对象间的共同特征越多。该聚类方法只适合小数量的时使用,数据量大时速度会非常慢。

2.2 K-Means聚类算法

  http://blog.csdn.net/qq_36663613/article/details/72784444

  K-Means算法是典型的基于距离的非层次聚类算法,在最小化误差函数的基础上将数据划分为预定的类数K,采用距离作为相似性评价指标,即认为两个对象的距离越近,其相似度越大。

(1)算法过程

  a:从N个样本数据中随机选取K个对象作为初始的聚类中心;

  b:分别计算每个样本到各个聚类中心的距离,将对象分配到距离最近的聚类中;

  c:所有对象分类完成后,重新计算K个聚类的中心;

  d:与前一次计算得到的K个聚类中心比较,若聚类中心发生变化,转过程2,否则,转过程5;

  e:当质心不发生变化时,停止并输出聚类结果。

(2)数据类型与相似性变量

  连续属性,先对各属性值进行零——均值规范,再进行距离计算。K-Means算法,一般需先度量样本间(欧几里得距离、曼哈顿距离、闵可夫斯距离) ,样本与簇间(样本到簇中心的距离)及簇与簇间距离(簇中心距离 )。

  文档数据,使用余弦相似性度量,先将文档数据整理成文档——词矩阵格式,再计算相似性

(3)目标函数

  使用误差平方和SSE作为度量聚类质量的目标函数,对两种不同的聚类结果,选择误差平方和较小的分类结果。

  连续属性的SSE

  文档数据的SSE

  簇Ei的聚类中心ei

2.3 聚类分析算法评价

 聚类分析:根据样本数据本身将样本分组。

聚类目标:实现组内对象相互间是相似的结果。

聚类评价:组内相似性越大,组间差别越大,聚类效果越好。

评价方法:

(1)purity评价法【计算正确聚类数占总数的比例】

    

    xk表示第k个聚类的组合,x是聚类的集合,y表示需要被聚类的集合,yi表示第i个对象,n表示被聚类集合对象总数。

(2)RI评价法【排列组合原理对聚类进行评价】

    

    R表示应该被聚在一类的两个对象被正确分类,W表示不应该被聚在一类的两个对象被正确分类,M表示不应该聚在一类的对象被错误归在一类,D表示不应该分开对象被错误分开

(3)F值评价法【RI方法衍生】

2.4 Python主要聚类分析算法

对象名函数功能所属工具箱
K-MeansK均值聚类sklearn.cluster
AffinityPropagation吸引力传播聚类(运行效率较低)sklearn.cluster
MeanShift均值漂移聚类算法sklearn.cluster
SpectralClustering谱聚类(效果比K均值好,速度比K均值快)sklearn.cluster
AgglomerativeClusering层次聚类sklearn.cluster
DBSCAN具有噪声的基于密度的聚类方法sklearn.cluster
BIRCH综合层次聚类算法,适用于大规模数据聚类sklearn.cluster

TSNE:聚类结果可视化工具

3.关联规则

关联规则目的:在一个数据集中,找出各项之间的关联关系。

3.1 常用关联规则算法

算法名称算法描述
Aprior关联规则是最常用的挖掘频繁项集的算法,核心是通过连接产生候选项及其支持度然后通过剪枝生成频繁项集
FP-Tree针对Aprior算法的固有的多次扫描事务数据集的缺陷,提出不产生候选频繁项集的方法。Aprior和FP-Tree都是寻找频繁项集的算法。
Eclat算法Eclat算法是一种深度优先算法,采用垂直数据表示形式,在概念格理论基础上利用基于前缀的等价关系将搜索空间划分为较小的子空间
灰色关联法分析和确定各因素间影响程度或是若干个子因素(子序列)对主因素(母序列)的贡献度而进行的一种分析方法

3.2 Apriori算法

(1)关联规则和频繁项集

A:关联规则的一般形式:

项集A、B同时发生的概率称为关联规则的支持度

项集A发生,则项集B发生的概率为关联规则的置信度

B:最小支持度和最小置信度

最小支持度:衡量支持度的一个阙值,表示项目集在统计意义上的最低重要性

最小置信度:衡量置信度的一个阙值,表示关联规则的最低可靠性

同时满足最小支持度阙值和最小置信度阙值的规则称为强规则

C:项集

项集是项的集合。包括k个项的项集称为k项集

项集的出现频率是所有包含项集的事务个数

若项集I的相对支持度满足预定义的最小支持度阙值,则I是频繁项集

D:支持度计数

项集A的支持度计数是事务数据集中包含项集A的事务个数,简称为项集的频率或计数

已知项集的支持度计数,则规则A→B的支持度和置信度易从所有事务计数、项集A和项集A U B的支持度计数推出

相关博客:http://blog.csdn.net/wo334499/article/details/51698810

     

    

(2)Aprior算法

 Aprior算法主要思想是:找出存在于事务数据集中的最大的频繁项集,在利用得到的最大频繁项集与预先设定的最小置信度阙值生成强关联规则。

4.时序模式

4.1 时间序列算法

模型名称描述
平滑法平滑法用于趋势分析和预测,利用修匀技术,削弱短期随机波动对序列的的影响,使序列平滑化。
趋势拟合法趋势拟合法把时间作为自变量,相变的序列观察值作为因变量,建立回归模型。根据序列特征,可具体分为线性拟合和曲线拟合
组合模拟

时间序列变化主要受长期趋势(T)、季节变动(S)、周期变动(C)和不规则变动(e)影响。根据序列特点,可构建:【加法模型:xt=Tt+St+Ct+εt】【乘法模型:xt=Tt*St*Ct*εt】

AR模型
MA模型
ARMA模型
ARIMA模型
ARCH模型
GARCH模型及衍生模型

4.2 时间序列预处理

序列预处理:观察值序列的纯随机性和平稳性检验称为序列预处理

纯随机序列(白噪声序列):序列各项间没有任何相关关系,序列在进行完全无序的随机波动,可终止对该序列的分析。白噪声序列是没有信息可提取的平稳序列。

平稳非白噪声序列:通常是建立一个线性模型来拟合该序列的发展,借此提取该序列额有用信息。常用的模型是:ARMA(平稳序列拟合模型)。

非平稳序列:均值、方差不稳定,处理方法,将其转变为平稳序列,再进行分析。

(1)平稳性检验

    a:平稳时间序列定义

         单个随机变量X,可计算其均值(数学期望)μ、方差σ2

    两个随机变量X、Y,可计算X、Y的协方差cov(X,Y)、相关系数ρ(X,Y)

    若时间序列再某一个常数附近波动且波动范围有限,即有常数均值和常数方差。延迟k期的序列变量的自协方差和自相关系数相等,则该时间序列是平稳序列。

     b:平稳性检验

    时序图检验

    自相关图检验

    单位根检验

(2)纯随机性检验

     若一个序列是纯随机序列,那么它的序列值之间应没有 任何关系,即满足y(k)=0,k!=0,实际上纯随机序列样本自相关系数很接近0,并在0附近随机波动。

     纯随机性检验,一般是构造检验统计量来检验序列的纯随机性。常用的检验统计量有Q统计量、LB统计量

     由样本各延迟期数的自相关系数可计算得到检验统计量,然后计算出对应的P值,若P值显著大于显著性水平a,则表示该序列不能拒绝纯随机的原假设,可停止对该序列的分析。 

4.3 平稳时间序列分析

(1)AR模型

(2)MA模型

(3)ARMA模型

(4)平稳时间序列建模

    A:计算ACF和PACF。先计算非平稳白噪声序列的自相关系数(ACF)和偏自相关系数(PACF)

    B:ARMA模型识别(模型定阶)。由AR(p)模型、MA(q)、ARMA(p、q)的自相关系数和偏自相关的性质,选择合适的模型

    C:估计模型未知参数的值并进行参数检验

    D:模型检验

    E:模型优化

    F:模型应用,短期预测

(5)ARMA模型识别原则

模型自相关系数(ACF)偏自相关系数(PACF)
AR(p)拖尾p阶截尾
MA(q)q阶截尾拖尾
ARMA(p,q)p阶截尾q阶拖尾

4.4 非平稳时间序列分析

(1)差分运算(具有较强的确定性信息提取能力)

    p阶差分:相距一期的两个序列值之间的减法运算称为 1阶差分运算

    k步差分:相距k期的两个序列值之间的减法运算称为k步差分运算

(2)ARIMA模型  

4.5 Python主要时序模式算法

函数名函数功能所属工具箱使用格式备注
acf()计算自相关系数statsmodels.tsa.stattoolsautocorr=acf(data,unbiased=False,nlags=40,qstat=False,fft=False,alpha=None)data为观测值序列(时间序列,可以是DataFrame或Series),返回参数autocorr为观测值序列自相关函数,其余的均为可选参数
plot_acf()画自相关系数图statsmodels.graphics.tsaplotsp=plot_acf(data)
pacf()计算偏相关系数statsmodels.tsa.stattoolsautocorr=pacf(data,unbiased=False,nlags=40,qstat=False,fft=False,alpha=None)
plot_pacf()画偏相关系数图statsmodels.graphics.tsaplotsp=plot_pacf(data)
adfuller()对观测值序列进行单位根检验statsmodels.tsa.stattoolsh=adffuller(Series,maxlag=None,regression='c',autolag='AIC',store=Fals,regresults=False)输入参数Series为一维观测值序列,返回值依次为:adf、pvalue、usedlag、nobs、critical、values、icbest、regresults、resstore
diff()对观测值序列进行差分计算Pandas对象自带的方法D.diff()D为Pandas的DataFrame或Series
ARIMA()创建一个ARIMA时序模型statsmodels.tsa.arima_modelarima=ARIMA(data,(p,1,q)).fit()data参数为输入的时间序列,p、q为对应的阶,d为差分次数
summary()或summaty2给出一份ARIMA模型的报告ARIMA模型对象自带的方法arima.summary()/arima.summary2()arima为已建立好的ARIMA模型,返回一份格式化的模型报告,包含模型的系数、标准误差、p值、AIC、BIC等指标
aic\bic\hqic计算ARIMA模型的AIC\BIC\HQIC指标值ARIMA模型对象自带的变量arima.aic/arima.bic/arima.hqicarima为已建立好的ARIMA模型,返回值是Model时序模型得到的AIC、BIC、HQIC指标值
forecast()应用构建的时序模型进行预测ARIMA模型对象自带的方法a,b,c=arima.forecast(num)输入参数num为要预测的天数,arima为已建立好的ARIMA模型,a为返回的预测值,b为预测的误差,c为预测置信区间
acorr_ljungbox()Ljung-Box检验,检验是否为白噪声statsmodels.tsa.diagnosticacorr_ljungbox(data,lags=1)输入参数data为时间序列数据,lags为滞后数,返回统计量和p值

5.离群点检测

  离群点成因:数据来源于不同的类、自然变异、数据测量、收集误差

  离群点分类:

分类标准分类名称
从数据范围全局离群点和局部离群点
从数据类型数值型离群点和分类型离群点
从属性个数一维离群点和多维离群点

5.1 离群点检测方法

离群点检测方法方法描述方法评估
基于统计大部分基于统计的离群点检测方法是:构建一个概率分布模型,并计算对象符合该模型的概率,将具有低概率的对象视为离群点前提是:知道数据服从何种分布,对高维数据,检验效果很差
基于邻近度通常可在数据对象间定义邻近性度量,把远离大部分点的对象视为离群点

二维、三维的数据可做散点图观察,大数据不适用,对参数选择敏感,具有全局阙值,不能处理具有不同密度区域的数据集

基于密度考虑数据集可能存在不同密度区域,离群点是在低密度区域中的对象给出对象是离群点的定量度量,即使数据具有不同的区域很好处理,大数据集不适用,参数选择比较难
基于聚类一种利用聚类检测离群点的方法是:丢弃远离其他簇的小簇。首先聚类所有对象,然后评估对象属于簇的程度基于聚类技术来发现离群点可能死高度有效的,聚类算法产生的簇的质量对该算法产生的离群点的质量影响非常大

5.2 基于模型的离群点检测方法

5.3 基于聚类的离群点检测方法

  (1)丢弃远离其他簇的小簇,该过程可简化为丢弃小于某个最小阙值的所有簇。

  (2)基于原型的聚类,该过程首先聚类所有对象,然后评估对象属于簇的程度,可用对象到它的簇中心的距离来度量属于簇的程度。

      对于基于原型的聚类,有两种方法评估对象属于簇的程度(离群点得分)

      a:度量对象到簇原型的距离,并用它作为该对象的离群点得分

      b:考虑到簇具有不同的密度,可以度量簇到原型的相对距离,相对距离是点到质心的距离与簇中所有点到质心的距离的中位数之比。

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值