Python数据分析与挖掘 | 挖掘建模

经过数据探索与数据预处理,得到了可以直接建模的数据。根据挖掘目标和数据形式可以建立模型,包括:分类与预测、聚类分析、关联规则、时序模式和偏差检测等。

分类与预测

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

分类

分类是构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的类别。分类模型建立在已有类标记的数据集上,模型在已有样本上的准确率可以方便的计算,所以分类属于有监督的学习。

分类算法分两步:第一步是学习,通过归纳分析训练样本集来建立分类模型得到分类规则;第二步是分类,先用已知的测试样本集评估分类规则的准确率,如果可以接受,则用该模型对未知标号的待测样本集进行预测。

预测

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

预测模型也分两步,第一步是通过训练集建立预测属性的函数模型;第二步在模型通过检验后进行预测或控制。

常用分类与预测算法

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


聚类分析

与分类不同,聚类分析是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法。与分类模型需要使用有类标记样本构成的训练数据不同,聚类模型可以建立在无类标记的数据上,是一种非监督的学习方法。

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

常用聚类方法

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

常用聚类分析算法

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


关联规则

关联规则分析是数据挖掘中最活跃的研究方法之一,目的是在一个数据集中找出各项之间的关联关系,而这种关系并没有在数据中直接表示出来。

比如一个常见的例子,在美国,一般都是男士下班后顺便去买尿布,而他们通常会顺带买啤酒,那么超市就把啤酒摆放在靠近婴儿尿布的位置,满足了客户的体验,更提高了业绩。就是通过大量的历史数据的分析,得到这两种商品之前的密切关联,因而做出上面的决策。

常用关联规则算法

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


时序模式

对于时间序列,首先要进行预处理,拿到一个观测值序列,首先要对它的纯随机性和平稳性进行检验。根据检验结果可以将序列分为不同的类型,对不同类型的序列会采取不同的分析方法。总的来说,时间序列分析,就是给定一个已被观测了的时间序列,预测该序列的未来值。

常用的时间序列模型有:平滑法、趋势拟合法、组合模式、AR模型、MA模型、ARMA模型、ARIMA模型等。



离群点检测

离群点检测是数据挖掘中重要的一部分,它的任务是发现与大部分其他对象显著不同的对象。大部分数据挖掘方法都将这种差异信息视为噪声而丢弃,然而在一些应用中,罕见的数据可能蕴含着更大的研究价值。因为离群点的属性值明显偏离期望的或常见的属性值,所以离群点检测也称偏差检测。

离群点检测已经被广泛应用于电信和信用卡的诈骗检测、贷款审批、电子商务、网络入侵和天气预报等领域。

离群点分类

  • 数据范围:全局离群点和局部离群点

从整体来看,某些对象没有离群特征,但是从局部来看,却显示了一定的离群性。

  • 数据类型:数值型离群点和分类型离群点

这是以数据集的属性类型进行划分的。

  • 属性个数:一维离群点和多维离群点

一个对象可能有一个或多个属性。

离群点检测方法

离群点检测方法 方法描述
基于统计 大部分的基于统计的离群点检测方法是构建一个概率分布模型,并计算对象符合该模型的概率,把具有低概率的对象视为离群点
基于邻近度 通常可以在数据对象之间定义邻近性度量,把远离大部分点的对象视为离群点
基于密度 考虑数据集可能存在不同密度区域这一事实,从基于密度的观点分析,离群点是在低密度区域中的对象。一个对象的离群点得分是该对象周围密度的逆
基于聚类 一种利用聚类检测离群点的方法是丢弃远离其他簇的小簇;另一种更系统的方法,首先聚类所有对象,然后评估对象属于簇的程度

学习来源

你可能感兴趣的:(Python数据分析与挖掘 | 挖掘建模)