距离检测算法:K-center
基于距离的方法是基于下面这个假设:即若一个数据对象和大多数点距离都很远,那这个对象就是异常。
基于距离的方法比基于统计类方法要简单得多;因为一个数据集合定义一个距离的度量要比确定数据集合的分布容易的多。
该方法通常要为数据对象定义一个异常分,最简单的定义方法是用数据对象与最近的K个点的距离之和。很明显,与K个最近点的距离之和越小,异常分越低;与K个最近点的距离之和越大,异常分越大。我们设定一个距离的阈值,异常分高于这个阈值,对应的数据对象就是异常点。
算法实现:
给定一个点集合以及点间的距离,从中选取k个点来设置中心,使得各点与离它最近的中心的距离的最大者达到最小。
每次不断的迭代使这个最大距离最后取得一个最小值。
当进行异常检测的时候我们就可以通过比较这个最大距离的最小值来进行异常点的检测,有一个点的距离特别大,那么这个点就很有可能是异常点。
缺点:当噪声点的区别影响大于小缺陷点时,小缺陷容易被漏检
解决方案:1.基于监督的异常检测,但是需要标注,还需要大量的样本