“远亲不如近邻”,只能说是一句很现实的话,毕竟,自己遇到急事要解决时,只有在自己身边的人才最方便、也最能够帮到自己。
至于邻居之间的争执,其实也很像夫妻之间的争执。通俗的讲,就是一句“合不来”,不只是性格(例如都是刚烈性格的人,只能远远的相互欣赏,一靠近,就会互相“刺伤”对方,类比心理学中的“刺猬定理”),还有生活习惯,最常见的就是晚睡的人和早睡的人在作息时间上的难以调和而又不能互相理解。(更特殊的,估计还有宗教、民族等问题)
邻里的争执问题,涉及到的心理学知识,最直接的就是上面提到的“刺猬定理”。
另外,你会发现,邻居之间的争执,直接原因大都是生活作息不同步上的问题,但根本原因,大多是双方的性格都是很“刚烈”的。如果是一刚一柔,一进一退,甚至是双方都是“好脾气”的人,再大的问题,都会被谦让化解;或者,如果双方在很多方面的观念很同步,有共同爱好的话,即使双方都是暴脾气,但是虽有一吵起来不可开交的危险,也很难有诱发危机的诱因。
因此,在信贷决策过程中,信贷管理人员的专业知识、主观判断以及某些要考虑的关键要素权重均为最重要的决定因素。
在专家制度法下,绝大多数银行都将重点集中在借款人的“5c”上,即品德与声望(character)、资格与能力(capacity)、资金实力(capital or cash) 、担保(collateral)、经营条件或商业周期(condition)。也有些银行将信用分析的内容归纳为“5w”或“5p”。 “5w”系指借款人(who)、借款用途(why) 、还款期限(when)、担保物(what)、如何还款(how);“5p”系指个人因素( personal)、目的因素( purpose) 、偿还因素( payment)、保障因素(protection)、前景因素(perspective)。这种方法的缺陷是主观性太强,只能作为一种辅助性信用分析工具。 贷款评级分类模型是金融机构在美国货币监理署(occ)最早开发的评级系统基础上拓展而来,occ对贷款组合分为正常、关注、次级、可疑、损失等5类,并要求对不同的贷款提取不同比例的损失准备金以弥补贷款损失。
在我国,1998年以前各商业银行贷款分类的方法一直沿用财政部《金融保险企业财务制度》的规定,把贷款分为正常、逾期、呆滞、呆账四类,后三类合称不良贷款,简称“一逾两呆法”。 这一方法低估了不良贷款, 因为它没包括仍支付利息尚未展期的高风险贷款。1998年我国开始借鉴国际监管经验,对贷款分类进行改革,按照风险程度将贷款划分为正常、关注、次级、可疑、损失五类,即五级分类方法。2003年12月中国银监会发布文件决定自2004年1月1日起,我国所有经营信贷业务的金融机构正式实施贷款五级分类制度。 信用评分方法是对反映借款人经济状况或影响借款人信用状况的若干指标赋予一定权重,通过某些特定方法得到信用综合分值或违约概率值,并将其与基准值相比来决定是否给予贷款以及贷款定价,其代表为z计分模型。
z计分模型是Altman 1968 年提出的以财务比率为基础的多变量模型。该模型运用多元判别分析法,通过分析一组变量,使其在组内差异最小化的同时实现组间差异最大化,在此过程中要根据统计标准选入或舍去备选变量,从而得出z 判别函数。根据z值的大小同衡量标准相比,从而区分破产公司和非破产公司。1995 年,对于非上市公司,Altman对z 模型进行了修改,得到z′计分模型。Altman、Haldeman 和Narayannan在1977 年对原始的z 计分模型进行扩展,建立的第二代的zeta 信用风险模型。该模型在公司破产前5 年即可有效划分出将要破产的公司,其中破产前1 年准确度大于90 % ,破产前5 年的准确度大于70 %。新模型不仅适用于制造业,而且其有效性同样适用于零售业。上述两种模型中,zeta 分类准确度比z 计分模型高,特别是破产前较长时间的预测准确度相对较高。由于方法简便、成本低、效果佳,上述方法应用十分广泛。
值得注意的是该类模型构建中的数理方法,综合以来,主要有以下几种:
1.判别分析法(discriminant analysis)
判别分析法(discriminant analysis,简称DA) 是根据观察到的一些统计数字特征,对客观事物进行分类,以确定事物的类别。它的特点是已经掌握了历史上每个类别的若干样本,总结出分类的规律性,建立判别公式。当遇到新的事物时,只要根据总结出来的判别公式,就能判别事物所属的类别。
da 的关键就在于建立判别函数。目前,统计学建立判别函数常用方法有:一是未知总体分布情况下,根据个体到各个总体的距离进行判别的距离判别函数;二是已知总体分布的前提下求得平均误判概率最小的分类判别函数,也称距离判别函数,通常称为贝叶斯(bayes)判别函数;三是未知总体分布或未知总体分布函数前提下的根据费歇(fisher) 准则得到的最优线性判别函数。
2.多元判别分析法(multivariate discriminant analysis)
多元判别分析法(MDA)是除美国外的其他国家使用最多的统计方法。多元线性判别分析法,可以具体为一般判别分析(不考虑变量筛选)和定量资料的逐步判别分析(考虑变量筛选)。但应用多元判别分析(MDA)有三个主要假设:变量数据是正态分布的;各组的协方差是相同的;每组的均值向量、协方差矩阵、先验概率和误判代价是已知的。
该种方法的不足之处是必须建立在大量的、可靠的历史统计数据的基础之上,这在发展中国家如中国是难以具备的前提条件。
3.logit 分析判别方法
logit 分析与判别分析法的本质差异在于前者不要求满足正态分布或等方差, 从而消除了MDA 模型的正态分布假定的局限性。其模型主要采用了logistic 函数。
该模型的问题在于当样本点存在完全分离时,模型参数的最大似然估计可能不存在,模型的有效性值得怀疑,因此在正态的情况下不满足其判别正确率高于判别分析法的结果。另外该方法对中间区域的判别敏感性较强,导致判别结果的不稳定。
4.神经网络分析法(artificial neural network,简称ANN)
神经网络分析法是从神经心理学和认知科学研究成果出发,应用数学方法发展起来的一种具有高度并行计算能力、自学能力和容错能力的处理方法。它能有效解决非正态分布、非线性的信用评估问题,其结果介于0与1之间,在信用风险的衡量下,即为违约概率。神经网络分析方法应用于信用风险评估的优点在于其无严格的假设限制且具有处理非线性问题的能力。Altman、Marco和Varetto(1994)在对意大利公司财务危机预测中应用了神经网络分析法;Coats及Fant(1993)Trippi采用神经网络分析法分别对美国公司和银行财务危机进行预测,取得较好效果。然而,要得到一个较好的神经网络结构,需要人为随机调试,需要耗费大量人力和时间,加之该方法结论没有统计理论基础,解释性不强,所以应用受到很大限制。
5.聚类分析法(cluster analysis)
聚类分析(cluster analysis)属于非参数统计方法。信用风险分析中它根据由借款人的指标计算出的在样本空间的距离,将其分类。这种方法一个主要优点是不要求总体的具体分布;可对变量采用名义尺度,次序尺度,因此该方法可用于定量研究,也可对现实中的无法用数值精确表述的属性进行分析。这很适用于信用风险分析中按照定量指标(盈利比、速动比等) 和定性指标(管理水平、信用等级等) 对并不服从一定分布特性的数据信息分类的要求。例如,Lundy运用该方法对消费贷款申请者的典型信用申请数据及年龄、职业、婚否、居住条件进行处理分成6类并对每类回归评分,它不仅将借款人进行有效的分类而且帮助商业银行确定贷款方式策略。
6.k近邻判别法(k-Nearest Neighbor)
k近邻判别法在一定距离概念下按照若干定量变量从样本中选取与确定向量距离最短k个样本为一组,适用于初始分布和数据采集范围限制较少时,减小了以函数形式表达内容的要求。另外,knn 通过将变量在样本整体范围内分为任意多决策区间,而近似样本分布。Tametal将之用于信用风险分析,取马氏距离,从流动性、盈利性、资本质量角度选出的19 个变量指标,对样本分类,经比较其分类结果的准确性不如lda、lg 以及神经网络。原因在于在同样的样本容量下,若对具体问题的确存在特定的参数模型并可能找出时,非参数方法不及参数模型效率高。
7.层次分析法(AHP)
该方法强调人的思维判断在决策过程中的作用,通过一定模式使决策思维过程规范化,它适用于定性与定量因素相结合、特别是定性因素起主导作用的问题,企业信用等级综合评价就是这种定性因素起主导作用的问题。AHP 法的基本步骤是:建立递阶层次结构,构造判断矩阵,求此矩阵的最大特征根及其对应的特征向量,确定权重,并进行一致性检验。
8.其他方法
此外还存在着其他众多的方法:probit 法、因子-logistic法、模糊数学方法、混沌法及突变级数法、灰关联熵、主成分分析综合打分法、主成分分析与理想点的结合方法、原蚁群算法、数据包络判别法等等。关于这些方法的应用,将在后面的实证部分进行探讨。
机器学习中常常要用到分类算法,在诸多的分类算法中有一种算法名为k-近邻算法,也称为kNN算法。
一、kNN算法的工作原理
二、适用情况
三、算法实例及讲解
---1收集数据
---2准备数据
---3设计算法分析数据
---4测试算法
一、kNN算法的工作原理
官方解释:存在一个样本数据集,也称作训练样本集,并且样本中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系,输入没有标签的新数据后,将新数据的每个特征与样本集中的数据对应的特征进行比较,然后算法提取样本集中特征最相似的数据(最近邻)的分类标签。一般来说,我们只选择样本集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数,最后,选择k个最相似的数据中出现次数最多的分类,作为新数据的分类。
我的理解:k-近邻算法就是根据“新数据的分类取决于它的邻居”进行的,比如邻居中大多数都是退伍军人,那么这个人也极有可能是退伍军人。而算法的目的就是先找出它的邻居,然后分析这几位邻居大多数的分类,极有可能就是它本省的分类。
二、适用情况
优点:精度高,对异常数据不敏感(你的类别是由邻居中的大多数决定的,一个异常邻居并不能影响太大),无数据输入假定;
缺点:计算发杂度高(需要计算新的数据点与样本集中每个数据的“距离”,以判断是否是前k个邻居),空间复杂度高(巨大的矩阵);
适用数据范围:数值型(目标变量可以从无限的数值集合中取值)和标称型(目标变量只有在有限目标集中取值)。
离群点是一个数据对象,它显著不同于其他数据对象,好像它是被不同的机制产生的一样。有时也称非离群点为“正常数据”,离群点为“异常数据”。
离群点不同于噪声数据。噪声是被观测变量的随机误差或方差。一般而言,噪声在数据分析(包括离群点分析)中不是令人感兴趣的。如在信用卡欺诈检测,顾客的购买行为可以用一个随机变量建模。一位顾客可能会产生某些看上去像“随机误差”或“方差”的噪声交易,如买一份较丰盛的午餐,或比通常多要了一杯咖啡。这种交易不应该视为离群点,否则信用卡公司将因验证太多的交易而付出沉重代价。因此,与许多其他数据分析和数据挖掘任务一样,应该在离群点检测前就删除噪声。
离群点检测是有趣的,因为怀疑产生它们的机制不同于产生其他数据的机制。因此,在离群点检测时,重要的是搞清楚为什么检测到的离群点被某种其他机制产生。通常,在其余数据上做各种假设,并且证明检测到的离群点显著违反了这些假设。
离群点可以分成三类:全局离群点、情境(或条件)离群点和集体离群点。
在给定的数据集中,一个数据对象是全局离群点,如果它显著的偏离数据集中的其他对象。全局离群点是最简单的一类离群点,大部分的离群点检测方法都旨在找出全局离群点。
在给定的数据集中,一个数据对象是情境离群点,如果关于对象的特定情境,它显著的偏离其他对象。情境离群点又称为条件离群点,因为它们条件的依赖于选定的情境。一般地,在情境离群点检测中,所考虑数据对象的属性划分成两组:
情境属性 :数据对象的情境属性定义对象的情境。一般为静态属性变量,如信用卡欺诈检测中,不同年龄、不同地区的人消费情况是不同的,先按照静态属性将人群大致分类,再检测每一类的离群点,会得到更好的结果。
行为属性 :定义对象的特征,并用来评估对象关于它所处的情境是否为离群点。在上述例子中,行为属性可以是消费金额,消费频率等
情境离群点分析为用户提供了灵活性,因为用户可以在不同情境下考察离群点,这在许多应用中都是非常期望的。
给定一个数据集,数据对象的一个子集形成集体离群点,如果这些对象作为整体显著的偏离整个数据集。如一家供应链公司,每天处理数以千计的订单和出货。如果一个订单的出货延误,则可能不是离群点,因为统计表明延误时常发生。然而,如果有一天有100个订单延误,则必须注意。这100个订单整体来看,形成一个离群点,尽管如果单个考虑,它们每个或许都不是离群点。你可能需要更详细地整个考察这些订单,搞清楚出货问题。
与全局和情境离群点检测不同,在集体离群点检测中,不仅必须考虑个体对象的行为,而且还要考虑对象组群的行为。因此,为了检测集体离群点,需要关于对象之间联系的背景知识,如对象之间的距离或相似性测量方法。
离群点检测的统计学方法对数据的正常性做假定。假定数据集中的正常对象由一个随机过程(生成模型)产生。因此,正常对象出现在该随机模型的高概率区域中,而低概率区域中的对象是离群点。
离群点检测的统计学方法的一般思想是:学习一个拟合给定数据集的生成模型,然后识别该模型低概率区域中的对象,把它们作为离群点。有许多不同方法来学习生成模型,一般而言,根据如何指定和如何学习模型,离群点检测的统计学方法可以划分成两个主要类型: 参数方法和非参数方法。
参数方法: 假定正常的数据对象被一个以为参数的参数分布产生。该参数分布的概率密度函数给出对象被该分布产生的概率。该值越小,越可能是离群点。
非参数方法: 并不假定先验统计模型,而是试图从输入数据确定模型。非参数方法的例子包括直方图和核密度估计。
假定数据集由一个正态分布产生,然后,可以由输入数据学习正态分布的参数,并把低概率的点识别为离群点。
在正态分布的假定下,区域包含997%的数据,包含954%的数据,包含683%的数据。视具体情况而定,将其区域外的数据视为离群点。
这种直截了当的统计学离群点检测方法也可以用于可视化。例如盒图方法使用五数概况绘制一元输入数据:最小的非离群点值(Min)、第一个四分位数(Q1)、中位数(Q2)、第三个四分位数(Q3)和最大的非离群点值(Max)。
四分位数极差(IQR)定义为Q3-Q1。比Q1小15倍的IQR或者比Q3大15倍的IQR的任何对象都视为离群点,因为Q1-15 IQR和Q3+15 IQR之间的区域包含了993%的对象。
(1)使用马哈拉诺比斯距离检测多元离群点。
对于一个多元数据集,设为均值向量。对于数据集中的对象,从到的马哈拉诺比斯(Mahalanobis)距离为其中S是协方差矩阵。是一元数据,可以对它进行离群点检测。如果被确定为离群点,则也被视为离群点。
(2)使用统计量的多元离群点检测。
在正态分布的假设下,统计量可以用来捕获多元离群点。对于对象,统计量是
其中,是在第维上的值,是所有对象在第维上的均值,而是维度。如果对象的统计量很大,则该对象是离群点。
(3)使用混合参数分布
在许多情况下,数据是由正态分布产生的假定很有效。然而,当实际数据很复杂时,这种假定过于简单。在这种情况下,假定数据是被混合参数分布产生的。
混合参数分布中用期望最大化(EM)算法来估计参数。具体情况比较复杂,可以参考韩家炜的《数据挖掘:概念与技术》一书。
在离群点检测的非参数方法中,“正常数据”的模型从输入数据学习,而不是假定一个先验。通常,非参数方法对数据做较少假定,因而在更多情况下都可以使用。
使用直方图检测离群点
包括如下两步:
步骤1: 构造直方图。尽管非参数方法并不假定任何先验统计模型,但是通常确实要求用户提供参数,以便由数据学习。如指定直方图的类型(等宽或等深的)和其他参数(如直方图中的箱数或每个箱的大小)。与参数方法不同,这些参数并不指定数据分布的类型(如高斯分布)。
步骤2: 检测离群点。为了确定一个对象是否是离群点,可以对照直方图检验它。在最简单的方法中,如果该对象落入直方图的一个箱中,则该对象被看做是正常的,否则被认为是离群点。
对于更复杂的方法,可以使用直方图赋予每个对象一个离群点得分。一般可以令对象的离群点得分为该对象落入的箱的容积的倒数。得分越高,表明是离群点的概率越大。
使用直方图作为离群点检测的非参数模型的一个缺点是,很难选择一个合适的箱尺寸。一方面,如箱尺寸太小,则由很多正常对象都会落入空的或稀疏箱,因而被误识别为离群点。这将导致很高的假正例率或低精度。相反,如果箱尺寸太大,则离群点对象可能渗入某些频繁的箱中,这将导致很高的假负例率或召回率。为了解决这些问题,使用核密度估计来估计数据的概率密度分布。具体参考韩家炜的《数据挖掘:概念与技术》。
给定特征空间中的对象集,可以使用距离度量来量化对象间的相似性。基于邻近性的方法假定:离群点对象与它最近邻的邻近性显著偏离数据集中其他对象与它们近邻之间的邻近性。
有两种类型的基于邻近性的离群点检测方法:基于距离的和基于密度的方法。基于距离的离群点检测方法考虑对象给定半径的邻域。一个对象被认为是离群点,如果它的邻域内没有足够多的其他点。基于密度的离群点检测方法考察对象和它近邻的密度。这里,一个对象被识别为离群点,如果它的密度相对于它的近邻低得多。
对于待分析的数据对象集D,用户可以指定一个距离阈值r来定义对象的合理邻域。对于每个对象o,可以考察o的r-邻域中的其他对象的个数。如果D中大多数对象都远离o,即都不在o的r-邻域中,则o可以被视为一个离群点。
令是距离阈值,是分数阈值。对象是一个离群点,如果
其中是距离度量。
如何计算-离群点?一是嵌套循环方法,时间复杂度为。当数据集很大时,该方法的开销很大。为了改进性能,可以用基于网格的方法来实现。具体见韩家炜《数据挖掘》一书。
基于距离的离群点检测从全局考虑数据集。由于以下两个原因,这种离群点被看成“全局离群点”:
l 例如,一个-离群点至少远离(用参数r定量)数据集中的对象。换言之,这种离群点远离数据的大多数。
l 为了检测基于距离的离群点,需要两个距离参数,它们用于每个离群点对象。
现实世界的许多数据集都呈现更复杂的结构,那里对象可能关于其局部邻域,而不是关于整个数据分布而被视为离群点。如下图,基于距离的离群点检测方法不能捕获像o1和o2这样的局部离群点。
那么,如何确切地定义如图所示的局部离群点?这里关键的思想是,需要把对象周围的密度与对象邻域周围的密度进行比较。基于密度的离群点检测方法的基本假定是:非离群点对象周围的密度与其邻域周围的密度类似,而离群点对象周围的密度显著不同于其邻域周围的密度。
基于聚类的方法通过考察对象与簇之间的关系检测离群点。直观地,离群点是一个对象,它属于小的偏远簇,或不属于任何簇。
这导致三种基于聚类的离群点检测的一般方法。考虑一个对象。
l 该对象属于某个簇吗?如果不,则它被识别为离群点。
l 该对象与最近的簇之间的距离很远吗?如果是,则它是离群点。
l 该对象是小簇或稀疏簇的一部分吗如果是,则该簇中的所有对象都是离群点。
下面对每一种方法考察一个例子。
例1 把离群点检测为不属于任何簇的对象。如图1所示,使用基于密度的聚类方法,如DBSCAN,注意到黑色点都属于簇,白色点a不属于任何簇,因而被认为是离群点。
图1 对象a是离群点,因为 它不属于任何簇
图2 离群点(a,b,c)都(关于簇中心)远离距它们最近的簇
例2 使用到最近簇的距离的基于聚类的离群点检测。如图2所示,使用k-均值聚类方法,可以把图2中的数据点划分成3个簇,如图中不同符号所示,每个簇中心用“+”标记。对于每个对象o,都可以根据该对象与最近簇中心的距离,赋予该对象一个离群点得分。假设到o的最近中心为c,则o与c之间的距离为dist(o,c),c与指派到c的对象之间的平均距离为L,比率度量与平均值的差异程度。在图2中,点a,b和c都相对远离它们的对应中心,因而被怀疑是离群点。
例3 检测小簇中的离群点
迄今为止我们看到的每种方法都只检测个体离群点,因为它们一次把一个对象与数据集中的簇进行比较。然而,在大型数据中,一些离群点可能是类似的,并且形成一个小簇。例如,在入侵检测中,使用相同手段攻击系统的黑客可能形成一个簇。迄今为止所讨论的方法可能被这种离群点所欺骗。
为了解决这一问题,第三种基于聚类的离群点检测方法识别小簇或稀疏簇,并宣告这些簇中的对象也是离群点。这种方法的一个例子是FindCBLOF算法,其方法如下。
(1) 找出数据集中的簇,并把它们按大小降序排列。该算法假定大部分数据点都不是离群点,它使用一个参数来区别大簇和小簇。任何至少包含数据集中百分之(如,=90%)数据点的簇都被视为大簇,而其余的簇被看成小簇。
(2) 对于每个数据点赋予基于簇的局部离群点因子(CBLOF),对于属于大簇的点,它的CBLOF是簇的大小和该点与簇的相似性的乘积。对于属于小簇的点,它的CBLOF用小簇的大小和该点与最近的大簇的相似性的乘积计算。
CBLOF用统计学方法定义点和簇之间的相似性,代表点属于簇的概率。该值越大,点与簇越相似。CBLOF值可以检测远离任何簇的离群点。
基于聚类的离群点检测方法具有如下优点。首先,它们可以检测离群点,而不要求数据是有标号的,即它们以无监督方式检测。它们对许多类型的数据都有效。簇可以看成是数据的概括,一旦得到簇,基于聚类的方法只需要把对象与簇进行比较,以确定该对象是否是离群点,这一过程通常很快,因为与对象总数相比,簇的个数通常很小。
基于聚类的方法的缺点是:它的有效性高度依赖于所使用的聚类方法。这些方法对于离群点检测而言可能不是最优的。对于大型数据集,聚类方法通常开销很大,这可能成为一个瓶颈。
如果训练数据具有类标号,则离群点检测可以看做分类问题。基于分类的离群点检测方法的一般思想是,训练一个可以区分“正常”数据和离群点的分类模型。
基于分类的离群点检测方法通常使用一类模型(单分类模型SVDD),即构造一个仅描述正常类的分类器,不属于正常类的任何样本都被视为离群点。
基于分类的方法和基于聚类的方法可以联合使用,以半监督的方式检测离群点。
例通过半监督学习检测离群点
如上图所示,其中对象被标记为“正常”或“离群点”,或者没有标号。使用基于聚类的方法,发现一个大簇C和一个小簇C1。因为C中的某些对象携带了标号“正常”,因此可以把该簇的所有对象(包括没有标号的对象)都看做正常对象。在离群点检测中,使用这个簇的一类模型来识别离群点。类似的,因为簇C1中的某些对象携带标号“离群点”,因此宣布C1中的所有对象都是离群点。未落入C模型中的任何对象(如a)也被视为离群点。
与一般的离群点检测相比,识别情境离群点需要分析对应的情境信息。情境离群点检测方法可以根据情境是否可以清楚地识别而分成两类。
这类方法适用于情境可以被清楚识别的情况,其基本思想是把情境离群点检测问题转换成典型的离群点检测问题。具体地说,对于给定的数据对象,用两步来评估该对象是否是离群点。第一步,使用对象的情境属性识别对象的情境。第二步,使用一种传统的离群点检测方法,估计该对象的离群点得分。
在某些应用中,清楚地把数据划分成情境是不方便的或不可行的。这时,可以关于情境对正常行为建模。使用一个训练数据集,这种方法训练一个模型,关于情境属性的值,预测期望的行为属性值。然后,为了确定一个数据对象是否是情境离群点,可以在该对象的情境属性上使用该模型。如果该对象的行为属性值显著地偏离该模型的预测值,则该对象被宣布为情境离群点。
通过使用连接情境和行为的预测模型,这些方法避免直接识别具体情境。许多分类和预测技术都可以用来构建这种模型,如回归、马尔科夫模型和有穷状态自动机等等。
与情境离群点检测一样,集体离群点检测方法也可以划分为两类。第一类方法把问题归结为传统的离群点检测。其策略是识别结构单元,把每个结构单元(例如,子序列、时间序列片段、局部区域或子图)看做是一个数据对象,并提取特征。这样,集体离群点检测问题就转换成在使用提取的特征构造的“结构化对象”集上的离群点检测。一个结构单元代表原数据集中的一组对象,如果该结构单元显著地偏离提取的特征空间中的期望趋势,则它是一个集体离群点。
为集体离群点检测预先定义结构单元可能是困难的,或者是不可能的。因此,第二类方法直接对结构单元的期望行为建模。例如,为了在时间序列中检测离群点,一种方法是从序列中学习马尔科夫模型。因此,一个子序列被宣布为集体离群点,如果它显著地偏离该模型。
一般地,高维数据的离群点检测方法应该应对以下挑战:
l 离群点的解释:不仅应该能够识别检测离群点,而且能够提供离群点的解释。离群点的解释可能是,例如,揭示离群点的特定子空间,或者关于对象的“离群点性”的评估。这种解释可以帮助用户理解离群点的含义和意义。
l 数据的稀疏性:这些方法应该能处理高维空间的稀疏性。随着维度的增加,对象之间的距离严重地被噪声所左右。因此,高维空间中的数据通常是稀疏的。
l 数据子空间:它们应该以合适的方式对离群点建模,例如,自适应现实离群点的子空间和捕获数据的局部变化。在所有的子空间上使用固定的距离阈值来检测离群点捕食一种好想法,因为两个对象之间的距离随着维度增加而单调增加。
l 关于维度的可伸缩性:随着维度的增加,子空间的数量指数增加。包含所有可能的子空间的穷举组合探索不是可伸缩的选择。
高维数据的离群点检测方法可以划分成三种主要方法,包括扩充的传统离群点检测、发现子空间中的离群点和对高维离群点建模。
一种高维数据离群点检测方法是扩充的传统离群点检测方法。它使用传统的基于邻近性的离群点模型。然而,为了克服高维空间中邻近性度量恶化问题,它使用其他度量,或构造子空间并在其中检测离群点。
HilOut算法就是这种方法的一个例子。HitOut找出基于距离的离群点,但在离群点检测中使用距离的秩,而不是绝对距离。具体地说,对于每个对象o,HitOut找出o的k个最近邻,记作nn1(o),nn2(o)……nnk(o),其中k是一个依赖于应用的参数。参数o的权重定义为
所有对象按权重递减序定秩。权重最高的top-p个对象作为离群点输出,其中p是另一个用户指定的参数。
HilOut算法计算每个对象的k-最近邻开销很大,当维度很高并且数据很大时不能伸缩。
另一种方法则是通过维归约,把高维离群点检测问题归结为较低维上的离群点检测。其基本思想是,把高维空间归约到低维空间,那里标准的距离度量仍然能够区分离群点。如果能够找到这样的较低维空间,则可以用传统的离群点检测方法。
为了降低维度,可以对离群点检测使用或扩充一般的特征特征选择和提取方法。例如,可以用主成分分析(PCA)来提取一个低维空间。
高维数据中离群点检测的另一种方法是搜索各种子空间中的离群点。其唯一的优点是,如果发现一个对象是很低维度的子空间的离群点,则该子空间提供了重要信息,解释该对象为什么和在何种程度上是离群点。
如何检测子空间中的离群点,一种方法是基于网格的子空间离群点检测。具体做法见韩家炜《数据挖掘》。
另一种方法是试图直接为高维离群点建立一个新模型。这种方法通常避免邻近性度量,而是采用新的启发式方法来检测离群点。具体做法见韩家炜《数据挖掘》。
欢迎分享,转载请注明来源:品搜搜测评网