KDD步骤:
数据清理 数据集成 数据选择 数据变换 数据挖掘 模式评估 知识表示
数据挖掘概念:
从大量的、错综复杂的数据中挖掘哪些令人感兴趣的(易被理解、新颖的、潜在有用的、非平凡的)模式或知识
构成数据挖掘算法的三要素:
模式记述语言 模式评价 模式探索
数据仓库是一个面向主题的、集成的、时变的、非易失的数据集合,支持管理过程的决策过程。
主要方法 分类 聚类 相关规则 回归 其他
如何处理噪音数据?
分箱 聚类 计算机和人工检查相结合 回归
频繁模式: 频繁出现在数据集中的模式(如项集、子序列或子结构)
Apriori算法利用的是先验性质 频繁项集的所有非空子集也必须是频繁的,非频繁项集的超集一定是非频繁的,Apriori算法是挖掘布尔关联规则频繁项集的算法,Apriori算法利用频繁项集性质的先验知识(prior knowledge),通过逐层搜索的迭代方法,即将k-项集用于探察(k+1)-项集,来穷尽数据集中的所有频繁项集。Apriori算法由连接和剪枝两个步骤组成
有2不同元素的两个的k-1频繁项集中只有才可以生成一个k待频繁项集
同时满足最小支持度和最小置信度的才是强关联规则
提高Apriori效率的方法 基于Hash的项集计数 减少交易记录 划分 抽样 动态项集计数
全局离群点(也称点异常)定义:在给定的数据集中,显著地偏离数据集中的其余对象
情境(或条件)离群点 定义:在给定的数据集中,关于对象的特定情境,显著地偏离其他对象
集体离群点 定义:在给定的数据中,这些对象作为整体显著偏离整个数据集。
离群点检测方法 统计学方法 基于近邻性的方法 基于聚类的方法 基于分类的方法
◆ 统计学方法认定不服从假定数据服从某个统计模型的对象为离群点
◆ 基于近邻的方法认定显著偏移其近邻的对象为离群点
◆ 基于聚类的方法认定小的或稀疏的簇或不属于任何簇的对象为离群点
◆ 基于分类的方法使用一类模型划定正常类的范围
什么是离群点?假定使用一个给定的统计过程来产生数据对象集,离群点是一个数据对象,它显著不同于其他数据对象,好像它是被不同的机制产生的一样。
噪声是被观测变量的随机误差或方差,在数据分析(包括离群点分析)中不令人感兴趣的
K-Means聚类算法只能发现球(或圆形)的类
思想:给定一个n个样本的数据库,划分方法将数据划分为k个划分(k<=n),每个划分表示一个簇,同时满足:(1)每个簇至少包含一个样本;(2)每个样本必须属于且仅属于一个算法流程 1) 任意选择k个对象作为初始的簇中心 2) repeat 3) 根据簇中对象的平均值, 将每个对象(重新)赋给最类似的簇 4) 更新簇的平均值, 即重新计算每个簇中对象的平均值 5) until 不再发生变化
基于密度的聚类算法假设聚类结构能够通过样本分布的紧密程度确定,以数据集在空间分布上的稠密程度为依据进行聚类,即只要一个区域中的样本密度大于某个阈值,就把它划入与之相近的簇中。
聚类评估主要内容 估计聚类趋势 确定数据集中的簇数 测定聚类质量
聚类后簇的定义:雷达图、密度函数等可视化方法(主观性)
聚类质量:轮廓系数(未知类别)、Bcubed度量(已知类别)
决策树相关的重要算法包括:CLS, ID3,C4.5,CART
从一棵空决策树开始,选择某一属性(分类属性)作为测试属性。该测试属性对应决策树中的决策结点。根据该属性的值的不同,可将训练样本分成相应的子集,如果该子集为空,或该子集中的样本属于同一个类,则该子集为叶结点,否则该子集对应于决策树的内部结点,即测试结点,需要选择一个新的分类属性对该子集进行划分,直到所有的子集都为空或者属于同一类。
决策树技术发现数据模式和规则的核心是归纳算法。
信息增益 增益率–>熵
信息增益表示得知特征A的信息而使得类决策属性信息的不确定性减少的程度
ID3流程
1 决定分类属性;
2 对目前的数据表,建立一个节点N
3 如果数据库中的数据都属于同一个类,N就是树叶,在树叶上标出所属的类
4 如果数据表中没有其他属性可以考虑,则N也是树叶,按照少数服从多数的原则在树叶上标出所属类别
5 否则,根据平均信息期望值E或GAIN值选出一个最佳属性作为节点N的测试属性
6 节点属性选定后,对于该属性中的每个值:从N生成一个分支,并将数据表中与该分支有关的数据收集形成分支节点的数据表,在表中删除节点属性那一栏如果分支数据表非空,则运用以上算法从该节点建立子树。
K近邻 核心思想:如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
步骤:计算测试点与所有样本点 1, 2, … , 的相似度 = (, );按照由大到小的顺序将1, 2, … , 排序 取前K个样本作为的个近邻
算法流程:
(1)决策树
树以代表训练样本的单个节点(N)开始
如果样本都在同一个类,则该节点成为树叶,并用该类标记
否则,算法调用Attribute_selection_method,选择能够最好的将样本分类的属性;确定“分裂准则”,指出“分裂 点”或“分裂子集”
对测试属性每个已知的值,创建一个分支,并以此划分元组
算法使用同样的过程,递归的形成每个划分上的元组决策树。一旦一个属性出现在一个节点上,就不在该节点的 任何子节点上出现
递归划分步骤停止的条件:划分D(在N节点提供)的所有元组属于同一类;没有剩余属性可以用来进一步划分元组——使用多数表决;没有剩余的样本;给定分支没有元组,则以D中多数类创建一个树叶。
外:决策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。决策树算法构造决策树来发现数据中蕴涵的分类规则.如何构造精度高、规模小的决策树是决策树算法的核心内容。决策树构造可以分两步进行。第一步,决策树的生成:由训练样本集生成决策树的过程。一般情况下,训练样本数据集是根据实际需要有历史的、有一定综合程度的,用于数据分析处理的数据集。第二步,决策树的剪枝:决策树的剪枝是对上一阶段生成的决策树进行检验、校正和修下的过程,主要是用新的样本数据集(称为测试数据集)中的数据校验决策树生成过程中产生的初步规则,将那些影响预衡准确性的分枝剪除。
剪枝:
目的:将树变得更简单,从而使它具有更好的泛化能力。
步骤:去掉过于细分的叶结点,使其回退到父结点,甚至更高的结点,然后将父结点或更高的结点改为新的叶结点。
决策树的生成对应模型的局部选择,决策树的剪枝对应于模型的全局选择。决策树的生成只考虑局部最优,决策树的剪枝则考虑全局最优。
特征选择:
如果特征数量很多,在决策树学习开始时对特征进行选择,只留下对训练数据有足够分类能力的特征。(例如把名字不作为一个特征进行选择)
决策树的典型算法有ID3,C4.5,CART等。
决策树ID3算法流程:
1 决定分类属性;
2 对目前的数据表,建立一个节点N
3 如果数据库中的数据都属于同一个类,N就是树叶,在树叶上标出所属的类
4 如果数据表中没有其他属性可以考虑,则N也是树叶,按照少数服从多数的原则在树叶
上标出所属类别
5 否则,根据平均信息期望值E或GAIN值选出一个最佳属性作为节点N的测试属性
6 节点属性选定后,对于该属性中的每个值:
从N生成一个分支,并将数据表中与该分支有关的数据收集形成分支节点的数据表,
在表中删除节点属性那一栏如果分支数据表非空,则运用以上算法从该节点建立子
树
优点:
(1)分类精度高;
(2)生成的模式简单;
(3)对噪声数据有很好的健壮性。
因而是目前应用最为广泛的归纳推理算法之一,在数据挖掘中受到研究者的广泛关注。
基本思想:
1)树以代表训练样本的单个结点开始。
2)如果样本都在同一个类.则该结点成为树叶,并用该类标记。
3)否则,算法选择最有分类能力的属性作为决策树的当前结点.
4)根据当前决策结点属性取值的不同,将训练样本数据集tlI分为若干子集,每个取值形成一个分枝,有几个取值形成几个分枝。匀针对上一步得到的一个子集,重复进行先前步骤,递4’I形成每个划分样本上的决策树。一旦一个属性出现在一个结点上,就不必在该结点的任何后代考虑它。
5)递归划分步骤仅当下列条件之一成立时停止:
①给定结点的所有样本属于同一类。
②没有剩余属性可以用来进一步划分样本.在这种情况下.使用多数表决,将给定的结点转换成树叶,并以样本中元组个数最多的类别作为类别标记,同时也可以存放该结点样本的类别分布,
③如果某一分枝tc,没有满足该分支中已有分类的样本,则以样本的多数类创建一个树叶。
k-means
1.任意选择k个对象作为初始的簇中心;
2. repeat
3.根据簇中对象的平均值, 将每个对象(重新)赋给最类似的簇;
4.更新簇的平均值, 即重新计算每个簇中对象的平均值;
5.until 不再发生变化
基本思想:K-Means算法思想:对给定的样本集,事先确定聚类簇数K,让簇内的样本尽可能紧密分布在一起,使簇间的距离尽可能大。该算法试图使集群数据分为n组独立数据样本,使n组集群间的方差相等,数学描述为最小化惯性或集群内的平方和。K-Means作为无监督的聚类算法,实现较简单,聚类效果好,因此被广泛使用。
算法步骤;
(1)为每个聚类选择一个初始聚类中心;
(2)将样本集按照最小距离原则分配到最邻近聚类;
(3)使用每个聚类的样本均值更新聚类中心;
(4)重复步骤(2)、(3),直到聚类中心不再发生变化;
(5)输出最终的聚类中心和k个簇划分;
优点
(1)原理易懂、易于实现;
(2)当簇间的区别较明显时,聚类效果较好;
缺点
(1)当样本集规模大时,收敛速度会变慢;
(2)对孤立点数据敏感,少量噪声就会对平均值造成较大影响;
(3)k的取值十分关键,对不同数据集,k选择没有参考性,需要大量实验
k近邻
原理:knn算法的核心思想是未标记样本的类别,由距离其最近的k个邻居投票来决定。
具体的,假设我们有一个已标记好的数据集。此时有一个未标记的数据样本,我们的任务是预测出这个数据样本所属的类别。knn的原理是,计算待标记样本和数据集中每个样本的距离,取距离最近的k个样本。待标记的样本所属类别就由这k个距离最近的样本投票产生。
核心思想
如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
优点:
简单直观,训练非常快,易于实现
特别适合多分类问题
训练数据无限和足够大的K,K-NN方法效果会相当好
缺点:
对噪声敏感(小K),即使在测试时间时,也需要存储所有训练数据
查询时间慢:每个查询()复杂度
在高维度上,距离的概念是违反直觉的!
高维空间表现不佳(维度诅咒)
KNN作为一种有监督分类算法,是最简单的机器学习算法之一,顾名思义,其算法主体思想就是根据距离相近的邻居类别,来判定自己的所属类别。算法的前提是需要有一个已被标记类别的训练数据集,具体的计算步骤分为一下三步:
1、计算测试对象与训练集中所有对象的距离,可以是欧式距离、余弦距离等,比较常用的是较为简单的欧式距离;
2、找出上步计算的距离中最近的K个对象,作为测试对象的邻居;
3、找出K个对象中出现频率最高的对象,其所属的类别就是该测试对象所属的类别。
步骤:
计算测试点与所有样本点 1, 2, … , 的相似度 = (, );
按照由大到小的顺序将1, 2, … , 排序
取前K个样本作为的个近邻
算法流程
(1)收集数据:可以使用任何方法;
(2)准备数据:距离计算所需要的数值,最好是结构化的数据格式;
(3)分析数据:可以使用任何方法;
(4)训练算法:此步骤不适用于k-近邻算法;
(5)测试算法:计算错误率;
(6)使用算法:首先需要输入样本数据和结构化的输出结果,然后运行k-近邻算法,判定输入数据分别属于哪个分类,最后应用,对计算出的分类执行后续的处理。
算法实施
(1)计算已知类别数据集中的点与当前点之间的距离;
(2)按照距离递增次序排序;
(3)选取与当前点距离最小的k个点;
(4)确定前k个点所在类别的出现频率;
(5)返回前k个点出现频率最高的类别作为当前点的预测分类。
关联规则
1.找出所有的频繁项集: 根据定义,这些项集的每一个频繁出现的次数至少与预定将文的最小支持计数 min_sup一样。
2.由频繁项集产生强关联规则: 根据定义,这些规则必须满足最小支持度和最小置信度
3. 当 min_sup设置较低时,产生大量满足最小支持度阈值的项集
Aprior算法核心思想
如果一个集合是频繁项集,则它的所有子集都是频繁项集;如果一个集合不是频繁项集,则它的所有超集都不是频繁项集。
算法流程
1)找到频繁的一维项集L1
2)从频繁的Lk维项集生成k+1维项集Ck+1
3)找到Ck+1中的频繁项集Lk+1
4)k=k+1,循环执行2)-3)直至k+1=n,n为最大项集
5)输出各个维度的频繁项集
从Lk生成Ck+1的方法,k>1
算法流程:
单编扫描数据集,确定每项的支持度,得到所有频繁1-项集;
使用上一次迭代发现的频繁(k-1)-项集,产生新的候选k-项集,候选的产生使用apriori-gen函数实现。
对候选项的支持度进行计数;
删去支持度计数小于minsup的候选项集;
5)当没有新的频繁项集产生,结束。
聚类质量
判定数据是否存在结构(霍普金斯统计量)
选择聚类算法和距离(或相似度)度量 K-Means聚类算法:聚类簇数(肘方法或交叉验证) DBSCAN聚类算法:邻域半径Eps(肘方法)、MinPts(≥ + 1)
聚类质量:轮廓系数(未知类别)、Bcubed度量(已知类别)
聚类后簇的定义:雷达图、密度函数等可视化方法(主观性)
密度聚类
原理:DBSCAN是一种基于密度的聚类算法,这类密度聚类算法一般假定类别可以通过样本分布的紧密程度决定。同一类别的样本,他们之间的紧密相连的,也就是说,在该类别任意样本周围不远处一定有同类别的样本存在。通过将紧密相连的样本划为一类,这样就得到了一个聚类类别。通过将所有各组紧密相连的样本划为各个不同的类别,则我们就得到了最终的所有聚类类别结果。
DBSCAN的主要优点有:
1) 可以对任意形状的稠密数据集进行聚类,相对的,K-Means之类的聚类算法一般只适用于凸数据集。
2) 可以在聚类的同时发现异常点,对数据集中的异常点不敏感。
3) 聚类结果没有偏倚,相对的,K-Means之类的聚类算法初始值对聚类结果有很大影响。
DBSCAN的主要缺点有:
1)如果样本集的密度不均匀、聚类间距差相差很大时,聚类质量较差,这时用DBSCAN聚类一般不适合。
2) 如果样本集较大时,聚类收敛时间较长,此时可以对搜索最近邻时建立的KD树或者球树进行规模限制来改进。
3) 调参相对于传统的K-Means之类的聚类算法稍复杂,主要需要对距离阈值ϵ,邻域样本数阈值MinPts联合调参,不同的参数组合对最后的聚类效果有较大影响。