一、绪论
- 数据挖掘(分析):数据挖掘(分析)是从大量的、不完全的、有噪声的、模糊的、随机的数据集中识别有效的、新颖的、潜在有用的信息,以及最终可理解的模式的非平凡过程。它是一门涉及面很广的交叉学科,包括机器学习、数理统计、神经网络、数据库、模式识别、粗糙集、模糊数学等相关技术。
- 数据挖掘产生的原因:大量的数据、强大的算力、实际需求
- 现代分析技术的特点:
- Volumn 大量
- Velocity 高速
- Variety 多样
- Veracity 真实性
- Value 价值
二、知识发现过程与应用结构
知识发现基本知识
(1)知识发现:
是一个系统化的工作,必须对可以利用的源数据进行分析,确定合适的挖掘目标,然后 才能着手系统的设计和开发。
(2)知识发现的过程:
简单地概括为:首先从数据源中抽取感兴趣的数据,并把它组织成适合挖掘的数据组织形式;然后,调用相应的算法生成所需的知识;最后对生成的知识模式进行评估,并把有价值的知识集成到企业的智能系统中。
问题定义、数据采集(数据抽取)、数据预处理、数据挖掘、模式评估等基本阶段。
- 问题定义:数据挖掘人员必须和领域专家以及最终用户紧密协作
◼ 一方面了解相关领域的有关情况,熟悉背景知识,弄清用户要求,确定挖掘的目标等要求;
◼ 另一方面通过对各种学习算法的对比进而确定可用的学习算法。后续的学习算 法选择和数据集准备都是在此基础上进行的。
- 数据采集:是指从传感器和智能设备、企业在线系统、企业离线系统、社交网络和互联网平台等获取数据的过程。
- 数据预处理:清洗、转换、描述、选择(select)、抽取(extract)
:
①数据缺失的处理
②噪音数据的处理:噪声的处理:识别出噪声(孤立森林)、利用其他非噪音数据降低噪音的 影响,起到平滑的作用
数据平滑技术:分箱(Binning)方法
③数据不一致的识别与处理
(2)转换(convertion):
三种规格化方法:
- 最大最小规格化方法:
(待转换属性值-属性最小值)/(属性最大值-属性最小值)*(映射区间最大值-映射区间最小值)+映射区间最小值
- 零均值规格化方法:(待转换属性值-属性平均值)/属性方差
- 十基数变换规格化方法:科学计数
(3)描述(discripe):
- 加权平均值
- 截尾均值(trimmedmean):截去数据(排序了的)高端和低端2%,不能超过20%
- 众数mode
- 中位数median
- 中列数:(最大值+最小值)/2
- 极差 Range:最大值-最小值
- 第P个百分位数:
(1)定义:至少有P%的数据项小于或等于这个值,且至少有(100-P)%的数据项大于或等于这
个值。
(2)计算方法:
·递增排序;
·计算位置的指数i=(p/100)n;
·如果i不是整数,将其向上取整;
·如果i是整数,则p分位数为第i项与第i+1项的数据的平均值。
- 四分位数:
·特定的百分位数;
·第一个四分位数(Q1)为25%百分位数;
·第二个四分位数(Q2)为50%百分位数,即中位数;
·第三个四分位数(Q3)为75%百分位数。
- 分布的五数概括(five-number summary):
·包含:中位数(Q2)、四分位数Q1和Q3、最小和最大观测值;
·排序:按次序 Minimum,Q1, Median,Q3,Maximum写出;
·特点:最能反映数据重要特征的5个数。
- 四分位极差:第一个和第三个四分位数的距离
IQR=Q3-Q1
- 箱线图(盒图):
作用:体现五数概括特征:
·在盒图中,第一个四分位数和第三个四分位数确定了盒子的底部和顶部;
·盒子中间的粗线就是中位数所在的位置;
·由盒子向上向下伸出的垂直部分称为触须,表示数据的散布范围,通常 最远点是1.5IQR。
·识别可疑离群点的通常规则:如果数值落在第3个四分位数之上或第1个四分位数之下至少1.5IQR处的值,则被看作是可疑的离群点。
箱线图
数据的基本统计描述
(4)选择(select):从属性集合中选择那些重要的、与分析任务相关的子集的过程
(5)抽取(extract):对属性进行重新组合,获得一组反映事物本质的少量新属性的过程
- 主成分分析(PCA):是一种通过降维技术把多个变量化为少数几个主成分的统计方法,通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。
- PCA的思想是将n维特征映射到k维上(k<n),这k维是全新的正交特征。这k维特征称为主成分,是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n-k维特征。
2.知识发现过程处理模型
- 阶梯处理过程模型:多阶段流水处理模型
- 螺旋处理过程模型:是一个螺旋式上升过程
- 以用户为中心的处理模型:强调对用户与数据库交互的支持
- 联机KDD模型:需要可视化技术支撑
- 支持多数据源多知识模式的KDD处理模型:使得解决同一类问题的不同算法可以在统一的KDD平台上完成
三、关联规则挖掘理论和算法
1、基本概念
(1)项(item):beer、biscuit、nuts……
(2)所有项的集合(I):{所有商品}
(3)项集(Itemset):{部分商品},如果一个项集包含k个项,则称它为k-项集
(4)频数:一个项集x在数据库D中出现的次数:出现了n次 count(x)=n
(5)关联规则:是形如 X → Y 的蕴含表达式,其中X和Y是不相交的项集,即:X∩Y=∅, 其中X为规则的前件,Y为规则的后件
(6)支持度:项集X的支持度,记为support(X),其中D的模代表数据库D中交易的个数
Support(X)=count(X)/|D|
(7)提升度:表示先购买A对购买B的概率的提升作用,用来判断规则是否有实际价值。 如果大于1说明规则有效,小于1则无效。
提升度
◼ 提升度 >1 且越高表明正相关性越高;
◼ 提升度 <1 且越低表明负相关性越高;
◼ 提升度 =1 表明没有相关性。
(8)频繁项集:一个项集X的支持度大于用户给定的一个最小支持度阈值,则X被称为频 繁项集(或频繁模式),X是频繁的。
(9)最大频繁项目集:如果X是一个频繁项集,而且X的任意一个超集都是非频繁的,则 称X是最大频繁项集
(10)置信度:描述的是一个关联规则到底有多可信。
规则X1->X2的可信度指包含项集X1和X2的事务数与X2的事务数之比
Confidence(X1->X2)=support(X1∪X2)/support(X1)=count(X1∪X2)/count(X1)
(11)强关联规则:满足最小置信度和最小支持度(两个由用户给出)的关联规则称为强关联规则
2、关联规则挖掘问题可以划分成两个子问题
(1)发现所有的频繁项集:通过用户给定Minsupport ,寻找所有频繁项目集或者最
大频繁项目集。
(2)从频繁项集中发现关联规则:通过用户给定Minconfidence ,在频繁项目集中,
寻找强关联规则。
3、经典的频繁项目集生成算法分析: Apriori算法!!!
(1)定理1:若项目集X是频繁项目集,则它的所有非空子集都是频繁项目集
定理2:若项目集X是非频繁项目集,则它的所有超集都是非频繁项目集
(2)Apriori算法(只发现频繁项目集,不生成关联规则)
①伪代码:
②应用题:
- 步骤1:发现所有的频繁项集:
Apriori算法:逐层发现算法,按照项集的长度由小到大逐级进行,并最后发现频繁N项集。
- 步骤2:在得到了频繁项目集后,可以按照下面的步骤生成强关联规则:
◼ 对于每一个频繁项目集L,生成其所有的非空子集;
◼ 对于L的每一个非空子集x,计算Confidence(x),如果Confidence(x)≥minconfidence,那么“x=>(L-x)”成立。
mincount=2
4、Close算法(闭合项目集挖掘算法)
是对Apriori算法的改进
- 闭合项目集:一个项目集C,当且仅当对于在C中的任何元素,不可能在C中,存在小于或等于它的支持度的子集。
(1)若项目集C中的元素存在包含关系,如C={abc,ab},若support(ab)<=support(abc),则不是闭合项集。故子集ab的支持度必须大于其超集abc的支持度,才为闭合的。
若项目集元素间无包含关系,那么一定是闭合的。
- 闭合频繁项集:closed frequent Itemset,如果闭项集同时是频繁的,也就是它的支持度大于等于最小支持度阈值,那它就称为闭频繁项集。
5、FP-Free频繁项集树(Frequent Pattern Tree)
- FP-Free频繁项集树:不使用侯选集,直接压缩数据库成一个频繁模式树,通过频繁模式树可以直接得到频集。进行2次数据库扫描:一次对所有1-项目的频度排序;一次将数据库信息转变成紧缩内存结构。
频繁模式树的构造:
四、分类方法(已知类别)
1、分类的基本概念与步骤
(1)分类的步骤
- 建立一个模型
◼ 数据元组也称作样本、实例或对象。
◼ 为建立模型而被分析的数据元组形成训练数据集。
◼ 训练数据集中的单个元组称作训练样本,并提供每个训练样本的类标号
◼ 通过分析训练数据集构造分类模型,可用分类规则、决策树或数学公式等形式提供
- 测试模型进行分类
◼ 首先评估模型(分类法)的预测准确率。
◼ 如果认为模型的准确率可以接受,就可以用它对类标号未知的数据元组或对象进行分类。
解决分类问题的关键是构造一个合适的分类器:该分类器能把待分类的数据映射到给 定的类别中。
2、基于距离的分类算法
(1)定义:给定一个数据库 D={t1,t2,…,tn}和一组类C={C1,…,Cm}。假定每个元组包括一些数值型的属性值:ti={ti1,ti2,…,tik},每个类也包含数值性属性值:Cj={Cj1,Cj2,…,Cjk},则分类问题是要分配每个ti到满足如下条件的类Cj:
sim(ti,Cj)>=sim(ti,Ci)
Ci∈C,Ci≠Cj,其中sim( ti,Cj )被称为相似性。
(2)定义概述:通过对每个元组和各个类的中心来比较,从而可以找出他的最近的类中心,得到确定的类别标记。计算中往往用距离来表征,距离越近,相似性越大,距离越远,相似性越小。
(3)kNN算法
- k-近邻(kNN, k-Nearest Neighbors):是在训练集中选取离输入的数据点最近的k个邻居,根据这个k个邻居中出现次数最多的类别(最大表决规则),作为该数据点的类别。
- 伪代码
3、决策树分类方法
- 信息熵(Entropy):如果一个事件发生的概率是p(x),则其信息熵为
- H=log( 1/ p(x) )
- 信息熵是对随机变量不确定度的度量,熵越大随机变量的不确定性就越大。
- 如果变量A有k种可能取值,第x种的发生概率为p(x),则A的熵为每种可能的信息熵的加权平均数(或者说是熵的期望)
- 信息增益:针对一个一个特征而言的,就是看一个特征,系统有它和没有它时的信息量各是多少,两者的差值就是这个特征给系统带来的信息量,即信息增益。
ID3算法
- ID3算法的核心思想:在决策树的每一个非叶子结点划分之前,先计算每一个属性所带来的信息增益,选择最大信息增益的属性来划分,因为信息增益越大,区分样本的能力就越强,越具有代表性,很显然这是一种自顶向下的贪心策略。
- 应用题
- 最终需要分类的属性为“电脑”,它有2个不同值0和1,1有4个样本,0有2个样本。
为计算每个属性的信息增益,我们首先给定样本电脑分类所需的期望信息:
- 从“性别”属性开始。 “性别”=1,有3个“电脑”=1,2个“电脑”=0; “性别”=0,有1个“电脑”=1,没有“电脑”=0。
◼ 对于“性别”=1, p(“性别”=1)=5/6,p(“电脑”=1|“性别”=1)=3/5,p(“电脑”=0|“性别”=1)=2/5。
◼ 对于“性别”=0,p(“性别”=0)=1/6,p(“电脑”=1|“性别”=1)=1,p(“电脑”=0|“性别”=1)=0
◼ 因此,按“性别”划分,对应的熵为:
E(性别)=◼ 计算这种划分的信息增益是:
- 类似的,可以计算:
◼ Gain(学生)=0.459;
◼ Gain(民族)=0.316;
- 学生在所有的属性中具有最高的信息增益,被首先选为测试属性。
“学生”=1的所有元组,其类别标记均为1。得到 一个叶子结点。
◼ 右子树需要计算其他2个属性的信息增益
Gain(性别)=0.918;Gain(民族)=0.318;
◼ 对于右子树T2,选取最大熵的“性别”来扩展。
得到最终的决策树
C4.5算法
- C4.5算法同ID3算法类似,只不过在计算过程中采用信息增益率来选择特征而不是信息增益。
4、贝叶斯分类
- 贝叶斯定理:
- 定义:设X是类标号未知的数据样本。设H为某种假定,如数据样本X属于某特定的类C。对于分类问题,我们希望确定P(H|X),即给定观测数据样本X,假定H成立的概率。贝叶斯定理给出了如下计算P(H|X)的简单有效的方法:
◼ P(H)是先验概率,或称H的先验概率。P(X|H)代表假设H成立的情况下,观察到 X的概率。P(H| X )是后验概率,或称条件X下H的后验概率。
5、EM算法
EM是什么,步骤
- EM是什么:
最大期望算法在概率模型中寻找参数最大似然预计或者最大后验预计的算法。用于 寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然预计。
- EM步骤:
最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏 变量的现有预计值,计算其最大似然预计值;第二步是最大化(M)。最大化在 E 步上求得的最大似然值来计算参数的值。M 步上找到的参数预计值被用于下一个 E 步计算中,这个过程不断交替进行。
6、分类器性能的表示与评估
混淆矩阵
- TP:真正性 真实值是positive,模型认为是positive的数量(True Positive=TP)
- FN:假反性 真实值是positive,模型认为是negative的数量(False Negative=FN):这就是统计学上的第二类错误(Type II Error)
- FP:假真性 真实值是negative,模型认为是positive的数量(False Positive=FP):这就是统计学上的第一类错误(Type I Error)
- TN:真反性 真实值是negative,模型认为是negative的数量(True Negative=TN)
- F1分数
五、聚类方法(无监督学习)P代表Precision,R代表Recall
- F1-Score指标综合了Precision与Recall的产出的结果。F1-Score的取值范围从0到1的,1代表模型的输出最好,0代表模型的输出结果最差。
- 聚类定义:就是将数据对象分组成为多个类或簇,划分的原则是在同一个簇中的对象之间具有较高相似度,而不同簇中的对象差别较大。
1、距离与相似性的度量
- 距离函数
(1)明可夫斯基距离
- P=1 曼哈顿距离
- P=2 欧式距离
- P=正无穷 切比雪夫距离
(2)余弦距离
用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小
- 欧氏距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异
(3)Jaccard距离(适用于离散型数据)
判断两个集合的相似度,非对称二元属性的相似。给定两个集合A,B jaccard 系数定义为A与B交集的大小与并集大小的比值,jaccard值越大说明相似度越高。
2、划分聚类方法
(1) K-means(K均值算法)
- 算法描述
- 优缺点
- 伪代码
(2) k-中心点( K-medoids )
- 算法概念
迭代后的质点都是从聚类的样本点中选取,k中心点算法不采用簇中对象的平均值作为簇中心,而选用簇中离平均值最近的对象作为簇中心。
3、层次聚类方法
(1) AGNES算法
- 中文:自底向上凝聚算法
- 英文简称:AGNES
② 算法定义:自底向上凝聚算法,先将每个对象作为一个簇,然后这些簇根据某些准则被一步步地合并。两个簇间的相似度由这两个不同簇中距离最近的数据点对的相似度来确定。聚类的合并过程反复进行直到所有的对象最终满足。
③伪代码/算法描述
④应用题
(2)DIANA(自顶向下分裂算法)
- 定义:采用自顶向下的策略,它首先将所有对象置于一个簇中,然后逐渐细分为越 来越小的簇,直到达到了某个终结条件。
①DIANA使用的两种测度方法:
- 簇的直径:在一个簇中的任意两个数据点的距离中的最大值。
- 平均相异度(平均距离):
|x-y|:任意使用一种距离函数来求
②伪代码
③应用题
4、密度聚类方法
(1)DBSCAN算法
①DBSCAN:Density-Based Spatial Clustering of Applications with Noise
②算法描述
DBSCAN算法:如果一个点q的区域内包含多于MinPts个对象,则创建一个q作为核心对象的簇。然后,反复地寻找从这些核心对象直接密度可达的对象,把一些密度可达簇进行合并。当没有新的点可以被添加到任何簇时,该过程结束。
③优缺点:
六、时间序列和时间模式挖掘- 时间序列英文:Time Series
- 时间序列挖掘:就是要从大量的时间序列数据中提取人们事先不知道的、但又是潜在有用的与时间属性相关的信息和知识,并用于短期、中期或长期预测,指导人们的社会、经济、军事和生活等行为。通过对过去历史行为的客观记录分析,揭示其内在规律,进而完成预测未来行为等决策性工作。
1、web挖掘的数据来源:
◼ Web服务器日志数据
◼ Web上的电子商务数据
◼ Web上的网页
◼ Web上的网页之间的链接
◼ Web上的多媒体数据
2、PageRank定义:
设u为一个Web页,Fu为所有u指向的页面的集合,Bu为所有指向u的页面的集合。设c(<1)为一个调整参数,那么u页面的PageRank被定义为:
◼ 如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高。
◼ 如果一个网页被一个PageRank值很高的网页链接,那么该网页的PageRank值会相应地因此而提高。
3、随机PageRank算法应用题
①伪代码
- 根据页面间的链接关系求转移矩阵M,并初始化一个初始化向量V0
- 根据迭代公式:
- M:转移矩阵 e:初始向量V0 a: 0.8 初始时V=V0
- 不断迭代V直到V稳定:定义迭代终止条件ε,若|Vi+1-Vi|<=ε,结束迭代
此时V1-V0=|9/60-1/4|+|13/60-1/4|+|25/50-1/4|+|13/60-1/4|
4、权威页面:指包含需求信息的最佳资源页面。是指与某个领域或者某个话题相关的高质量网页,比如搜索引擎领域,Google和百度首页即该领域的高质量网页,比如视频领域,优酷和土豆首页即该领域的高质量网页。
5、中心页面:是一个包含权威页面链接的页面