1、引言

前面讨论的都是数值数据,然而,在现实生活生成中,还有很多其他类型的数据,如性别、种族、邮编、人员和实体的名称、IP地址等。通常处理这些数据更有挑战,因为难以以均匀和一致的方式来处理各种类型的属性。

类别(分类)属性也称为离散属性,如颜色类别,红、黄、橙等。这些属性的一个重要特征是,基础值本质上是无序的。与数值数据相比,通常很难定义同一属性的不同值之间的相似性。

分类数据给异常检测算法带来的挑战:

1、极值分析和统计计算依赖于统计量化的使用,如数值的均值和标准差。在分类数据的情况下,这种统计量化不再有意义。

2、针对数值数据设计了PCA等线性模型。虽然数据可以被预处理成稀疏的二进制表示(one-hot编码),但数据矩阵中的数目可能太大,大多数是0,这给计算上带来了挑战。但是目前的软硬件发展迅速,计算问题将不再是主要问题。

3、所有基于邻近的算法都依赖于一些距离的概念。然而,许多距离量化,如欧式距离函数,对分类数据没有意义或有效。因此,分类数据需要重新定义邻近函数,以便能够使用基于邻近的算法。

4、许多基于密度的模型,如LOCI,不能很容易地适应分类数据,因为这些方法隐含地依赖于距离的概念。

然而,所有类别的算法都可以通过适当的修改来适应分类数据。在这些方法中,需要进行相似性计算,因此数据的相似性度量比较重要。

对于分类数据,可以将分类属性的每个值作为二进制属性来转换为二进制数据(one-hot编码)。二进制数据允许使用许多算法。尽管二进制数据存在一定的缺点,如高维、稀疏。

2、将概率模型推广到分类数据

与数值数据一样,分类数据的概率异常检测模型使用生成模型。主要的区别在于生成分布是根据分类记录的而不是数值记录量身定做的。

生成模型的优点是,通过选择底层分布和特定的生成过程来捕获特定数据域的复杂性。一旦这个生成过程被取消,人们就可以以数据驱动的方式学习相应数据分布的参数。

分类数据的情况与数值数据的情况没有很大的不同。正如第二章中对数值数据定义了混合模型一样,我们可以为分类数据定义相应的混合模型。唯一的区别是,这个混合模型的每个分类的概率分布现在被定义为分类数据,而不是适合数值数据的高斯模型。这种差异主要影响参数估计的方法和具体细节。然而,在这两种情况下,总体框架总是相同的。此外,这种方法很容易扩展到混合属性数据,方法是为分类属性和数值属性定义单独的概率分布,并将它们按产品方式组合,以创建单个多元分布。

对于异常值的定义,由生成模型产生的概率较低的数据点(或低拟合概率)被认为是异常值。

2.1 混合数据建模

混合数据特别容易用概率模型无缝地处理,因为所有集群分配都是根据概率来评估的。在其他模型中使用混合数据的一个常见问题是有效归一化;在缺乏关于属性相对重要的先验知识的情况下,通常很难确保所有属性都由无监督算法提供同等重要性。在概率模型中,由于使用概率来描述各种类型属性的分布,在混合数据集的上下文中可能出现的所有规范化问题都会自动解决。这提供了对混合数据集的更均匀的处理。

3、将线性模型推广到分类和混合数据

通过使用从分类数据集到二进制场景的转换,线性模型可以扩展到分类数据集。

一个问题是,通过这种隐式转换,不同的属性可能被赋予不同的重要性。 例如,一个列中50%的二进制属性占1的值,与一个列中只有1%的属性占1的值非常不同。 在这种情况下,具有50%相对存在的列被隐式地赋予更大的权重,因为它的(二进制)值的方差更大。 通过将每一列除以其标准差,可以对数据集进行归一化。

主成分分析方法对于稀疏二进制数据集特别有效,因为它们可以在非常少量的组件中表示数据。

3.1 使用监督回归模型

也可以使用因变量建模,其中一个属性固定为预测属性,其他属性用于建模。建模的均方差根误差提供了一个特定于属性的异常值分数。这种方法依次与每个预测属性重复,每个数据点的分数在不同的预测器上平均。

4、将邻近模型推广到分类数据

分类数据的有效相似性度量的设计对于有效地实现k近邻方法等基于邻近的算法至关重要。对于分类数据,研究相似性而不是距离,通常更自然,因为许多度量自然是基于匹配的离散值。

两个点之间的相似性是个体属性值上的相似性之和。即两个点都可能各有很多属性,那么这两个点的相似性是这些属性的相似性之和。换句话说,这两个点的相似性和这两个点的所有属性都有关。

在分类数据中,测量相似性的两个方法:

1、数据的总体统计属性(即属性的统计频率)可以用来更好地计算相似性。例如,稀有属性值之间的匹配被认为更重要,而稀有属性值之间的不匹配被认为不那么重要。

2、数据点的统计邻域内出现的频数用于计算相似性。例如,如果红色和橙色更频繁地出现,这意味着红色和橙色在语义上比红色和蓝色在该邻域更相似。这种方法的优点是能够捕捉相关属性值之间的语义关系。

第二种相似计算方法显然要更丰富,因为它捕捉了属性之间的潜在关系。然而,其一个缺点是计算上将更加密集。

4.1 汇总统计相似性

在分类数据的上下文种,应该使用数据集的聚合统计属性来计算相似性。例如,考虑一个属性占正常99%时间的值和异常1%的值的情况。在这种情况下,频繁属性值之间的相似性应该比不频繁属性值赋予更少的权重。属性之间的差异也应该根据基本属性值的频率进行不同的加权。

这些相似度量在很大程度上依赖于数据。 在分类数据的情况下,由于难以计算点之间的数值距离,这种相似度量具有特殊的重要性。 一个更强的数据依赖度量是上下文相似性,这将在下一节中讨论。

4.2 上下文(语境)相似性

上下文相似性度量提供了一个根本不同的观点,其中数据点之间的关系被用来定义属性值之间的关系,反之亦然。

考虑一个来自超市的二进制交易数据库,其中属性是二进制的,并表示诸如可口可乐、百事可乐、芥末等商品的购买行为。 在这种情况下,很明显,两个分别购买可口可乐和百事可乐的客户比购买Mustard的客户更有可能在其他属性上表现出类似的购买模式。 相反的情况也是如此,类似的顾客(在其他属性上)更有可能购买可口可乐和百事可乐,而不是可口可乐和芥末。 因此,很明显,属性之间的相似性通常可以从数据点之间的相似性推断出来,反之亦然。 值得注意的是,这种关系具有内在的循环性。 这种循环性通常是用迭代方法在机器学习算法中解决的。

聚合相似性度量:

1、从属性之间的距离计算点之间的距离:属性之间的距离用于构造数据中“行”的真实表示。

2、从点之间的距离计算属性之间的距离:属性值之间的距离是根据其子关系之间的距离来定义的。

4.2.1  上下文相似性与线性模型的连接

这种方法与前面介绍的线性模型有着自然的联系。线性模型矩阵分解方法提供了一种自然的方法来同时计算行和列之间的相似性。

4.2.2 混合数据问题

对于混合数据的情况,推广任何基于邻近的方法是相当简单的,只要适当的权重可以分配给分类和数值分量

4.2.3 基于密度的方法

基于密度的方法可以自然地推广到离散数据,因为数值属性通常被离散化以创建频率剖面。在分类数据中,这些频率剖面可以直接在离散属性的不同组合上构造。

在混合属性数据的情况下,数值属性可以离散化,而分类属性可以保留其原始形式。

4.2.4 聚类方法

与数值数据的情况一样,异常值被定义为不是集群成员或没有足够接近集群的数据点。虽然分类数据存在许多聚类方法,但由于难以定义单个记录和聚类代表(质心)之间的相似性,这种方法往往不适用于分类域。

在离群点分析的分类域中常用的一种聚类方法是前面讨论的EM方法。 在这种情况下,拟合概率的负对数可以用来量化离群点分数。 虽然可以根据非成员到集群的基础来定义离群值,但这种方法没有被优化以在数据中找到真正的异常,并且可能发现噪声。 由于聚类方法往往对不同的参数选择(如簇数)敏感,因此最好用不同的聚类以多种方式对每个点进行评分。 这些不同聚类的分数被平均,以创建最终的离群点分数。

5、二进制和事务数据中的异常检测

二进制在实际问题中也存在比较多。另外,所有形式的分类数据和数值数据都可以通过各种形式的离散化转转为二进制数据。

事务数据在其自然状态下以二进制形式存在,在许多实际方面与人工转换获得二进制数据不同。事务类型数据通常是非常高维和稀疏的,具有高度相关的属性。

5.1 子空间方法

由于事务数据本质上是高维的,因此自然地利用子空间方法以识别相关的异常值。

对于异常值来说,子空间是稀疏的。因此,有人提出应该处理事务数据与密集子空间的关系,而不是稀疏子空间的关系这一挑战。在事务数据的上下文中,子空间集群本质上是频繁的模式。

5.2 时间事务中的新颖性

事务数据通常是时间性的,其中单个事务与时间戳相关联。与以前事务的“正常”模型不一致的新事务可以被视为一种新奇。

有人提出了一种快速二进制数据流新奇检测的方法。这种方法属于一般类基于邻近的方法。这种方法可以应用于文本和分类数据。该方法的广泛思想是持续维护底层时间数据流中的集群。 自然不适合任何这些集群的数据点被认为是新奇的。

6、文本数据中的异常检测

文本数据与高维和稀疏事务数据具有许多概念上的相似性。然而,单词频率通常与文本属性相关联;因此,数据集通常不是二进制的。然而,简化的二进制表示有时用于只考虑单词是否存在的文本。

文本数据可以看作是多维数据的稀疏、高维和非负形式。因此,大多数基于概率、线性和邻近的二进制和多维数据方法都可以推广到文本数据。

然而,由于文本的稀疏性、高维性和非负性,这些模型的实现方式存在一些细微的差异。概率模型和线性模型之间也有一些有趣的联系,因为文本的一些线性模型(如矩阵分解)在性质上也是概率的。

6.1 概率模型

概率模型通常用于文本数据的软聚类,其中文本被分配到不同集群的成员的概率。通过“软”聚类,我们指的是文本没有具体地分配给给定的簇(集群),而是分配给每个簇的概率。这种方法本质上是期望最大化EM算法在文本域中的应用。

其主要思想是将语料库表示为各种分布的混合物,其参数是使用特的那个的文档(文本)集合来估计的。

6.2 线性模型:潜在语义分析Latent Semantic Analysis

潜在语义分析LSA的目标很大程度上是为了改善底层数据表示,从而减少噪声和异常值的影响。

其中一个问题是文本表示的方面是同义词和多义。同义词是指多个词可能描述相同的概念。在多义中,同一个词可能对应不同的概念。显然,这些词的存在可以看作是噪声,这大大降低了许多应用程序的质量,如相似性搜索。

潜在语义分析是一种改进底层数据表示的方法,以减少这种噪声的影响。

LSA的一个很好的特点是,维数的截断消除了同义和多义的噪声效应,相似性计算更好地受数据中语义概念的调控。

书上还提到了Probabilistic Latent Semantic Analysis (PLSA),翻译过来是概率潜在语义分析。PLSA可以被认为是一种概率方法,也可以被认为是一种线性方法

6.3 基于邻近的模型

与所有数据类型一样,相似函数的设计在文本数据中也很重要。单词频率需要根据它们在文档中和整个集合中的相对频率进行归一化。文本处理的一种常见方法是基于向量空间的 tf-idf 表示。在 tf-idf 表示中,每个单词的术语频率由反向文档频率或idf 归一化。

在实现这种归一化之后,将余弦相似函数应用于向量空间表示,以测量相似性。余弦测度等于两个向量的点积。规范化的思想是以一种公平的方式计算不同长度的文档之间的相似性。

最近,在快速数据流中,也提出了一种新的检测方法。 这种方法使用指数衰减模型,以便从数据流同时确定簇和新奇。 最后,如果有更多的数据点与文档的内容相匹配,这些新奇的东西就会被转换成集群。 这种方法还能够识别新的东西,最终转化为数据流的广泛趋势。

7、总结

这章研究分类、文本、事务和混合数据集中异常检测的方法。这些数据之间有许多广泛的相似之处。

概率模型可以通过定义适当的生成模型来适应各种数据域。

现有的大多数基于邻近的异常检测方法也可以很容易地通过定义适当的相似函数来适应这些不同的领域。

混合属性数据集可以通过邻近方法来处理,只要定义了适当的方法来加权每个组件的向西行。

文本和二进制数据都倾向于高维和稀疏。

因此,各个领域的技术可以通过适当修改以适应所研究领域的问题。

读书笔记《Outlier Analysis》 第八章 分类、文本和混合属性中的异常检测相关推荐

  1. 读书笔记《Outlier Analysis》 第九章 时间序列和多维流的异常检测

    1.引言 1.1 基本介绍 时间和流数据的异常检测场景出现在许多应用中,如传感器数据.机械故障诊断.医疗数据.网络入侵数据.新闻文本帖子和财务帖子等.在这些问题中,时间连续性假设在识别异常值方面起着至 ...

  2. 读书笔记——数据压缩入门(柯尔特·麦克安利斯)中

    文章目录 数据压缩入门汇总 第六章 自适应统计编码 6.1 位置对熵的重要性 6.2 自适应VLC编码 6.2.1 动态创建VLC表 6.2.2 字面值 6.2.3 重置 6.2.4 何时重置 6.3 ...

  3. 《Hands-On Machine Learning with Scikit-Learn TensorFlow》读书笔记(三):分类

    最近有时间看书了,把以前想看的书捡一下,翻译中顺便加上自己的理解,写个读书笔记. 注意:下面的"数字+s"表示的是数字的类别,加上s是和纯数字区别开. 在上上篇中,我们提到最常见的 ...

  4. python cook读书笔记第2章字符串和文本

    使用多个界定符分割字符串 line = 'asdf fjdk; afed, fjek,asdf, foo' import re # line = re.split(r'[;,\s]\s*',line) ...

  5. Linux内核分析 读书笔记 (第十八章)

    第十八章 调试 18.1 准备开始 1. 需要的只是: 一个bug 一个藏匿bug的内核版本 相关内核代码的知识和运气 2. 在跟踪bug的时候,掌握的信息越多越好. 18.2 内核中的bug 1.  ...

  6. C语言入门经典读书笔记 ----第六章 字符串和文本的应用

    1.什么是字符串 字符串常量的例子非常常见,字符串常量是放在一对双引号中的一串字符或符号,一对双引号之间的任何内容都会被编译器视为字符串,包括特殊字符和嵌入的空格.以下是使用字符串的例子: print ...

  7. 《Linux内核设计与实现》 第五周 读书笔记(第十八章)

    第18章 调试 20135307张嘉琪 18.1 准备开始 18.2 内核中的bug 内核中的bug多种多样,它们的产生可以有无数的原因,同时它们的表象也变化多端,从明白无误的错误代码(比如,没有把正 ...

  8. 读书笔记《学习之道》芭芭拉·奥克利 - 一 书中说了什么

    <学习之道>这本书,虽然网上很多评论说写的啰嗦,但是仔细看下去,觉得还是很有价值.因为很多事情虽然自己也明白,比如怎么克服拖延,比如怎么让知识更加成体系,但是就是很难做到.虽然书上描述的学 ...

  9. 【状态估计】电力系统状态估计中的异常检测与分类(Matlab代码实现)

最新文章

  1. 信息抽取(五)实体命名识别之嵌套实体识别哪家强,我做了一个简单的对比实验
  2. connectionstring mysql_Entity Framework 6 自定义连接字符串ConnectionString连接MySQL
  3. 查询SQLSERVER执行过的SQL记录
  4. 计算机视觉研究入门全指南
  5. 捋一捋20201217
  6. 基于SOC方案的嵌入式开发-远程定时设备
  7. 功能接口 java8_Java 8功能接口
  8. 大数据 对冲基金Cayman Atlantic
  9. 电池供电设备增加高精度库仑计
  10. 【国内下载Android系统源码的方法】
  11. python输入一个三位数输出百位十位个位_编程实现:输入一个三位数,输出其百位、十位、个位上的数字。_学小易找答案...
  12. 小说阅读APP开发定制搭建方案
  13. 数据库(表结构)设计技巧及注意事项
  14. 运维工程师项目案例_要建设AIOps,运维工程师的角色和职责需如何调整?
  15. 没有苹果开发账号,只有p12文件和mobileprovision文件进行打包
  16. 会声会影2020试用版如何激活序列号正式版及快速零基础剪辑教程
  17. 海德汉 LSV2 协议采集
  18. 《冷读术》值得一看--读书笔记
  19. win7搜索文件 服务器,win7系统搜索不到文件的解决方法
  20. “碳排放”挑战当前,维谛技术(Vertiv)带来节能改造最佳实践

热门文章

  1. 16. 设计模式之契约原则:如何做好 API 接口设计?
  2. Vue3答题问卷H5实战
  3. 幸运数字II(二进制问题)
  4. android删除手机照片恢复软件下载,android手机里被删除的照片怎么恢复软件
  5. 网 络 世 界 的 黑 暗 面
  6. Windows系统时间同步出错解决办法(w32tm /register按回车,可能是为了解决时间COM注册的问题)
  7. java单根结构_对象导论:单根继承结构
  8. html显示下滑线,html超链接添加下划线
  9. 2021年安装deepin20.3和windows双系统
  10. js 将字符串转化为number的简单方式