Volume(大量)、Variety(多样)、Velocity(高速) Value(价值)
数据类型:连续型、二值型、离散型、字符型、符号型
数据属性类型:标称属性、二元属性、数值属性、序数属性
直接度量
相异性:d(i,j)=1-m/p
相似性:sim(i,j)=m/p
转化为二元属性
1为目标状态,0为其他
数值数据距离——闵可夫斯基距离
真实的数据是非常“dirty“的。
数据预处理包括:
1) 光滑
2) 属性构造
3) 聚集
4) 离散化
5) 由标称数据产生概念分层:属性
课本:
数据集成
合并来自多个数据存储的数据,把不同来源、格式、特点和性质的数据合理地集中并合并起来。
元数据集成
实体识别问题:匹配来自不同数据源的现实世界的实体(行)
属性集成
解决冗余问题:同一属性在不同的数据库或同一数据库的不同数据表有不同的字段名(列)
集成依据:
每个属性的元数据包括名字,含义,数据类型,和属性的允许取值范围,以及处理空白,零或null值的空值规则。这样的元数据可以帮助避免模式集成的错误。在数据集成时,特别注意一个数据库的数据属性与另一个数据库的属性匹配时的数据结构,这旨在确保源系统中的函数依赖和参照约束目标系统中的匹配
曼哈顿距离:两个点在标准坐标系上的绝对轴距总和
欧几里得距离:两个点之间的距离,也即通常情况下,我们所计算的距离
切比雪夫距离:各坐标数值差的最大值
计算数值属性刻画的对象的相异性的距离度量:欧几里得距离,曼哈顿距离,闵可夫斯基距离,最流行的距离度量是欧几里得距离。而数据的分布可以用中心趋势,极差四分位数等来度量数据的散度,数据分布是对数据总体情况的一个描述,而不同的距离度量都与数据的分布直接相关,数据分布的越密集,距离度量越近。
马哈拉诺比斯距离表示数据的协方差距离,它是一种有效的计算两个未知样本集的相似度的方法,与欧氏距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的)并且是尺度无关的
对于一个均值为
,协方差矩阵为
的多变量向量,其马氏距离为:
马哈拉诺比斯距离也可以定义为两个服从同一分布并且其协方差矩阵为
的随机变量 与
的差异程度
如果协方差矩阵为单位矩阵,马哈拉诺比斯距离就简化为欧氏距离;如果协方差矩阵为对角阵,其也可称为正规化的欧氏距离。
其中 的标准差。
与欧式距离相比优势:
缺点:
夸大了变化微小的变量的作用。受协方差矩阵不稳定的影响,马氏距离并不总是能顺利计算出。
流形:流形是局部具有欧几里得空间性质的空间,在数学中用于描述几何形体。物理上,经典力学的相空间和构造广义相对论的时空模型的四维伪黎曼流形都是流形的实例。流形是在局部与欧式空间同胚的空间,换言之,它在局部具有欧式空间的性质,能用欧式距离来进行距离计算。
ISOMAP:等度量映射
利用流形在局部上与欧氏空间同胚这个性质,对每个点基于欧氏距离找出其近邻点,然后就能建立一个近邻连接图,图中近邻点之间存在连接,而非近邻点之间不存在连接,于是,计算两点之间测地线距离的问题就转变为计算近邻连接图上两点之间的最短路径问题.
流形学习:若低维流形嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去非常复杂,但在局部上仍具有欧式空间的性质,基于流形学习的降维正是这种“邻域保持”的思想。如此,可以在局部建立降维映射关系,然后再设法将局部映射推广到全局。
一个数据嵌入在流行体中,传统的例如PCA和MDS降维方法效果就不是十分理想。此流行体实际上是一个二维分布的平面,在三维空间中流行体上点与点之间的距离就不能使用传统的欧氏空间距离来计算,而应该采用测地线距离代表这两个点的实际距离。
但是测地线距离也不好测量,因此我们采用另一种路径近似代表测地线距离。我们构建一个连通图,其中每个点只和这个点最近的k个点直接连接,和其他的点不直接连接。这样我们可以构建邻接矩阵,进而求出图中任意两个点的最短路径,代替测地线距离。
在图C中,蓝色线代表两个点之间的测地线距离,红色线代表图中两点的最短路径,两者距离相近,因此我们使用后者代替前者。
步骤:构建邻接图G
步骤2:调用最短路径算法计算任意两样本之间的距离dist(xi,xj)
步骤3:将dist(xi,xj)作为MDS算法的输入
频繁项集:即频繁的出现在数据集中的项集。项集由项组成,项集出现的频度是包含项集的事务数(简称项集的频度,支持读计数,绝对支持度),如果项集I的相对支持度满足预定义的最小支持度阈值,则I就是频繁项集
关联规则:关联规则是形如X→Y的蕴涵式,其中, X和Y分别称为关联规则的先导和后继。关联规存在支持度和信任度。
频繁项集与关联规则:数据集是事务的集合,而每一个事务是一个非空项集,有频度项集产生关联规则,规则A=>B若在数据集中成立,则它有支持度s,s是数据集中包含AUB的百分比,也有置信度c,是数据集中包含A的事务同时也包含B的事务的百分比即P(A|B) ,它需要满足最小支持度阈值和置信度阈值。
闭频繁项集:当项集X是频繁项集,且数据集D中不存在X的真超集Y,使得X和Y的支持度相等,则X是闭频繁项集。闭频繁项集的表示是无损压缩,不会丢失支持度的信息。通过闭频繁项集可以反推出所有的频繁项集以及相应的支持度(理解:向频繁项集任意增加一个项,频繁项集出现的频度就会发生改变)
闭频繁项集包含了频繁项集的完整信息
极大频繁项集:当项集X是频繁项集,且数据集D中不存在X的真超集Y,使得Y是频繁项集,则X是极大频繁项集。极大频繁项集的表示是有损压缩,失去了频繁项集的支持度信息,我们可以根据极大频繁项集判断任意项集是否是频繁的,但无法得到相应的支持度(理解:加入任何一个项,项集就不是频繁的了)
二者的区别与联系:最大频繁集<频繁闭项集<频繁项集,不过最大频繁集丢失了很多信息而闭项集保留了完整信息
挖掘:
频繁项集的挖掘最常用到的就是Apriori算法。Apriori算法是一种先产生候选项集再检验是否频繁的“产生-测试”的方法。这种方法有种弊端:当数据集很大的时候,需要不断扫描数据集造成运行效率很低。
而FP-Growth算法就很好地解决了这个问题。它的思路是把数据集中的事务映射到一棵FP-Tree上面,再根据这棵树找出频繁项集。FP-Tree的构建过程只需要扫描两次数据集
Apriori算法:基于支持度的剪枝方法
Apriori原理:如果某个项集是频繁的,那么它的所有子集也是频繁的。
算法思想:
①找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。
②由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。
③使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。
④一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递推的方法。
Ariori算法有两个主要步骤:
1、连接:(将项集进行两两连接形成新的候选集)
利用已经找到的个项的频繁项集,通过两两连接得出候选集,注意进行连接的,,必须有个属性值相同,然后另外两个不同的分别分布在,中,这样的求出的为的候选集。
2、剪枝:(去掉非频繁项集)
候选集中的并不都是频繁项集,必须剪枝去掉,越早越好以防止所处理的数据无效项越来越多。只有当子集都是频繁集的候选集才是频繁集,这是剪枝的依据
具体:
FP-growth算法
思想:它的思路是把数据集中的事务映射到一棵FP-Tree上面,再根据这棵树找出频繁项集。
步骤:
①构建FP树;
建FP树是算法的第一步,在FP树的基础之上再对频繁项集进行挖掘。为了构建FP树,要对数据集扫描两次。
步骤:
②从FP树中挖掘频繁项集;
1)从FP树中获得条件模式基;
2)利用条件模式基,构建一个条件FP树;
3)迭代重复步骤(1)(2)直到树只包含一个元素项为止
等价类变换算法(Eclat)
思想:
Eclat算法产生候选项集的理论基础是:频繁K-项集可以通过或运算生成候选的K+1-项集,频繁K-项集中的项是按照字典序排列,并且进行或运算的频繁K-项集的前K-1个项是完全相同的。
Eclat算法步骤:
(1)通过扫描一次数据集,把水平格式的数据转换成垂直格式;
(2)项集的支持度计数简单地等于项集的TID集的长度;
(3)从k=1开始,可以根据先验性质,使用频繁k项集来构造候选(k+1)项集;
(4)通过取频繁k项集的TID集的交,计算对应的(k+1)项集的TID集。
(5)重复该过程,每次k增加1,直到不能再找到频繁项集或候选项集。
Apriori
Lk-1与自身连接产生候选项集c,然后扫描候选集,确定c中每个的计数,从而除掉没有达到阈值的项,得到了Lk ,第i次的迭代过程包括扫描计算候选频繁i项集的支持度,剪枝得到真正频繁i项集和连接生成候选频繁i+1项集三步。
提高效率:
由先验性质:频繁项集的所有非空子集也是频繁的,每次在连接之前已经筛选除去了一部分候选集,所以在连接步之后,连接产了众多候选集已经是筛除了一部分不可能成为频繁项集的候选集,可以根据之前产生的非频繁项集快速排除候选集,
Eclat
首先,通过一次扫描数据集,把水平格式的数据转换成垂直格式,项集的支持度计数简单的等于项集TID的长度,从K=1开始,根据先验性质,通过对K项集取交集,来构造(K+1),计算对应的(K+1)项集的TID。重复该过程,每次K增加1,直到不能再找到频繁项集或者候选项集。
提高效率:除了在产生候选集时利用的先验性质以外,这种方法的另一个有点是不需要扫描数据库来确定(K+1)项集的支持度。这是因为每一个k项集的TID都携带了计算支持度的完整信息。
1决策树(Decision Trees)的优缺点
决策树的优点:
一、决策树易于理解和解释.人们在通过解释后都有能力去理解决策树所表达的意义。
二、对于决策树,数据的准备往往是简单或者是不必要的.其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。
三、能够同时处理数据型和类别型属性。其他的技术往往要求数据属性的单一。
四,决策树是一个白盒模型。如果给定一个观察的模型,那么根据所产生的决策树很容易推出相应的逻辑表达式。
五、易于通过静态测试来对模型进行评测。表示有可能测量该模型的可信度。
六、在相对短的时间内能够对大型数据源做出可行且效果良好的结果。
七、可以对有许多属性的数据集构造决策树。
八、 决策树可很好地扩展到大型数据库中,同时它的大小独立于数据库的大小。
九、决策树常用于集成算法,如随机森林,提升树等,效果更佳。
决策树的缺点:
一、 对于那些各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征。
二、决策树处理缺失数据时的困难。
三、过度拟合问题的出现。
四、忽略数据集中属性之间的相关性。
KNN算法(K-Nearest Neighbour) 的优缺点
KNN算法的优点:
一、简单、有效。
二、重新训练的代价较低(类别体系的变化和训练集的变化,在Web环境和电子商务应用中是很常见的)。
三、计算时间和空间线性于训练集的规模(在一些场合不算太大)。
四、由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。
五、该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。
KNN算法缺点:
一、KNN算法是懒散学习方法(lazy learning,基本上不学习),一些积极学习的算法要快很多。
二、类别评分不是规格化的(不像概率评分)。
三、输出的可解释性不强,例如决策树的可解释性较强。
四、该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个 邻居中大容量类的样本占多数。该算法只计算“最近的”邻居样本,某一类的样本数量很大,那么或者这类样本并不接近目标样本,或者这类样本很靠近目标样本。 无论怎样,数量并不能影响运行结果。可以采用权值的方法(和该样本距离小的邻居权值大)来改进。
五、计算量较大。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。
5 支持向量机(SVM)的优缺点
SVM的优点:
一、可以解决小样本情况下的机器学习问题。【注: 这个小是有限度的,训练语料必须覆盖支持向量上的点,样本特别小的时候语料分布很难近似于真实数据的分布,可以采用bootstrap选择少量种子来迭代扩大召回的方法。】
二、可以提高泛化性能。(根据VC维理论,SVM不容易过拟合)
三、可以解决高维问题。
四、可以解决非线性问题。
五、可以避免神经网络结构选择和局部极小点问题
SVM的缺点:
一、对缺失数据敏感。
二、对非线性问题没有通用解决方案,必须谨慎选择Kernelfunction来处理
6 朴素贝叶斯的优缺点
优点:
一、朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。
二、 NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。
缺点:
一、理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中 往往是不成立的(可以考虑用聚类算法先将相关性较大的属性聚类),这给NBC模型的正确分类带来了一定影响。在属性个数比较多或者属性之间相关性较大 时,NBC模型的分类效率比不上决策树模型。而在属性相关性较小时,NBC模型的性能最为良好。(正所谓成也萧何败也萧何,朴素贝叶斯正因为”朴素”(独立假设)而简单有效,但也因为这个而具有局限性。)
二、需要知道先验概率。
三、分类决策存在错误率
7 Adaboosting方法的优点
一、adaboost是一种有很高精度的分类器。
二、可以使用各种方法构建子分类器,Adaboost算法提供的是框架。
三、当使用简单分类器时,计算出的结果是可以理解的。而且弱分类器构造极其简单(例如使用决策桩,桩的选择依据可以是信息增益,误分类率,GINI不纯度等)。
四、简单,不用做特征筛选。
五、不用担心overfitting。
互斥规则:每一条规则涵盖一条互不相交的数据分割。
如果不是互斥的,一个记录可能被多个规则触发。——>处理:规则排序、无序规则。
穷举规则:整个数据空间中的数据至少被一条规则覆盖,每个测试实例至少触发一条规则。
如果不是穷举的,一个记录可能不被任何规则触发。——>处理:默认的通用类别作为相关类标签。
规则提取出来后,顺序覆盖算法必须删除该规则该规则所覆盖的所有正例和反例。
如何选择合取项:Learn_One_Rule采用一种贪心的深度优先策略,每当面临添加一个新的属性测试(合取项)到当前规则时,它根据训练样本选择最能提高规则质量属性的测试。
每个规则的停止增加合取项条件:计算增益,增益不显著,丢弃新规则。
半监督分类使用有类标号的数据和无类标号的数据构建分类器。
自训练:运用平滑性假设逐步扩大训练数据中标注的部分。
步骤:它首先使用有标号的数据建立一个分类器。然后使用该分类器对无标号的数据加标号。将类标号预测最有把握的元组添加到有标号的数据的集合中,并重复这一过程。
协同训练:两个分类器协同分类,可以更有效避免过拟合。每个学习器对每个元组使用一个不同的、独立的特征集。
步骤:
区别在于:元素与一个集合的关系是属于或不属于,这就是经典集合;而模糊集合中,元素与一个集合的关系用隶属度刻画
基本思想:它允许我们处理高层抽象,并且提供了一种处理数据的不精确测量的手段,最重要的是,模糊集理论允许我们处理模糊或不精确的事实。
基于代表点聚类(聚类思想、过程与不同方法的优劣势)
另外一种评价方式
基于概率模型的算法
算法:
基于图聚类的基本思想
层次聚类
类型:自底向上距离计算、自顶向下聚类方法(BIRCH/Chamelon/概率层次聚类)
算法思想与流程
离群点定义:Hawkins的定义:离群点是在数据集中偏离大部分数据的数据,使人怀疑这些数据的偏离并非由随机因素产生,而是完全产生于不同的机制。
噪声是一个测量变量中的随机错误或偏差,包括错误的值,偏离期望的孤立点。
全局离群点和局部离群点
检测方法:
One-Class SVM——SVDD
孤立森林
其他方法
总结: