[论文解读] HiClass: a Python library for local hierarchical classification compatible with scikit-learn
HiClass 是一个与 scikit-learn 兼容的 Python 库,用于局部层次分类,实现了节点级、父节点级和层级级分类器,并支持层次度量。它通过灵活的训练策略,使用户能够在树形或有向无环图(DAG)结构的数据上进行训练和预测,相较于平面方法,在层次分类任务中表现出更优的性能。
HiClass is an open-source Python library for local hierarchical classification entirely compatible with scikit-learn. It contains implementations of the most common design patterns for hierarchical machine learning models found in the literature, that is, the local classifiers per node, per parent node and per level. Additionally, the package contains implementations of hierarchical metrics, which are more appropriate for evaluating classification performance on hierarchical data. The documentation includes installation and usage instructions, examples within tutorials and interactive notebooks, and a complete description of the API. HiClass is released under the simplified BSD license, encouraging its use in both academic and commercial environments. Source code and documentation are available at https://github.com/scikit-learn-contrib/hiclass.
研究动机与目标
- 提供一个统一的、与 scikit-learn 兼容的 Python 框架,用于实现局部层次分类。
- 支持多种设计模式:每个节点一个分类器、每个父节点一个分类器,以及每层一个分类器。
- 支持使用层次精确率、召回率和 F1 分数进行评估,这些指标更适合层次数据。
- 支持部分层次结构和缺失标签的训练,提升在现实场景中的适用性。
- 通过自定义估计器和使用 Ray 或 Joblib 的并行训练,提供可扩展性。
提出的方法
- 使用 scikit-learn 的 BaseEstimator API,实现与现有机器学习工作流和流水线的完全兼容。
- 将层次标签表示为形状为 n_samples × n_levels 的结构化 NumPy 数组,缺失标签用空字符串表示。
- 使用 NetworkX 将层次结构建模为有向无环图(DAG),支持树形结构和复杂层次结构。
- 实现六种训练策略(如 Exclusive、Inclusive、Siblings 等),用于定义二分类器的正负样本。
- 通过 Ray 或 Joblib 支持局部分类器的并行训练,同时预测过程采用自顶向下的方式,以保持一致性。
- 引入层次度量:hP(精确率)、hR(召回率)和 hF(F1 分数),通过祖先-后代集合交集,将标准度量进行扩展。
实验结果
研究问题
- RQ1如何在 Python 中高效实现层次分类,同时与 scikit-learn 生态系统完全兼容?
- RQ2哪些是最有效的局部层次分类器训练策略,它们如何影响模型性能?
- RQ3与平面指标相比,层次评估度量是否能为层次数据提供更有意义的性能洞察?
- RQ4该库在训练和预测过程中如何处理不完整或部分已知的层次结构?
- RQ5HiClass 在支持除简单树形结构外的多样化层次结构(包括 DAG)方面,其能力范围如何?
主要发现
- HiClass 支持基于每个节点、每个父节点或每层的局部分类器进行训练和预测,并通过一致的自顶向下预测机制保持层次结构的一致性。
- 该库支持六种不同的训练策略,用于定义正负样本,从而在模型设计上提供灵活性。
- 层次度量(hP、hR、hF)被证明比平面度量更适合评估层次分类的性能。
- 通过使用 Ray 或 Joblib 进行并行执行,可加速训练过程,同时支持二分类和多分类的局部分类器。
- 该库支持外层缺失标签的不完整层次结构,增强了在真实世界中数据不完整场景下的鲁棒性。
- HiClass 采用简化版 BSD 许可证发布,适用于学术和商业应用,具有广泛的使用潜力。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。