Skip to main content
QUICK REVIEW

[論文レビュー] A scikit-based Python environment for performing multi-label classification

Piotr Szymański, Tomasz Kajdanowicz|arXiv (Cornell University)|Feb 5, 2017
Text and Document Classification Technologies参考文献 21被引用数 118
ひとこと要約

scikit-multilearn は BSD ライセンスの Python ライブラリで、scikit-learn を拡張し、高度なマルチラベル分類アルゴリズム、ラベル空間の分割、および埋め込み手法を提供し、スパース表現の効率性と Python データサイエンススタックとの統合を目指します。

ABSTRACT

scikit-multilearn is a Python library for performing multi-label classification. The library is compatible with the scikit/scipy ecosystem and uses sparse matrices for all internal operations. It provides native Python implementations of popular multi-label classification methods alongside a novel framework for label space partitioning and division. It includes modern algorithm adaptation methods, network-based label space division approaches, which extracts label dependency information and multi-label embedding classifiers. It provides python wrapped access to the extensive multi-label method stack from Java libraries and makes it possible to extend deep learning single-label methods for multi-label tasks. The library allows multi-label stratification and data set management. The implementation is more efficient in problem transformation than other established libraries, has good test coverage and follows PEP8. Source code and documentation can be downloaded from http://scikit.ml and also via pip. The library follows BSD licensing scheme.

研究の動機と目的

  • 疎行列上に構築された高速でスケーラブルなマルチラベル分類用Pythonライブラリを提供する。
  • 高度なアルゴリズム適応と問題変換を用いて scikit-learn を拡張する。
  • マルチラベルタスクのためのラベル空間分割とラベル埋め込みアプローチを導入する。
  • MEKA/MULAN/WEKA の Java スタックへの Python ラッパーを提供し、より広い手法アクセスを可能にする。
  • Python データサイエンススタックとの互換性と BSD ライセンスの確保。

提案手法

  • scikit-learn スタイルの API 内で、アルゴリズム適応および問題変換を含むマルチラベルアルゴリズムを実装する。
  • クラスタリング、ラベル同時出現グラフ、ランダム分割、専門家定義の分割を使用したラベル空間分割のフレームワークを開発する。
  • CLEMS および LNEMLC のようなマルチラベル埋め込み手法を、 manifold learning の一般的な埋め込み器と共に提供する。
  • ライセンス上の競合なく、Python ユーザー向けに Java のマルチラベルスタック(MEKA、MULAN、WEKA)をラップする。
  • 統一されたインターフェースを介して、Keras 互換のモデルをマルチラベルタスクで使用できるようにする。
  • メモリ効率を改善するために主に疎行列上で動作する。

実験結果

リサーチクエスチョン

  • RQ1scikit-learn エコシステム内でマルチラベル分類法を効率的に実装するにはどうすればよいか?
  • RQ2Python でのマルチラベル問題の性能を向上させるフレームワーク(ラベル空間分割、埋め込み、グラフベースの分割)はどれか?
  • RQ3標準ベンチマークにおける速度とメモリの観点で、scikit-multilearn は Java ベースのライブラリ(MEKA、MULAN)とどう比較されるか?
  • RQ4scikit-multilearn は Keras ラッパーを介して深層学習モデルをマルチラベル分類に統合できるか?
  • RQ5非 Python スタックと連携する際に、どの程度の BSD ライセンスと API 互換性が達成可能か?

主な発見

  • Label space division with Binary Relevance を使用した場合、いくつかのデータセットで scikit-multilearn は競合する Java ライブラリよりも高速でメモリ効率が良い。
  • 大規模なラベル空間で特に、Label Powerset 変換を用いる場合には競合他社を上回すことが多い。
  • sparse-mparse ベースの改善を他のツールより提供し、実行時間とメモリプロファイルを有利にしている。
  • 0.1 から 0.2 のリリース時系列は、継続的な開発と高いテストカバレッジ(0.2.0 で 82%)を備えた安定した API を示している。
  • MEKA/MULAN/WEKA へのラッパーを提供し、マルチラベルタスク向けに Keras ベースのモデルをサポートする。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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