/tune-easy

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Easytuner

python pypi license

A hyperparameter tuning tool for Machine Learning, extremely easy to use

Currently, Easytuner is compatible with Scikit-Learn. Compatibilities with other ML flameworks are under development.

This documentation is Japanese language version. English version is here

API reference is here


使用例

一括チューニング

複数の機械学習アルゴリズムを一括チューニングして比較できます

from tune_easy import AllInOneTuning
import seaborn as sns
# データセット読込
iris = sns.load_dataset("iris")
iris = iris[iris['species'] != 'setosa']  # 2クラスに絞る
TARGET_VARIABLE = 'species'  # 目的変数
USE_EXPLANATORY = ['petal_width', 'petal_length', 'sepal_width', 'sepal_length']  # 説明変数
y = iris[TARGET_VARIABLE].values
X = iris[USE_EXPLANATORY].values
###### チューニング一括実行 ######
all_tuner = AllInOneTuning()
all_tuner.all_in_one_tuning(X, y, x_colnames=USE_EXPLANATORY, cv=2)
all_tuner.df_scores

詳細チューニング

1種類の機械学習アルゴリズムのパラメータを詳細にチューニング・可視化できます

from tune_easy import LGBMClassifierTuning
import seaborn as sns
# データセット読込
iris = sns.load_dataset("iris")
iris = iris[iris['species'] != 'setosa']  # 2クラスに絞る
TARGET_VARIABLE = 'species'  # 目的変数
USE_EXPLANATORY = ['petal_width', 'petal_length', 'sepal_width', 'sepal_length']  # 説明変数
y = iris[TARGET_VARIABLE].values
X = iris[USE_EXPLANATORY].values
###### チューニング実行と結果の可視化 ######
tuning = LGBMClassifierTuning(X, y, USE_EXPLANATORY)  # チューニング用クラス
tuning.plot_first_validation_curve(cv=2)  # 範囲を定めて検証曲線をプロット
tuning.optuna_tuning(cv=2)  # Optunaによるチューニング実行
tuning.plot_search_history()  # スコアの上昇履歴を可視化
tuning.plot_search_map()  # 探索点と評価指標を可視化
tuning.plot_best_learning_curve()  # 学習曲線の可視化
tuning.plot_best_validation_curve()  # 検証曲線の可視化

MLflowによるチューニング履歴の記録

from tune_easy import AllInOneTuning
import seaborn as sns
# データセット読込
iris = sns.load_dataset("iris")
iris = iris[iris['species'] != 'setosa']  # 2クラスに絞る
TARGET_VARIABLE = 'species'  # 目的変数
USE_EXPLANATORY = ['petal_width', 'petal_length', 'sepal_width', 'sepal_length']  # 説明変数
y = iris[TARGET_VARIABLE].values
X = iris[USE_EXPLANATORY].values
###### チューニング一括実行 ######
all_tuner = AllInOneTuning()
all_tuner.all_in_one_tuning(X, y, x_colnames=USE_EXPLANATORY, cv=2,
                             mlflow_logging=True)  # MLflowによる記録を指定
$ mlflow ui


インストール方法

$ pip install tune-easy

必要要件

  • Python >=3.6
  • Scikit-learn >=0.24.2
  • Numpy >=1.20.3
  • Pandas >=1.2.4
  • Matplotlib >=3.3.4
  • Seaborn >=0.11.0
  • Optuna >=2.7.0
  • BayesianOptimization >=1.2.0
  • MLflow >=1.17.0
  • LightGBM >=3.3.2
  • XGBoost >=1.4.2
  • seaborn-analyzer>=0.2.11

サポート

バグ等はIssuesで報告してください。

機能追加の要望(対応する学習器の追加etc.)もIssuesまでお願いします。


使用法

以下の2種類のチューニング法のいずれかを選び、使用手順およびAPI仕様をリンク先から参照してください

方法 クラス名 用途 使用手順リンク API仕様リンク
一括チューニング AllInOneTuning 複数の機械学習アルゴリズムを一括チューニングして比較 使用手順 API仕様
詳細チューニング 学習器の種類毎に異なる 1種類の機械学習アルゴリズムのパラメータを詳細にチューニング 使用手順 API仕様

クラス一覧

本ライブラリは以下のクラスからなります。用途に応じて使い分けてください

一括チューニング用クラス

複数の機械学習アルゴリズムを一括チューニングして比較したい際に使用するクラスです

クラス名 ファイル名 概要 API仕様(日本語) API仕様(英語)
AllInOneTuning all_in_one_tuning.py 複数の機械学習アルゴリズムでのチューニングを一括実行、結果をグラフ表示 API仕様 API Reference

詳細チューニング用クラス

1種類の機械学習アルゴリズムのパラメータを詳細にチューニングしたい際に使用するクラスです。 全てベースクラスであるtune_easy.param_tuning.ParamTuningクラスを継承しています。 メソッドのAPIリファレンスを見たい際には、ベースクラスのAPIリファレンスを参照ください

- 回帰

クラス名 ファイル名 概要 API仕様(日本語) API仕様(英語)
LGBMRegressorTuning lgbm_tuning.py LightGBM回帰のパラメータチューニング用クラス API仕様 API Reference
XGBRegressorTuning xgb_tuning.py XGBoost回帰のパラメータチューニング用クラス API仕様 API Reference
SVMRegressorTuning svm_tuning.py サポートベクター回帰のパラメータチューニング用クラス API仕様 API Reference
RFRegressorTuning rf_tuning.py ランダムフォレスト回帰のパラメータチューニング用クラス API仕様 API Reference
ElasticNetTuning elasticnet_tuning.py ElasticNet回帰のパラメータチューニング用クラス API仕様 API Reference

- 分類

クラス名 ファイル名 概要 API仕様(日本語) API仕様(英語)
LGBMClassifierTuning lgbm_tuning.py LightGBM分類のパラメータチューニング用クラス API仕様 API Reference
XGBClassifierTuning xgb_tuning.py XGBoost分類のパラメータチューニング用クラス API仕様 API Reference
SVMClassifierTuning svm_tuning.py サポートベクターマシン分類のパラメータチューニング用クラス API仕様 API Reference
RFClassifierTuning rf_tuning.py ランダムフォレスト分類のパラメータチューニング用クラス API仕様 API Reference
LogisticRegressionTuning logisticregression_tuning.py ロジスティック回帰分類のパラメータチューニング用クラス API仕様 API Reference