scikit-learn-contrib/category_encoders

A library of sklearn compatible categorical variable encoders

What it solves

机器学习模型通常需要数值输入,但现实世界的数据集往往包含类别变量(例如国家名称或性别)。该库提供了一套完整的工具,将这些类别标签转换为模型可以处理的数值格式,并为简单的 one-hot encoding 提供更高级的替代方案。

How it works

它将多种编码技术实现为 scikit-learn 风格的转换器。这些技术分为两大类:

  • 无监督编码器:仅根据特征本身将类别转换为数字(例如:Binary, Hashing, One-Hot, 和 Ordinal encoding)。
  • Supervised encoders:使用目标变量来指导编码过程,这对于高基数(high-cardinality)特征更为有效(例如:Target Encoding, CatBoost, 和 LeaveOneOut encoding)。

该库直接与 pandas DataFrames 和 numpy arrays 集成,并设计用于 scikit-learn pipelines。

Who it’s for

数据科学家和机器学习工程师,特别是需要预处理处理高基数特征的数据,当标准 one-hot encoding 会产生过多列时。

Highlights

  • Scikit-learn compatible:作为标准转换器使用,使其易于放入现有的 ML pipelines。
  • Extensive library:支持多种监督式和无监督编码方法。
  • Overfitting prevention:包含一个 NestedCVWrapper 和针对监督式编码器特定的 fit_transform 逻辑,以减少数据泄露。
  • Flexible input:支持 numpy arrays 和 pandas DataFrames。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目