数据挖掘
四种主要技术激发了人们对数据挖掘研究的兴趣:
超大规模数据库的出现,先进的计算机技术、对海量数据的快速访问、统计方法在数据处理领域应用的不断深入
数据挖掘定义:
技术层面:数据挖掘就是从大量数据中,提取潜在有用的信息和知识的过程。
商业层面:数据挖掘就是一种商业信息处理技术,其主要特点是对大量业务数据进行抽取、转换、分析和建模处理,从中提取辅助商业决策的关键性数据。
数据挖掘与传统数据分析方法:
本质区别:数据挖掘是在没有明确假设的前提下去挖掘信息、发现知识。
数据挖掘所得到的信息应具有先前未知、有效和实用三个特征。其主要目标就是提高决策能力,能在过去的经验基础上预言未来趋势等。
数据挖掘对象:
(1) 关系数据库
(2) 数据仓库
(3)事务数据库
(4)空间数据库(Spatial Database)
(5)时态数据库和时间序列数据库
(6)流数据
(7) 多媒体数据库
(8) 文本数据(Text Database )
(9) 万维网数据(Word Wide Web Data)
数据挖掘任务:
预测任务:根据其它属性的值预测特定属性的值,如分类、回归、离群点检测。
描述任务:寻找概括数据中潜在联系的模式,如聚类分析、关联分析、演化分析、序列模式挖掘 。
(1) 分类(Classification)分析
分类分析,通过分析示例数据库中的数据为每个类别做出准确的描述或建立分析模型或挖掘出分类规则,然后用此分类规则对其它数据库中的记录进行分类。
分类分析广泛应用于用户行为分析(受众分析)、风险分析、生物科学等
2) 聚类(Clustering)分析
“物以类聚,人以群分”。聚类分析技术试图找出数据集中的共性和差异,并将具有共性的对象聚合在相应的类中。聚类可以帮助决定哪些组合更有意义,广泛应用于客户细分、定向营销、信息检索等等。
聚类与分类的主要区别
聚类与分类是容易混淆的两个概念,聚类是一种无指导的观察式学习,没有预先定义的类。而分类问题是有指导的示例式学习,预先定义有类。分类是训练样本包含有分类属性值,而聚类则是在训练样本中找到这些分类属性值。
(3) 回归(Regression )分析
回归分析是确定两种或两种以上变数间相互依赖的定量关系的一种分析方法。其可应用于风险分析、作文自动评分等领域。
(4) 关联(Association)分析
关联分析,发现特征之间的相互依赖关系,通常是从给定的数据集中发现频繁出现的模式知识(又称为关联规则)。关联分析广泛用于市场营销、事务分析等领域。
(5) 离群点(Outlier)检测
离群点检测就是发现与众不同的数据。 可应用于商业欺诈行为的自动检测,网络入侵检测,金融欺诈检测,反洗钱,犯罪嫌疑人调查,海关、税务稽查等。
(6) 演化(Evolving)分析
演化分析就是对随时间变化的数据对象的变化规律和趋势进行建模描述。如商品销售的周期(季节)性分析
(7) 序列模式(Sequential Pattern)挖掘
序列模式挖掘是指分析数据间的前后序列关系,包括相似模式发现、周期模式发现等。其应用领域包括客户购买行为模式预测、Web访问模式预测、疾病诊断、网络入侵检测等。
数据挖掘过程:
知识发现(Knowledge Discovery in Database,KDD)是从数据中发现有用知识的整个过程,这个过程定义为:从数据中鉴别出有效模式的非平凡过程,该模式是新的、可能有用的和最终可理解的。
知识发现的主要步骤:
数据清洗(data clearning)。其作用是清除数据噪声和与挖掘主题明显无关的数据。
数据集成(data integration)。其作用是将来自多数据源中的相关数据组合到一起。
数据转换(data transformation)。其作用是将数据转换为易于进行数据挖掘的数据存储形式。
数据挖掘(data mining)。其作用是利用智能方法挖掘数据模式或规律知识。
模式评估(pattern evaluation)。其作用是根据一定评估标准从挖掘结果筛选出有意义的相关知识。
知识表示(knowledge presentation)。其作用是利用可视化和知识表达技术,向用户展示所挖掘的相关知识。
从商业的角度看,数据挖掘过程可分为三个阶段
数据收集:数据收集容易且不引人注意,但却是数据挖掘的基础。知识是从海量数据里提取出来的,因此要挖掘知识必须得收集一定量的数据。收集到的原始数据一般存在缺失值、错误值等问题,不能直接用作知识提取的数据源,需要进行数据预处理。
知识提取:基于经过预处理的数据,使用各种数据挖掘方法(如分类、聚类、关联分析等)进行知识提取,这是数据挖掘的核心部分。
知识辅助决策:数据挖掘技术已被广泛地应用于各领域,其提取出来的知识可以很好地辅助决策者做出良好的决策
数据挖掘软件:
比较著名的商用数据挖掘软件有IBM SPSS Modeler、SAS Enterprise Miner 、Orange、Rattle、Oracle Data Mining、KNIME等,它们都能够提供常规的挖掘过程和挖掘模式 。
Matlab、Python、Excel (Data mining in Excel: XLMiner)等提供了数据挖掘模块。
开源数据挖掘工具有Weka、RapidMiner(YALE)、 Apache Mahout、ARMiner以及AlphaMiner等。
数据挖掘应用:
金融保险业(Credit Scoring;Insurance Evaluation)
电信(Detecting telephone fraud)
市场营销分析(Marketing Analysis)
医学( Detecting inappropriate medical treatment)
体育(IBM Advanced Scout analyzed NBA game statistics)
生物信息学(Bioinformatics)等
这里主要介绍在商业领域和计算机领域的应用。
商业智能的核心即数据挖掘,能解决的典型商业问题包括:
数据库营销(Database Marketing)
客户群体划分(Customer Segmentation & Classification)
客户背景分析(Profile Analysis)
交叉销售(Cross-selling)
客户流失性分析(Churn Analysis)
客户信用记分(Credit Scoring)
欺诈检测(Fraud Detection)
数据挖掘在商业领域中的主要应用
(1) 电子商务
(2) 公司分析和风险管理
(3) 市场分析和管理
(4) 企业危机管理
(5) 欺诈行为检测和异常模式的发现
数据挖掘在计算机领域中的应用:
(1) 信息安全:入侵检测,垃圾邮件的过滤
(2) 互联网信息挖掘
(3) 自动问答系统
(4)网络游戏:网络游戏外挂检测、免费用户到付费用户的转化
第二章 数据处理基础
数据类型
相关概念
数据:
狭义:数字 。
广义:数据对象及其属性的集合,其表现形式可以是数字、符号、文字、图像抑或是计算机代码等等。
属性:(也称为特征、维或字段),是指一个对象的某方面性质或特性。一个对象通过若干属性来刻画。
数据集:数据对象的集合(同分布、同特征)
据集的特性:
维度(Dimensionality):指数据集中的对象具有的属性个数总和;维归约。
稀疏性(Sparsity):指在某些数据集中,有意义的数据非常少,对象在大部分属性上的取值为0;非零项不到1%。
文本数据集
分辨率(Resolution):不同分辨率下数据的性质不同
数据集的类别
记录数据:事务数据或购物篮数据、数据矩阵、文本数据
基于图形的数据:万维网、化合物结构
有序数据:时序数据、序列数据、时间序列数据、空间数据、流数据
数据统计特征:
数据统计又称为汇总统计,用单个数或数的小集合来捕获大的数据集的各种属性特征。通常需要数据的中心趋势和离散程度特征。
中心趋势度量包括均值(mean)、中位数(median)、众数(mode)和中列数(midrange),而数据离散程度度量包括四分位数(quartiles)、四分位数极差(InterQuartiles Range, IQR)和方差(variance)等
数据预处理:
数据挖掘的目的是在大量的、潜在有用的数据中挖掘出有用的模式或信息,挖掘的效果直接受到源数据质量的影响。
高质量的数据是进行有效挖掘的前提,高质量的决定必须建立在高质量的数据上。
数据预处理的主要任务:
数据清理
填写空缺数据,平滑噪声数据,识别、删除孤立点,解决不一致性
数据集成
集成多个数据库,数据立方体或文件
数据变换
规范化和特征构造
数据归约
得到数据集的压缩表示及特征选择
数据离散化
通过概念分层和数据离散化来规约数据,对数值数据特别重要
数据清理——缺失值
数据清理——缺失值的处理方法
忽略元组:当缺少类标号时通常这样处理(在分类任务中)。除非同一记录中有多个属性缺失值,否则该方法不是很有效。
忽略属性列:如果该属性的缺失值太多,如超过80%,则在整个数据集中忽略该属性。
人工填写缺失值:通常情况下,该方法费时费力,并且当数据集很大或缺少很多值时,该方法可能行不通。
自动填充缺失值:有三种不同的策略。
策略一:使用一个全局常量填充缺失值,将缺失的属性值用同一个常数替换。
策略二:使用与给定记录属同一类的所有样本的均值或众数填充缺省值。
策略三:用可能值来代替缺失值:可以用回归、基于推理的工具或决策树归纳确定。
数据清理——噪声数据的平滑方法:
噪声是测量变量的随机错误或偏差。噪声是测量误差的随机部分,包含错误或孤立点值。
导致噪声产生的原因有:
数据收集的设备故障
数据录入过程中人的疏忽
数据传输过程中的错误
目前噪声数据的平滑方法包括:
分箱:分箱方法通过考察“邻居”(即周围的值)来平滑有序数据的值。
聚类:聚类将类似的值组织成群或“簇”。
回归:让数据适合一个函数来平滑数据。
数据集成:
将两个或多个数据源中的数据,存放在一个一致的数据存储设备中。
在数据集成时,有许多问题需要考虑,数据一致性和冗余是两个重要问题。
不同表中可能使用不同名称来指示同一属性,正如一个人有多个不同的别名或不同的人拥有相同的名字,这样将导致数据的不一致或冲突。
一个属性是冗余的,如果它能由另一个表“导出”;属性或维命名的不一致也可能导致数据集中的冗余。
数据变换:
平滑:去除数据中的噪声数据
聚集:汇总,数据立方体的构建
数据概化:沿概念分层高上汇总
规范化:将数据按比例缩放,使之落入一个小的特定区间(消除量纲的影响)
最小-最大规范化
Z-score规范化
小数定标规范化
属性构造
通过现有属性构造新的属性,并添加到数据集中
数据变换——规范化
数据变换——特征构造
特征提取(Feature Extraction):由原始数据创建新的特征集,映射数据到新的空间,从不同视角提示重要和有趣的特征
傅里叶变换(Fourier Transform)
小波变换(Wavelet Transform)
特征构造
由一个或多个原始特征共同构造新的特征
数据变换——离散化与概念分层
离散化
通过将属性域划分为区间,减少给定连续属性值的个数。区间标号可以代替实际的数据值。
概念分层
通过使用高层的概念(比如:老年,中年,青年)来替代底层的属性值(比如:实际的年龄数据值)来规约数据
概念分层可以用树来表示,树的每一个节点代表一个概念(比如:按地区划分世界)
数据归约:从记录和维度两个方面减少数据量
维归约
维度(数据特征的数目)归约是指通过使用数据编码或变换,得到原始数据的归约或“压缩”表示。
如果原始数据可以由压缩数据重新构造而不丢失任何信息,则该数据归约是无损的。
如果只能重新构造原始数据的近似表示,则该数据归约是有损的。
维规约的好处
如果维度较低,许多数据挖掘算法效果会更好。
维归约使模型涉及更少的特征,因而可以产生更容易理解的模型。
使用维归约可以降低数据挖掘算法的时间和空间复杂度。
数据归约——抽样:
抽样是一种选择数据对象子集进行分析的常用方法
事先调查和最终的数据分析
统计学使用抽样是因为得到感兴趣的整个数据集的费用太高、太费时间
数据挖掘使用抽样是因处理所有的数据的费用太高、太费时间
如果样本是有代表性的,则使用样本与使用整个数据集的效果几乎一样
如果数据对象的均值是感兴趣的性质,而样本具有近似于原数据集的均值,则样本是有代表性的
抽样是一个统计过程,特定样本的代表性是变化的
用数据较小的随机样本表示大的数据集
简单随机抽样
无放回抽样
随着每个项被抽出,它被从构成总体的所有对象集中删除
有放回的抽样
对象被选中时不从总体中删除
分层抽样
特点
总体由不同类别的对象组成
每种类型的对象数量差别很大
先对数据集进行分组:数据集D被划分为互不相交的“层”,则可通过对每一层按一定比例简单随机选样得到D的分层选样
利用聚类实现分层抽样:将数据集D划分成m个不相交的簇,再在聚类结果的簇上进行简单随机抽样
数据归约——特征选择
特征选择
概念:从一组已知特征集合中选择最具代表性的特征子集,使其保留原有数据的大部分信息,即所选特征子集可以像原来的特征全集一样用来正确区分数据集的每个数据对象。通过特征选择,一些和任务无关或是冗余的特征被删除,从而提高数据处理的效率。
目的:去除不相关和冗余的特征,降低时间空间复杂度,提高数据质量及数据泛化能力。
理想的特征子集:每个有价值的非目标特征与目标特征强相关,而非目标特征之间不相关或是弱相关
基本步骤:
去掉与目标特征不相关的特征
删除冗余特征
特征选择:通过删除不相干的属性或维减少数据量
属性子集选择
找出最小属性集,使得数据类的概率分布尽可能的接近使用所有属性的原分布
减少出现在发现模式上的属性的数目,使得模式更易于理解
启发式(探索式)搜索方法
逐步向前选择
逐步向后删除
向前选择和向后删除相结合
判定归纳树
特征选择的分类:
根据有无类信息的指导可以将特征选择分为
有监督(有指导)的
无监督(无指导)的
半监督的:少数样本有类标号
根据特征或特征子集评价准则差异
Filter(过滤式) :根据数据的内在特性,对选取的特征子集进行评价,独立于学习算法。该类算法运行效率高,适用于大规模数据集
Wrapper(封装式):将后续学习的结果作为特征子集评价准则的一部分。该类算法效果好,但效率低
数据归约——数据压缩:
数据压缩——用数据编码或者变换,得到原始数据的压缩表示。
有损压缩 VS. 无损压缩
无损(loseless)压缩:可以不丢失任何信息地还原压缩数据
例如:字符串压缩
有广泛的理论基础和精妙的算法
在解压缩前对字符串的操作非常有限
有损(lossy)压缩:只能重新构造原数据的近似表示
例如:音频/视频压缩
有时可以在不解压整体数据的情况下,重构某个片断
两种有损数据压缩的方法:小波变换和主成分分析
相似性度量:
相似度:两个对象相似程度的数值度量,两对象越相似,它们的相似度就越高。相异度与相似度相反。
连续属性之间的相关度:线性相关系数、余弦相似度
数据对象之间的相异度:马氏距离、
第三章 分类与回归
分类的定义:分类是数据挖掘中的一种主要分析手段,分类的任务是对数据集进行学习并构造一个拥有预测功能的分类模型,用于预测未知样本的类标号。
分类与回归的区别:分类和回归都有预测的功能,但是:分类预测的输出为离散或标称的属性;回归预测的输出为连续属性值;
分类的过程描述如下:
1)首先将数据集划分为2部分:训练集和测试集。
2) 第一步:对训练集学习,构建分类模型。
模型可以是决策树或分类规则等形式。
3) 第二步:用建好的分类模型对测试集分类
评估该分类模型的分类准确度及其它性能。
4)最后,使用分类准确度高的分类模型对类标号未知的未来样本数据进行分类。
分类与聚类的区别:
分类,使用了类标号属性,属于有监督的学习方法
聚类,事先没有使用任何类标号信息,属于无监督的学习方法
分类模型的学习方法大体上主要有以下几类 :
基于决策树的分类方法
贝叶斯分类方法
K-最近邻分类方法
神经网络方法
支持向量机方法
集成学习方法
回归分析:回归分析可以对预测变量和响应变量之间的联系建模。回归分析包括:线性回归、非线性回归以及逻辑回归等
决策树(Decision Tree)是一种树型结构,包括:决策节点(内部节点)、分支和叶节点三个部分。
决策节点代表某个测试,通常对应于待分类对象的某个属性,在该属性上的不同测试结果对应一个分支。
叶节点存放某个类标号值,表示一种可能的分类结果。
分支表示某个决策节点的不同取值。
决策树可以用来对未知样本进行分类,分类过程如下:从决策树的根节点开始,从上往下沿着某个分支往下搜索,直到叶结点,以叶结点的类标号值作为该未知样本所属类标号。
决策树在构建过程中需重点解决2个问题:
(1)如何选择合适的属性作为决策树的节点去划分训练样本;
(2)如何在适当位置停止划分过程,从而得到大小合适的决策树。
虽然可以采用任何一个属性对数据集进行划分,但最后形成的决策树会差异很大。需要寻找合适的属性选择方法。
属性选择是决策树算法中重要的步骤,常见的属性选择标准包括信息增益(information gain)和Gini系数。
信息增益是决策树常用的分枝准则,在树的每个结点上选择具有最高信息增益的属性作为当前结点的划分属性。
Gini系数是一种不纯度函数,用来度量数据集的数据关于类的纯度。
决策树学习的目的是希望生成能够揭示数据集结构并且预测能力强的一棵树,在树完全生长的时候有可能预测能力反而降低,为此通常需要获得大小合适的树。
一般来说有两种获取方法:
一种为定义树的停止生长条件,常见条件包括最小划分实例数、划分阈值和最大树深度等。
另一种方法是对完全生长决策树进行剪枝,方法是对决策树的子树进行评估,若去掉该子树后整个决策树表现更好,则该子树将被剪枝。
决策树构建的经典算法:Hunt算法是许多经典决策树算法如ID3、C4.5的基础,ID3分类算法、CART算法
熵(entropy,也称信息熵)用来度量一个属性的信息量。
熵越小表示样本对目标属性的分布越纯,反之熵越大表示样本对目标属性分布越混乱。
贝叶斯分类方法:
贝叶斯分类方法是一种基于统计的学习方法。是一种利用概率统计知识进行学习分类的方法。
主要算法有:朴素贝叶斯分类算法,贝叶斯信念网络分类算法等。朴素贝叶斯分类算法和贝叶斯信念网络分类算法都是建立在贝叶斯定理基础上的算法
贝叶斯定理:假定X为类标号未知的一个数据样本,H为样本X属于类别C的一个假设
分类问题就是计算概率P(H|X) 的问题,即给定观察样本X下假设H成立的概率有多大。
P(H)表示假设H的先验概率(prior probability)。
P(X)表示样本数据X的先验概率。
P(H|X)表示在条件X下,假设H的后验概率(posterior probability)。
P(X|H)表示在给定假设H的前提条件下,样本X的后验概率
朴素贝叶斯分类算法的优点在于:容易实现;在大多数情况下所获得的结果比较好。
缺点:算法成立的前提是假设各属性之间互相独立。当数据集满足这种独立性假设时,分类准确度较高。而实际领域中,数据集可能并不完全满足独立性假设
K-最近邻分类方法:是一种基于实例的学习算法,它不需要先使用训练样本进行分类器的设计,而是直接用训练集对数据样本进行分类,确定其类别标号。
K-最近邻算法的基本思想是:
对于未知类标号的样本,按照欧几里得距离找出它在训练集中的k个最近邻,将未知样本赋予k最近邻中出现次数最多的类别号。
神经网络分类方法:
神经网络(Neural Network)是模拟人脑思维方式的数学模型,它是在现代生物学研究人脑组织成果的基础上提出的,用来模拟人类大脑神经网络的结构和行为。
神经网络模型性能主要由以下因素决定:
(1)神经元(信息处理单元)的特性;
(2)神经元之间相互连接的形式—拓扑结构;
(3)为适应环境而改善性能的学习规则。
典型的有感知器模型、多层前向传播网络、BP模型、Hopfield网络、ART网络、SOM自组织网络、学习矢量量化(LVQ)网络、Blotzman机网络等
感知器神经网络是一个具有单层计算神经元的神经网络,网络的传递函数是线性阈值单元。原始的感知器神经网络只有一个神经元,因此只能输出两个值,适合简单的模式分类问题
BP模型也称反向传播模型,是一种用于前向多层的反向传播学习算法
学习方法:可以对组成前向多层网络的各人工神经元之间的连接权值进行不断的修改,从而使该前向多层网络能够将输入信息变换成所期望的输出信息。
反向学习算法:在修改各人工神经元的连接权值时,所依据的是该网络的实际输出与其期望输出之差,将这一差值反向一层一层地向回传播,来决定连接权值的修改。
优点:理论基础牢固,推导过程严谨,物理概念清晰,通用性好等。所以,它是目前用来训练前向多层网络较好的算法。
缺点:
1)学习算法的收敛速度慢;
2)网络中隐含节点个数的选取尚无理论上的指导;
3)从数学角度看,BP算法是一种梯度最速下降法,这就可能出现局部极小的问题。所以BP算法是不完备的。
支持向量机:支持向量机(Support Vector Machine)分类器的特点是能够同时最小化经验误差与最大化几何边缘区。因此支持向量机也被称为最大边缘区分类器。
支持向量机将向量映射到一个更高维的空间,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。平行超平面间的距离或差距越大,分类器的总误差越小。
目前,用SVM构造分类器来处理海量数据面临以下两个困难:
1)SVM算法对大规模训练样本难以实施
2)用SVM解决多分类问题存在困难
集成学习方法:
集成学习法(Ensemble learning)通过将多个分类学习方法聚集在一起来提高分类准确率。
通常一个集成分类器的分类性能会好于单个分类器。集成学习法由训练数据构建一组基分类器(base classifier),然后通过对每个基分类器的预测进行投票来进行分类。
在构建分类器的过程中,一般有两种集成方法:
一种是使用训练集的不同子集训练得到不同的基分类器。
另一种方法是使用同一个训练集的不同属性子集训练得到不同的基分类器。
已有构建集成分类器的方法主要包括:装袋(bagging);提升(boosting);AdaBoost算法
装袋(Bagging):装袋又称自助聚集,是一种根据均匀概率分布从数据中重复抽样(有放回)的技术。
每个自助样本集都和原数据集一样大。由于抽样过程是有放回的,因此一些样本可能在同一个训练集中出现多次,而其它一些却可能被忽略。在每一个抽样生成的自助样本集上训练一个基分类器,对训练过的k个基分类器投票,将测试样本指派到得票最高的类。
提升(Boosting):提升是一个迭代的过程,用于自适应地改变训练样本的分布,使得基分类器聚焦在那些很难分的样本上。不像装袋,提升给每一个训练样本赋予一个权值,而且可以在每一轮提升过程结束时自动地调整权值。训练样本的权值可以用于以下方面:
(1)可以用作抽样分布,从原始数据集中提取出自主样本集;
(2)基分类器可以使用权值学习有利于高权值样本的模型;
AdaBoost算法是对提升算法的一个具体实现。
不平衡数据分类:是指在同一数据集中某些类的样本数远大于其它类的样本数,其中样本少的类为少数类(以下称为正类) ,样本多的类为多数类(以下称为负类)。具有不平衡类分布的数据集出现在许多实际应用中,很多重要信息隐藏在少数类中。
精度和召回率是评价不平衡数据分类模型的两个常用度量。可以构造一个基线模型,它最大化其中一个度量而不管另一个。
分类准确度:分类模型的性能常根据模型正确预测和错误预测的检验记录的百分比来进行评估。方法是建立一个混合矩阵,根据混合矩阵来计算分类模型的分类准确率和分类差错率。
通常分类算法寻找的是分类准确率高的分类模型。分类准确度在一般情况下已经满足分类器模型的比较。
但是,分类准确度:
①默认所有数据集都是平衡数据集,但很多数据集是不平衡的,即不同类的样本分布不平均。
②默认所有的错误代价都是相同的,这在实际领域中往往不可行。
ROC曲线的优点:
与分类准确度评估方法相比,ROC曲线分析方法具有以下优点:
1) 充分利用了预测得到的概率值。
2) 给出不同类的不同分布情况差别,即当是不平衡数据时,不同的数据分布,将得到不同的分类结果,而准确率评估则默认所有的数据集都是平衡数据集。
3) 考虑了不同种类错误分类代价的不同。
4) 二类分类的ROC曲线通过斜率反映了正例和反例之间的重要关系,同时也反映出类的分布和代价之间的关系。
5) 可以使分类器的评估结果用曲线的形式更直观地展示在二维空间中。
分类模型性能评价指标
分类准确率
计算复杂度
可解释性
可伸缩性
稳定性
鲁棒性
分类模型的过分拟合:分类模型的误差大致分为两种,训练误差(training error)和泛化误差(generalization error)。
训练误差是在训练记录上错误预测分类样本的比例,泛化误差是模型在未知样本上的期望误差。
我们对分类算法的要求是,其建立的分类模型应该具有低训练误差和低泛化误差。
模型的过分拟合是指对训练数据拟合太好,即训练误差很低,但泛化误差很高,这将导致对分类模型未知记录分类的误差较高。
评估分类模型性能的方法:
为了使分类结果更好地反映数据的分布特征,已经提出许多评估分类准确率的方法,评估准确率的常用技术包括:
保持、随机子抽样、交叉验证和自助法等。它们都是基于给定数据的随机抽样划分来评估准确率的技术。
回归:回归是Frances Galton提出的一种统计方法。回归分析可以对预测变量和响应变量之间的联系建模。
当响应变量和所有预测变量都是连续值时,回归分析是一个好的选择。许多问题可以用线性回归解决,而且很多问题可以通过对变量进行变换,将非线性问题转换为线性问题来处理。
线性回归:
一元线性回归:一元线性回归分析涉及到一个响应变量y和一个预测变量x,它是最简单的回归形式,并用x的线性函数对y建模。
多元线性回归:多元线性回归是单元线性回归的扩展,涉及多个预测变量。它允许响应变量y用描述样本X的n个预测变量或属性A1,A2,…,An的线性函数建模
非线性回归:对于有些模型,响应变量y对预测变量x不是线性的,可以通过变换将非线性回归转为线性回归来处理
逻辑回归:逻辑回归拓展了多元线性回归的思想,处理因变量y是二值的情形(为简单起见,我们通常用0和1对这些值进行编码),自变量x1,x2……xm可以是分类变量、连续变量或者二者的混合类型
聚类(Clustering):是将数据集划分为若干相似对象组成的多个组(group)或簇(cluster)的过程,使得同一组中对象间的相似度最大化,不同组中对象间的相似度最小化。或者说一个簇(cluster)就是由彼此相似的一组对象所构成的集合,不同簇中的对象通常不相似或相似度很低。
从机器学习的角度看,聚类是一种无监督的机器学习方法,即事先对数据集的分布没有任何的了解,它是将物理或抽象对象的集合组成为由类似的对象组成的多个类的过程。
聚类方法的目的是寻找数据中:潜在的自然分组结构和感兴趣的关系。
聚类分析中“簇”的特征:
聚类所说的簇不是事先给定的,而是根据数据的相似性和距离来划分
聚类的数目和结构都没有事先假定
聚类分析研究的主要内容:
(1) 模式表示(包括特征提取和/或选择);
(2) 适合于数据领域的模式相似性定义;
(3) 聚类或划分算法;
(4) 数据摘要;
(5) 输出结果的评估。
数据挖掘对聚类算法的要求:
(1)可伸缩性(Scalability)
(2)处理不同类型属性的能力
(3)发现任意形状的聚类
(4)用于决定输入参数的领域知识最小化
(5)对于输入记录顺序不敏感
(6)高维性
(7)处理噪音和异常数据的能力
(8)基于约束的聚类
(9)可解释性
典型聚类方法简介:
基于划分的聚类算法:
给定一个 n 个对象或元组的数据库,一个划分方法构建数据的k个划分,每个划分表示一个聚类,并且k<=n。也就是说,它将数据划分为k个组,同时满足如下的要求:
(1)每个组至少包含一个对象;
(2)每个对象必须属于且只属于一个组。
划分式聚类算法需要预先指定簇数目或簇中心,通过反复迭代运算,逐步降低目标函数的误差值,当目标函数值收敛时,得到最终聚类结果。这类方法分为基于质心的(Centroid-based)划分方法和基于中心的(Medoid-based)划分方法。
层次聚类算法:BIRCH算法、CF树、 CURE算法、ROCK算法
自下而上聚合层次聚类方法(或凝聚层次聚类)。这种自下而上策略就是最初将每个对象(自身)作为一个簇,然后将这些簇进行聚合以构造越来越大的簇,直到所有对象均聚合为一个簇,或满足一定终止条件为止。绝大多数层次聚类方法属于这一类,只是簇间相似度的定义有所不同。
自顶向下分解层次聚类方法(或分裂层次聚类)。这种策略的作法与自下而上策略的作法相反。它首先将所有对象看成一个簇的内容,将其不断分解以使其变成越来越小但个数越来越多的小簇,直到所有对象均独自构成一个簇,或满足一定终止条件为止。
基于密度的聚类算法:通常将簇看作是数据空间中被低密度区域(代表噪声)分割开的稠密对象区域。基于密度的方法典型的包括:DBSCAN (Density-Based Spatial Clustering of Applications with Noise)、OPTICS(Ordering Points to Identify the Clustering Structure)
基于图的聚类算法:
Chameleon聚类算法:利用动态模型的层次聚类算法,Chameleon算法是一种基于图的层次聚类算法,该算法利用基于图的方法得到的初始数据划分与一种新颖的层次聚类方案相结合,使用簇间的接近性和互连性概念以及簇的局部建模来高质量地发现具有不同形状、大小和密度的簇
基于SNN密度的聚类算法:SNN,即共享最近邻 (Shared Nearest Neighbor, SNN), SNN相似度旨在解决低相似度和不同密度两个问题。当两个对象都在对方的最近邻列表中,SNN相似度就是它们共享的近邻个数。
一趟聚类算法:基于最小距离原则的聚类算法CABMDP (Clustering Algorithm Based on Minimal Distance Principle)采用摘要信息CSI表示一个簇,将数据集分割为半径几乎相同的超球体(簇)
基于模型的聚类算法:
基于模型的聚类方法试图将给定数据与某个数学模型达成最佳拟合。此类方法经常是基于数据都有一个内在的混合概率分布假设来进行的。
主要包括:期望最大化方法、概念聚类、自组织神经网络方法
期望最大化EM(Expectation Maximization)算法是一种流行的迭代求精算法,EM不是把每个对象指派到特定的簇,而是根据一个代表隶属概率的权重将每个对象指派到簇。
概念聚类是一种机器学习聚类方法,给定一组未标记的对象,产生对象的分类模式。与传统的聚类不同,概念聚类除了确定相似的对象分组外,还找出每组对象的特征描述,其中每组对象代表一个概念或类。因此,概念聚类是一个两步的过程:首先进行聚类,然后给出特征描述。COBWEB是一个常用的且简单的增量式概念聚类方法。它的输入对象是采用符号值对(属性-值)来加以描述的。COBWEB方法采用分类树的形式来创建一个层次聚类。
SOM采用WTA(Winner Takes All)竞争学习算法,其聚类过程通过若干单元对当前单元的竞争来完成,与当前单元权值向量最接近的单元成为赢家或获胜单元,获胜神经元不但加强自身,且加强周围邻近神经元,同时抑制距离较远的神经元。SOM可以在不知道输入数据任何信息结构的情况下,学习到输入数据的统计特征。
聚类算法评价:
内部质量评价准则(internal quality measures)
通过计算簇内部平均相似度、簇间平均相似度或整体相似度来评价聚类效果,这类指标常用的包括DB 指标,Dunn 指标, I 指标,CH 指标,Xie-Beni指标等。
外部质量评价准则(external quality measures)
基于一个已经存在的人工分类数据集(已经知道每个对象的类别)进行评价
CH 指标计算簇间距离和簇内距离的比值, CH 值越大,聚类效果越好。
I 指标:使聚类有效性函数I(k)最大的k值, 就是最优的簇个数。
Xie-Beni指标
Davies-Bouldin 指标:使DB最小化的类别数k被认为是最优类别数
Dunn 指标:使Vd取值大的类别数k,即为最佳类别数
Boley提出采用聚类熵(cluster entropy)作为外部质量的评价准则,考
虑簇中不同类别数据的分布。整体聚类熵定义为所有聚类熵的加权平均值:聚类熵越小,聚类效果越好。
评估聚类结果质量的另一外部质量评价准则——聚类精度,基本出发点是使用簇中数目最多的类别作为该簇的类别标记。
第五章 关联分析
项集:一个或多个项的集合
例子: {Diaper, Beer}
k-项集:包含k个项的项集
支持度计数 (support count):给定项集的出现次数。例如: ({Diaper, Beer} ) = 2
支持度 (support):覆盖给定项集的事务数占所有事务数的比例。例如: s({Diaper, Beer}) = 3/4 = 75%
频繁项集:支持度大于等于给定阈值 minsup 的项集。
关联规则:形式为 X→Y 的蕴含表达式,其中X 和Y是项集。例子: {Diaper} →{Beer}
规则评估度量:支持度 (s),例如:s(X→Y) = s(X∪Y) / |T|,包含X和Y的事务个数占所有事务个数的比例
置信度 :(c),c(X → Y) = sα(X∪Y) / α(X):在包含X的事务集合中,包含Y的事务个数占事务总数的比例
关联规则挖掘任务:给定一个事务集合T,关联规则挖掘的目标是寻找所有满足下面条件的规则:支持度 ≥ minsup(支持度阈值)、置信度 ≥ minconf(置信度阈值)
频繁项集的产生:
Brute-force(蛮力)方法:
在项集格中的每个项集都是一个候选频繁项集
扫描事务数据库计算每个候选频繁项集的支持度
将每个事务与每个候选频繁项集匹配
比较次数 ~ O(NMw) => 代价极高,因为M = 2k-1 !!!
Apriori方法的优化策略:
减少候选频繁项集的个数 (M)
完全搜索: M=2d
使用剪枝计数减少M
减少比较的次数 (NM)
使用高效的数据结构保存候选频繁项集或事务
不需要匹配每个候选和每个事务
先验原理(Apriori principle):如果一个项集是频繁的,那么它的所有子集都是频繁的
候选项集的支持度计算:扫描事务数据库,决定每个候选项集的支持度
为了减少比较次数,将候选项集保存在散列(hash)结构中,将每个事务与保存在散列结构的候选项集作匹配
FP增长算法:FP算法使用一种称作FP树的紧凑数据结构组织数据,并直接从该结构中提取频繁项集。FP树是一种输入数据的压缩表示,它通过逐个读入事务,并把每个事务映射到FP树中的一条路径来构造。
规则产生:给定一个频繁项集X,寻找X的所有非空真子集 S使 X-S->S的置信度大于等于给定的置信度阈值
非二元属性的关联规则挖掘:非二元属性可以利用数据预处理的方法将它们转换为二元属性
关联规则评估:关联规则算法倾向于产生大量的规则、兴趣度可以用于对产生的规则进行过滤或排序、在原来的关联规则定义中,支持度和置信度是唯一使用的度量
兴趣度度量:
客观度量:
基于从数据推导出的统计量来确定模式是否有趣
比如关联度量 (支持度、置信度、Gini指标、互信息、Jaccard,等等)
主观度量:
根据用户的解释来确定模式是否有趣
如果一个模式揭示料想不到的信息,那么它是主观有趣的 (Silberschatz & Tuzhilin)
如果一个模式是可操作的 (actionable),即提供导致有益行动的有用信息,那么它是主观有趣的(Silberschatz & Tuzhilin)
支持度-置信度的局限性:
支持度的缺点
若支持度阈值过高,则许多潜在有意义的模式被删掉
若支持度阈值过低,则计算代价很高而且产生大量的关联模式
置信度的缺点:
关联规则:
{打篮球}→{吃麦片}
置信度 = P(吃麦片|打篮球)= 0.67
但 P(吃麦片) = 0.75
虽然置信度很高,但规则是误导的
置信度忽略了规则前件和后件的统计独立性