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
複数の機械学習アルゴリズムを一括チューニングして比較できます
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() # 検証曲線の可視化
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 |