scikit-learn-contrib/category_encoders

A library of sklearn compatible categorical variable encoders

解决的问题

机器学习模型通常需要数值输入,但现实世界的数据集通常包含类别变量(如国家或性别)。该库提供了一套全面的工具,用于将这些类别标签转换为模型可以有效处理的数值格式。

工作原理

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

  • 无监督编码器:在不查看目标变量的情况下将类别转换为数字(例如,One-Hot、Binary、Hashing 和 Ordinal 编码)。
  • 有监督编码器:利用目标变量来指导编码过程,对某些模型而言可能更强大(例如,Target Encoding、CatBoost 和 LeaveOneOut 编码)。

该库可直接与 pandas DataFrames 和 numpy 数组集成,并设计为可嵌入 scikit-learn 流水线中使用。

适用人群

需要对类别数据进行预处理以训练模型的数据科学家和机器学习工程师,特别是处理高基数特征时,简单的一次热编码可能效率低下。

主要亮点

  • scikit-learn 兼容性:作为标准转换器工作,可轻松集成到现有 ML 流水线中。
  • 丰富的库:提供大量有监督和无监督编码方法。
  • 防止过拟合:包含 NestedCVWrapper 和特定的 fit_transform 逻辑,用于有监督编码器以减少数据泄露。
  • 灵活的输入:支持 pandas DataFrames 和 numpy 数组。

相关

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