数据挖掘:从大量数据(包括文本)中挖掘出隐含的、未知的、对决策有潜在价值的关系、模式和趋势,并用这些知识和规则建立用于决策支持的模型,提供预测性决策支持的方法、工具和过程,就是数据挖掘。
分析能力的八个等级:
常规报表(发生什么事情)、即席查询(数量、频率、地点)、多维分析(问题出自哪里)、警报(采取什么行动)、统计分析(为什么发生)、预报(趋势继续下去会如何)、预测型建模(接下来会发生什么)、优化(可能的最好情况)
数据挖掘的基本任务:
包括利用分类与预测、聚类分析、关联规则、时序模式、偏差检测、智能推荐等方法,
分类与预测:有目标的对事物进行分类预测,
聚类分析:聚类分析是根据数据本身结构特征对数据点进行分类的方法。
关联规则:关联模式挖掘旨在从大量的数据当中发现特征或数据之间的相互依赖关系。
时序模式:基于事物发展的延续性和随机性预测事物未来的发展
数据挖掘建模过程:
1)定义挖掘目标:
分析应用领域,包括应用中的各种知识和应用目标,了解相关领域的有关情况,熟悉背景知识,弄清用户需求。
2)数据取样:
抽取数据的标准,一是相关性,二是可靠性,三是有效性,而不是动用全部企业数据,一定要严把质量关。因为数据挖掘是要探索企业运作的内在规律性,原始数据有误,就很难从中探索规律性。若从正在运行的系统中进行数据取样,更要注意数据的完整性和有效性。
数据抽样方法:
随机抽样:在采用随机抽样方式时,数据集中的每一组观测值都有相同的被抽样的概率。
等距抽样:如按 5%的比例对一个有100 组观测值的数据集进行等距抽样
分层抽样:在这种抽样操作时,首先将样本总体分成若干个子集。在每个层次中的观测值都具有相同的被选用的概率,但对不同的层次可设定不同的概率。
从起始顺序抽样:这种抽样方式是从输入数据集的起始处开始抽样。抽样的数量可以给定一个百分比,或者直接给定选取观测值的组数。
分类抽样:分类抽样则依据某种属性的取值来选择数据子集。,如按客户名称分类、按地址区域分类等。分类抽样的选取方式就是前面所述的几种方式,只是抽样以类为单位。
3)数据探索
数据探索和预处理的目的是为了保证样本数据的质量,从而为保证模型质量打下基础。
数据探索主要包括:异常值分析、缺失值分析、相关分析、周期性分析等。
4)数据预处理
由于采样数据中常常包含许多含有噪声、不完整、甚至不一致的数据,对数据挖掘所涉及的数据对象必须进行预处理,数据预处理主要包括:数据筛选、数据变量转换、缺失值处理、坏数据处理、数据标准化、主成分分析、属性选择、数据规约等。
5)挖掘建模
样本抽取完成并经预处理后,接下来要考虑的问题是:本次建模属于数据挖掘应用中的哪类问题(分类、聚类、关联规则、时序模式或是智能推荐)
6)模型评价
模型评价的目的之一就是从这些模型中自动找出一个最好的模型出来,另外就是要根据业务对模型进行解释和应用。
函数式编程(Functional programming)或者函数程序设计,又称泛函编程,是一种编程范型,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。简单来讲,函数式编程是一种“广播式”的编程,一般来说结合前面提到过的lambda定义函数,用于科学计算中,会显得特别简洁方便
数据质量分析:
数据质量分析是数据预处理的前提,是数据挖掘分析结论有效性和准确性的基础,其主要任务是检查原始数据中是否存在脏数据。
脏数据一般是指不符合要求,以及不能直接进行相应分析的数据,脏数据包括缺失值,异常值,不一致的值,重复数据集,含有特殊符号的数据。
缺失值产生的原因:
1.有些信息暂时无法获取,或者获取信息的代价太大。
2.有些信息是被遗漏的。
3.属性值不存在。
缺失值的影响:
1.数据挖掘建模将丢失大量的有用信息
2.数据挖掘模型所表现出的不确定性更加显著,模型中蕴涵的确定性成分更难把握
3.包含空值的数据会使挖掘建模过程陷入混乱,导致不可靠的输出
缺失值分析:
1.统计缺失值的变量个数;2.统计每个变量的未缺失数;3.统计变量的缺失数及缺失率。
异常值分析:
异常值分析是检验数据是否有录入错误以及含有不合常理的数据。重视异常值的出现,分析其产生的原因,常常成为发现问题进而改进决策的契机。
异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称为离群点,异常值的分析也称为离群点的分析。
异常值分析方法主要有:简单统计量分析原则、箱型图分析。
1)简单统计分析:
可以先做一个描述性统计,进而查看哪些数据是不合理的。需要的统计量主要是最大值和最小值,判断这个变量中的数据是
2) 原则:
3)箱型图分析:
一致性分析:
数据不一致性是指数据的矛盾性、不相容性。直接对不一致的数据进行挖掘,可能会产生与实际相违背的挖掘结果。
在数据挖掘过程中,不一致数据的产生主要发生在数据集成的过程中,可能是由于被挖掘数据是来自于从不同的数据源、重复存放的数据未能进行一致性地更新造成的
数据特征分析:
对数据进行质量分析以后,接下来就是对数据做特征分析。一般可通过绘制图表、计算某些特征量等手段进行数据的特征分析。
分布分析 :
能揭示数据的分布特征和分布类型,便于发现某些特大或特小的可疑值
遵循的主要原则有:各组之间相互排斥的、将所有的数据包含在内、组宽最好相等
对比分析:
对比分析是指把两个相互联系的指标数据进行比较,从数量上展示和说明研究对象各种关系是否协调。主要有以下两种形式:
第一种:绝对数比较,它是利用绝对数进行对比,从而寻找差异的一种方法。
第二种:相对数比较,它是由两个有联系的指标对比计算的,用以反映客观现象之间数量联系程度的综合指标,其数值表现为相对数。相对数可以分为以下几种:
1)结构相对数:将同一总体内的部分数值与全部数值对比求得比重
2)比例相对数:将同一总体内不同部分的数值对比,表明总体内各部分的比例关系,3) 3)比较相对数:将同一时期两个性质相同的指标数值对比
4)强度相对数:将两个性质不同但有一定联系的总量指标对比
5)计划完成程度相对数:是某一时期实际完成数与计划数对比
6)动态相对数:将同一现象在不同时期的指标数值对比
统计量分析
用统计指标对定量数据进行统计描述,常从集中趋势和离中趋势两个方面进行分析。
集中趋势度量主要有:均值、中位数、众数
离中趋势度量主要有:极差、标准差、变异系数
周期性分析周期性分析是探索某个变量是否随着时间变化而呈现出某种周期变化趋势。
贡献度分析贡献度分析又称帕累托分析,帕累托法则又称20/80定律。
相关性分析分析连续变量之间线性相关程度的强弱,并用统计指标表示出来的过程称为相关分析。方法主要有:直接绘制散点图、绘制散点图矩阵、计算相关系数
数据预处理:
在数据挖掘的过程中,数据预处理占到了整个过程的60%。
数据预处理的主要任务包括数据清洗,数据集成,数据变换和数据规约
数据清洗主要是删除原始数据集中的无关数据、重复数据,平滑噪声数据,处理缺失值、异常值等(处理缺失值的方法可分为三类:删除记录、数据插补和不处理)
插补方法:均值/中位数/众数插补 使用固定值 最近临插补 回归方法 插值法
数据插补法:插值方法有Hermite插值、分段插值、样条插值法,而最主要的有拉格朗日插值法和牛顿插值法
异常值处理:在数据预处理时,异常值是否剔除,需视具体情况而定,因为有些异常值可能蕴含着有用的信息
数据集成:
数据挖掘需要的数据往往分布在不同的数据源中,数据集成就是将多个数据源合并存放在一个一致的数据存储(如数据仓库)中的过程
在数据集成时,来自多个数据源的现实世界实体的表达形式是不一样的,不一定是匹配的,要考虑实体识别问题和属性冗余问题,从而把源数据在最低层上加以转换、提炼和集成。
实体识别的任务是检测和解决同名异义、异名同义、单位不统一的冲突。
冗余属性识别数据集成往往导致数据冗余,
数据变换:主要是对数据进行规范化的操作,将数据转换成“适当的”格式,以适用于挖掘任务及算法的需要。
步骤:简单函数变换、规范化、连续属性离散化、属性构造、小波变换
数据归约:数据规约是将海量数据进行规约,规约之后的数据仍接近于保持原数据的完整性,但数据量小得多。
数据规约特点:降低无效、错误数据对建模的影响,提高建模的准确性、少量且具代表性的数据将大幅缩减数据挖掘所需的时间、降低储存数据的成本。包括属性规约、数值规约。
KNN算法
他是监督学习中的一种分类算法。两种算法之间的根本区别是KNN属于监督学习类别,是已知的。通过对已知分类的数据进行训练和学习,找到这些不同类的特征,再对未分类的数据进行分类
KMeans,属于非监督学习,事先不知道数据会分为几类,通过聚类分析,将数据聚合成几个群体。聚类不需要对数据进行训练和学习。
KNN原理,KNN算法最简单粗暴的就是将预测点与所有点距离进行计算,然后保存并排序,选出前面k个值,看看哪些类别比较多,则预测点属于哪类。
KNN过程对未知类别属性的数据集中的每个点依次执行以下操作
1)计算已知类别数据集中的点与当前点之间的距离
2)按照距离递增次序排序
3)选取与当前距离最小的k个点
4)确定前k个点所在类别的出现频率
5)返回前k个点出现频率最高的类别作为当前点的预测分类
KMeans原理
KMeans算法的特点是类别的个数是人为给定的,如果让机器自己去找类别的个数,通过一次次重复这样的选择质心-计算距离和分类-再次选择质心的流程。直到我们分组之后,所有的数据都不会再变化了,也就得到了最终的聚合结果。
KMeans过程
1)随机选取k个质心,k只取决于你想聚成几类
2)计算样本到质心的距离,距离质心距离近的归为一类,分为k类
3)求出分类后的每类的质心(计算均值,成为新质心)
4)再次,计算样本到新质心的距离。距离质心距离近的归为一类
5)判断新旧聚类是否相同,如果相同就代表已经聚类成功,如果没有就循环2到4步骤直到相同。
挖掘建模:
根据挖掘目标和数据形式可以建立分类与预测、聚类分析、关联规则、时序模式、偏差检测、智能推荐等模型,帮助企业提取数据中蕴含的商业价值,提高企业的竞争力。
分类与预测:
分类主要是预测分类标号(离散、无序的),而预测主要是建立连续值函数模型,预测给定自变量的条件下因变量的值
分类算法有两步过程:
第一步是学习步,通过归纳分析训练样本集来建立分类模型得到分类规则;
第二步是分类步,先用已知的检验样本集评估分类规则的准确率,如果准确率是可以接受的,则使用该模型对未知类标号的待测样本集进行预测。
预测模型的实现也有两步,类似于分类模型。
第一步是通过训练集建立预测属性(数值型的)的函数模型
第二步是预测,模型通过检验后再进行预测或控制。
常用的分类与预测算法
- 回归分析:
回归分析是通过建立模型来研究变量之间相互关系的密切程度、结构状态及进行模型预测的一种有效工具
2.决策树
决策树是一树状结构,它的每一个树结点可以是叶节点,对应着某一类,也可以对应着一个划分,将该节点对应的样本集划分成若干个子集,每个子集对应一个节点。对一个分类问题,从已知类标记的训练元组学习并构造出决策树是一个从上至下,分而治之的过程。
3.人工神经网络
聚类分析:
与分类不同,聚类分析是在没有给定划分类别的情况下,根据数据相似度进行样本分组
与分类模型需要使用有类标记样本构成的训练数据不同,聚类模型是一种非监督的学习算法。
聚类的输入是一组未被标记的样本,聚类根据数据自身的距离或相似度将他们划分为若干组,
常用聚类方法:
划分方法:K-Means,K-Medoids,Clarans层次划分方法:Birch,Cure,Chameleon
基于密度:Dbscan,Denclue,Optics基于网格:Sting,Clioue,Wave-Cluster
基于模型:统计学,神经网络
关联规则:
关联规则分析是数据挖掘中最活跃的研究方法之一,目的是在一个数据集中找出各项之间的关联关系,而这种关系并没有在数据中直接表示出来
关联规则:支持度:support(A→B)=P(A∪B)
置信度:Confidence(A→B)=P(B|A)
时序模式
常用的时间序列模型
平滑法
趋势拟合法
组合模型(加法模型和乘法模型)
AR模型、MA模型、ARMA模型、ARIMA模型、ARCH模型、Garch模型及其衍生模型
时间序列预处理:
拿到一个观察值序列后,首先要对它的纯随机性和平稳性进行检验。这两个重要的检验称为序列的预处理。
1)纯随机序列
2)平稳非白噪声序列(ARMA模型)
3)非平稳序列(ARIMA模型)
如何检验平稳性:
图检验(根据时序图和自相关图的特征,做出判断的图检验)
单位根检验(单位根检验是指检验序列中是否存在单位根,因为存在单位根就是非平稳序时间序列了)
平稳时间序列的ARMA模型建模步骤
平稳白噪声序列 根据自相关系数(ACF和PACF)和偏自相关系数,选出合适模型
估计模型中未知参数的值 模型检验 模型优化 预测未来走势
非平稳时间序列分析
确定性因素分解的方法,把所有序列的变化都归结为四个因素,长期趋势,季节变动,循环变动和随机波动的综合影响。可以建立加法模型和乘法模型等
根据时间序列的不同特点,随机时序分析可以建立的模型,有arima模型,残差自回归模型,季节模型,异方差模型等
差分平稳时间序列的arima模型建模步骤:
获得观察值序列 平稳性检验(差分运算使其变平稳)白噪声检验(拟合ARMA模型)分析结果
离群点检测(偏差点检测)
发现与大部分其他对象显著不同的对象
离群点的成因
数据来源于不同的类,自然变异,数据测量和收集误差
离群点检测的应用
电信和信用卡的诈骗检测,贷款审批,电子商务中,网络入侵,天气预报,
如可以利用离群点检测分析运动员的统计数据,以发现异常的运动员
离群点检测方法:基于统计、基于邻近度、基于密度、基于聚类