Ctrl+D 收藏本站 再次访问不迷路 ~
📰 来源: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 Forest 和 LOF 是最常用的数值型算法,而 scikit-learn 和 PYOD 中的所有算法均假设数据为全数值。
混合数据的挑战
现实中的表格数据多为混合型(同时包含数值和分类列),因此异常值检测中经常需要编码分类列。仅处理单一类型数据能简化异常值识别的难度。
对于数值数据,还可利用几何视角:将每一行视为高维空间中的一个点。异常值即为距离大多数点较远的点。如下图所示(2维示例):
- 蓝色点:典型数据
- 红色星:可能的异常值(簇边缘的点或孤立点)
注意:高维下存在“维度灾难”,但基本概念仍成立:异常值是相对孤立的点。
大多数数值型异常值检测器通过计算点间距离来识别异常,虽然实际算法会优化效率,但原理如此。
分类数据的编码方法
对于预测问题,常见编码方法包括:
- One-hot编码
- Ordinal编码
- 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
评论已关闭