Skip to main content
QUICK REVIEW

[論文レビュー] HiClass: a Python library for local hierarchical classification compatible with scikit-learn

Fábio Malcher Miranda, Niklas Köhnecke|arXiv (Cornell University)|Dec 13, 2021
Machine Learning in Bioinformatics被引用数 21
ひとこと要約

HiClass は、局所的階層分類を実装する scikit-learn 互換の Python ライブラリであり、ノードレベル、親ノードレベル、レベルレベルの分類器をサポートし、階層的メトリクスを備えています。木構造または DAG 構造のデータに対して柔軟なトレーニングポリシーを用いてトレーニングと予測を可能にし、フラットなアプローチと比較して階層分類タスクにおけるパフォーマンスを向上させます。

ABSTRACT

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.

研究の動機と目的

  • Python における局所的階層分類のための統合的で、scikit-learn 互換のフレームワークを提供すること。
  • 複数の設計パターンをサポートすること:ノードごとのローカル分類器、親ノードごとの分類器、レベルごとの分類器。
  • 階層的適合度を評価するための階層的精度(precision)、再現率(recall)、F スコア(F-score)を提供し、階層データに対してより適切な評価を可能にすること。
  • 部分的な階層構造や欠損ラベルを含むトレーニングを可能にし、現実世界の応用における実用性を高めること。
  • カスタム推定器と Ray や Joblib を用いた並列トレーニングにより拡張性を提供すること。

提案手法

  • 既存の ML ワークフローとパイプラインとの完全な互換性を確保するため、scikit-learn の BaseEstimator API を使用している。
  • 階層ラベルを n_samples × n_levels の形状を持つ構造化された NumPy 配列として表現し、欠損ラベルには空文字列を割り当てている。
  • 階層構造を有向無閉路グラフ(DAG)としてモデル化するために NetworkX を使用しており、木構造から複雑な階層構造まで対応可能である。
  • 排他的(Exclusive)、包含的(Inclusive)、兄弟ノード(Siblings)など、6 種類のトレーニングポリシーを実装し、バイナリ分類器の正例・負例を定義している。
  • Ray や Joblib を用いた並列トレーニングによりローカル分類器を高速化しつつ、予測はトップダウンに進行させ、階層の整合性を保っている。
  • 階層的メトリクス(hP:精度、hR:再現率、hF:F スコア)を導入し、標準メトリクスの祖先・子孫ノード集合の共通部分を用いた拡張として定義している。

実験結果

リサーチクエスチョン

  • RQ1scikit-learn エコシステムに完全に統合された Python での階層分類の効率的実装方法は何か?
  • RQ2ローカル階層分類器に最も効果的なトレーニングポリシーは何か?また、それらはパフォーマンスにどのように影響するか?
  • RQ3階層的評価メトリクスは、階層データに対して標準的なフラットメトリクスよりも意味のあるパフォーマンスインサイトを提供できるか?
  • RQ4トレーニングおよび予測時に、不完全なまたは部分的にしか分かっていない階層構造はどのように処理されるか?
  • RQ5HiClass は、単純な木構造を越えて、DAG や多様な階層構造をどの程度サポートできるか?

主な発見

  • HiClass は、ノードごと、親ノードごと、またはレベルごとのローカル分類器を用いて階層データのトレーニングと予測を可能にし、階層を保つトップダウンの予測を一貫して実行している。
  • 正例・負例を定義するための 6 種類の異なるトレーニングポリシーをサポートしており、モデル設計の柔軟性を提供している。
  • 階層的メトリクス(hP、hR、hF)は、階層分類のパフォーマンス評価において、フラットメトリクスよりも適切であることが示された。
  • Ray や Joblib を用いた並列実行によりトレーニングを高速化でき、バイナリ分類器およびマルチクラス分類器の両方をサポートしている。
  • 外側のレベルに欠損ラベルがある部分的な階層構造もサポートしており、不完全なデータを含む現実世界のシナリオにおける耐障害性を高めている。
  • HiClass は簡略化された BSD ライセンスの下でリリースされており、学術的および商業的応用における広範な利用が可能である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。