yzhao062/combo

(AAAI' 20) A Python Toolbox for Machine Learning Model Combination

何を解決するか

combo は、複数の機械学習モデルとその予測スコアを統合して、より強力な結果を得るための Python ツールボックスです。複数のモデルを訓練し、その出力を統合することで、単一のモデルを使用するよりも高い精度とロバスト性が得られることがよくあります。このライブラリは、分類、クラスタリング、異常検出のタスクにおいて、その統合ステップを簡単かつ一貫性のある方法で実現します。

動作方法

combo は、scikit-learn、XGBoost、LightGBM からのモデルを統合するための統一された API を提供します。まず、基本推定器(たとえば、決定木、ロジスティック回帰、k近傍法、ランダムフォレストなど)のリストを用意します。次に、単純平均、重み付き平均、多数決、またはより高度な戦略(スタッキング(メタ学習)、動的分類器/アンサンブル選択(DCS/DES)、クラスタリングアンサンブル(EAC)など)を選択します。また、異常検出器向けの専用統合方法(Average of Maximum (AOM)、Locally Selective Combination (LSCP))も含まれています。すべての方法は同じ fit / predict / predict_proba インターフェースを共有しており、戦略の切り替えが簡単です。可能な限り、numba と joblib を使用して計算を高速化しています。

対象ユーザー

複数の訓練済みモデルを統合してモデル性能を向上させたいデータサイエンティスト、ML実務者、研究者。特に分類、クラスタリング、または異常検出のタスクに取り組んでいる場合に有用です。また、Kaggle風のコンペティション出場準備において、アンサンブル手法がスコアを向上させるため、これも役立ちます。

特徴

  • すべての統合方法で統一された API — 同じ fit / predict / predict_proba のパターン。
  • 一般的な統合(平均、重み付き平均、最大値、中央値、多数決)に加え、高度な手法(スタッキング、DCS、DES、EAC、LSCP、XGBOD)をカバー。
  • 人気のある ML ライブラリ(scikit-learn、XGBoost、LightGBM、pyod)と互換性あり。
  • クラス分類器の統合、クラスタリングの統合、異常検出器の統合の具体例とサンプル出力付き。
  • numba(JIT)と joblib(並列化)を可能な限り活用して最適化。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト