路线图#

本文档提供了核心贡献者希望在 Feature-engine 中看到开发内容的一般方向。由于资源有限,我们无法承诺何时或是否会包含此处列出的转换器。我们欢迎所有能够支持这一愿景的帮助。如果您有兴趣贡献,请联系我们。

目的#

Feature-engine 的使命是简化和优化端到端特征工程管道的实现。它的目标是帮助用户在研究阶段以及将模型投入生产时都能受益。

Feature-engine 通过允许在其转换器中直接选择特征子集,使数据工程变得简单。它还通过返回数据框以便于数据探索,与探索性数据分析(EDA)很好地结合。

Feature-engine 的转换器保留了 Scikit-learn 的功能,具有 fit() 和 transform() 方法,并且可以集成到 Pipeline 中,以简化将模型投入生产的过程。

Feature-engine 设计用于实际应用场景。每个转换器都有明确的目标,并且针对特定变量和数据进行了定制。转换器会引发错误和警告,以支持用户在给定数据的情况下使用合适的转换。这些错误有助于避免在开发的不希望阶段无意中将缺失值引入数据框。

愿景#

目前,Feature-engine 的功能主要针对表格数据,包括数值、分类或日期时间变量。我们从2022年开始支持时间序列预测的特征创建。

但我们希望扩展 Feature-engine 的功能,使其能够处理文本和时间序列数据,同时扩展其当前对表格数据的功能。

在下图中,我们展示了 Feature-engine 的总体结构和愿景:

../_images/FeatureEnginePackageStructure.png

功能引擎结构#

当前功能#

表格数据的大部分功能已经包含在包中。我们根据用户反馈和建议,以及我们在这个领域的研究,扩展和更新了这一部分库。灰色部分是尚未包含在包中的转换器:

../_images/FeatureEnginePackageStructureCrossSectional.png

表格数据的转换器#

Feature-engine 目前支持的转换返回的特征易于解释,转换的效果清晰易懂。Feature-engine 的最初目的是提供适合在实际环境中创建模型并返回可理解变量的技术。

尽管如此,越来越多的用户正在请求功能,以组合或转换变量,从而返回非人类可读的特征,以试图提高模型性能,并在数据科学竞赛中获得优势。我们目前正在考虑将此功能纳入包中。

所需功能#

我们还希望添加一个模块,该模块从简单的文本变量中返回直接的特征,以捕捉文本复杂性,例如计算单词数量、唯一单词、词汇复杂性、段落和句子数量。我们还会考虑将sklearn的词袋模型(Bag of Words)和TF-IDF与一个包装器集成,该包装器返回一个准备用于训练机器学习模型的数据框。下面我们将更详细地展示这些新模块。

../_images/FeatureEnginePackageStructureDatetimeText.png

新模型需求:日期时间与文本#

此外,我们希望扩展我们的时间序列预测功能模块。我们正在考虑的转换如下图中所示:

../_images/FeatureEnginePackageStructureTimeseries.png

时间序列模块及其设想的变换#

目标#

我们的主要目标是:

  • 继续维护一个高质量、文档齐全的数据处理标准工具集合。

  • 通过更多关于 Feature-engine 功能的示例来扩展文档。

  • 扩展文档,增加关于如何为该包贡献的详细信息。

  • 根据前述段落扩展库的功能。

如需更细致的目标和当前及即将解决的问题,请访问我们仓库中的 issues 部分。