用于异常值检测的分类数据编码

用于异常值检测的分类数据编码

用于异常值检测的分类数据编码

📰 来源:Towards Data Science | 📅 翻译日期:2026年6月23日
🔗 原文查看原文
🤖 翻译:DeepSeek AI · 仅供参考

系列概述

本文是异常值检测系列文章的一部分,继之前的多篇文章(如《基于表格和图像数据的深度学习异常值检测》、《用于异常值检测的距离度量学习》、《使用PCA进行异常值检测入门》等)之后,重点探讨如何处理分类数据

异常值检测的数据类型需求

在进行表格数据的异常值检测时,通常需要将数据转换为全分类全数值格式。大多数异常值检测算法假设数据严格为一种格式,因此必须进行转换。

  • 若检测器期待分类数据,则数值特征需分箱后转为分类格式。
  • 若检测器期待数值数据(更常见的情况),则分类特征需进行数值编码。这是本文的重点。

常见的异常值检测算法

  • 分类数据算法:Frequent Patterns Outlier Factor (FPOF)、Association Rules、基于熵的方法。
  • 数值数据算法:Isolation Forests、Local Outlier Factor (LOF)、kth Nearest Neighbors (kNN)、Elliptic Envelope。

其中,Isolation ForestLOF 是最常用的数值型算法,而 scikit-learnPYOD 中的所有算法均假设数据为全数值。

混合数据的挑战

现实中的表格数据多为混合型(同时包含数值和分类列),因此异常值检测中经常需要编码分类列。仅处理单一类型数据能简化异常值识别的难度。

对于数值数据,还可利用几何视角:将每一行视为高维空间中的一个点。异常值即为距离大多数点较远的点。如下图所示(2维示例):

  • 蓝色点:典型数据
  • 红色星:可能的异常值(簇边缘的点或孤立点)
注意:高维下存在“维度灾难”,但基本概念仍成立:异常值是相对孤立的点。

大多数数值型异常值检测器通过计算点间距离来识别异常,虽然实际算法会优化效率,但原理如此。

分类数据的编码方法

对于预测问题,常见编码方法包括:

  1. One-hot编码
  2. Ordinal编码
  3. Target编码

但在异常值检测中,适用的方法不同,且优劣各异。其中最有效的是:

  • One-hot编码
  • Count编码(在预测问题中很少使用,但对异常值检测很实用)
其他如Target编码、CatBoost编码等需要目标列,但异常值检测通常无目标列。

常用的编码库是 Category Encoders,它覆盖多种方法。

参考资料

  • 书籍:《异常值检测(Python版)》
  • 系列文章:Deep Learning for Outlier Detection on Tabular and Image Data, Distance Metric Learning for Outlier Detection, An Introduction to Using PCA for Outlier Detection, Interpretable Outlier Detection: Frequent Patterns Outlier Factor (FPOF), Perform Outlier Detection More Effectively Using Subsets of Features

📌 *本文由 DeepSeek AI 自动翻译排版,如有不准确之处欢迎指正* 🏠 [返回首页](https://www.suiyuanlu.cn) · 📖 [查看原文](https://towardsdatascience.com/encoding-categorical-data-for-outlier-detection/)
©版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

评论已关闭