开发者学堂课程【高校精品课北京理工大学数据仓库与数据挖掘(下):Clustering-Base and Classification -Base Approaches】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1041/detail/15657
Clustering-Base and Classification -Base Approaches
内容介绍:
一、基于聚类的异常检测方法
二、基于分类的异常检测算法
本课程开始数据仓库与数据挖掘的学习。在这一部分,会介绍基于聚类和基于分类的一种检测方法。
一、基于聚类的异常检测方法
首先来看一下基于聚类的异常检测方法。基于聚类的异常检测方法中,将数据进行聚类,得到若干和蔟。如果一个数据对象,她不属于任意蔟。或者是这个数据对象,它离比较大的蔟的距离比较远,甚至它属于一个比较稀疏的蔟,把这样的一些数据对象认为是异常点。
使用于聚类算法进行异常检测,有很多种方法,主要介绍 DBSCAN, k-means 算法两种方法。
1. DBSCAN 方法
首先,对于 DBSCAN 方法。基于 DBSCAN 异常检测方法比较简单。因为在基于DBSCAN 的聚类算法中,将数据对象划分为三类,一类是核心点,指的是蔟的中心的点,一类是边界点,指的是位于蔟边缘的点,还有一类点,把它称之为叫做异常点,也就是不属于任何一个蔟的点。那么,用 DBSCAN 算法是直接可以识别异常数据的。
2.k-means 算法
再来看一下 k-means 算法。使用 k-means 算法进行聚类的时候,会将所有的数据对象都会划分到特定的蔟中去。针对于 k-means 算法,去可以设计每一个数据对象的异常评分。数据对象的异常评分,是可以用下图公式去计算。
其中第一个部分 dist(o,co) 指的是计算这个数据对象欧到它所在蔟中心的距离。avg_dist(co) 指的是这个数据集中个各蔟的中心距离的平均值,如果dist(o,co)/avg_dist(co) 的值比较大,就意味着这个数据对象,它可所在的蔟中心的距离是非常大的,那么把这样的数据点认为是异常点。
二、基于分类的异常检测算法
基于分类的异常检测算法,基于分类的异常检测算法主要是将异常检测问题把它转化成为一个分类问题,那么最直接的就是将数据集标记的异常数据设置为负试力,而正常数据设置为正式例,对于这样的一个分类问题,那么它存在的缺点前面介绍过,就是会存在类别不均衡的问题,针对这样的一个问题,还可以使用这样的一个one-class model,也就是可以把所有的正式例去构建一个用于描述正式例的分类。
可以利用所有的正式例去构建一个描述正式力的模型,然后将数据对象和这个模型进行对比,如果数据对象不符合这个模型,就认为它是异常数据。
关于基于聚类的异常检测算法和基于分类的异常检测算法就介绍到这里。