异常检测识别与规范显著不同的数据点,并且有几种算法常用于此任务。三种广泛采用的方法包括孤立森林、单类 SVM 和局部离群因子 (LOF)。 每种方法都有其独特的优势,具体取决于数据类型、可扩展性需求和异常性质(例如,点异常与上下文异常)。 了解这些算法有助于开发人员为欺诈检测、系统监控或质量控制等场景选择合适的工具。
孤立森林是一种基于树的算法,旨在通过随机分区数据来有效隔离异常。 它的工作原理是构建决策树,其中异常(由于其稀有性)被隔离得更靠近根,需要的拆分更少。 例如,在交易金额数据集中,正常交易紧密聚集,而欺诈交易则分散。 孤立森林根据隔离样本的路径长度计算异常评分。 它对于高维数据来说速度很快,并且不依赖于距离度量,因此适合大型数据集。 但是,如果数据具有密集聚类,它可能会难以处理局部异常。
单类 SVM 是一种基于核的方法,它围绕正常数据学习决策边界,将外部的所有内容都视为异常。 当异常在训练期间很少见或未定义时,它很有用。 例如,在服务器监控中,可以对正常的 CPU 使用模式进行建模,并标记偏差。 该算法将数据映射到更高维度的空间,并最大化原点与大多数数据点之间的裕度。 虽然对于非线性模式有效,但其性能很大程度上取决于核选择(例如,RBF 或多项式)和超参数(如 nu),后者控制裕度的紧密度。 由于计算复杂度,它对于非常大的数据集的可扩展性较差。
局部离群因子 (LOF) 衡量数据点相对于其邻居的局部密度偏差。 异常的密度显着低于其邻居。 例如,在网络流量分析中,来自单个 IP 的请求突然激增可能会被标记。 LOF 可以有效地检测全局方法无法检测到的上下文异常,因为它考虑了邻域结构。 但是,它需要仔细调整参数(如邻居数 (k)),并且由于“维度灾难”,它对于高维数据并不理想。 它最适合局部关系很重要的中小型数据集。
每种算法都有优缺点:孤立森林在速度和可扩展性方面表现出色,单类 SVM 处理复杂的边界,而 LOF 捕获局部异常。 开发人员在选择方法时应优先考虑数据特征(大小、维度、异常类型)和计算约束。