1. 環境とversion
- PyCaret 1.0.0
- Python 3.7.6
- Jupyter lab
- OSX Catalina 10.15.3
2. インストール
pip install pycaret
Jupyter labからの場合
!pip install pycaret
3. 起こり得るエラー
scikit-learnのバージョンが0.22ではないとエラーが出るので気をつけてください
4. データ
今回は既存の糖尿病のデータを使います。PyCaretのget_dataから直接データフレームで取得可能。
from pycaret.datasets import get_data
df = get_data("diabetes")
5. 前処理
回帰問題の場合は
from pycaret.regression import *
分類問題の場合は
from pycaret.classification import *
setup()はカテゴリーデータのエンコーディング,欠損値処理,データの分割(train_test_split)を行ってくれます。target= でターゲットを指定する。
experiment = setup(df, target="Class variable")
6. モデル比較
以下を行うだけでモデルの比較が可能です。便利ですねぇ。
k-foldはデフォルトで10なっています。fold数などは指定可能です。
compare_models()
一番いい結果を黄色でハイライトしてくれます。
7. モデリング
これも簡単で以下の一行でモデリングできます。
model = create_model("ada")
classificationの略は以下です。
Estimator | Abbrev. String |
---|---|
Logistic Regression | ‘lr’ |
K Nearest Neighbour | ‘knn’ |
Naives Bayes | ‘nb’ |
Decision Tree | ‘dt’ |
SVM (Linear) | ‘svm’ |
SVM (RBF) | ‘rbfsvm’ |
Gaussian Process | ‘gpc’ |
Multi Level Perceptron | ‘mlp’ |
Ridge Classifier | ‘ridge’ |
Random Forest | ‘rf’ |
Quadratic Discriminant Analysis | ‘qda’ |
AdaBoost | ‘ada’ |
Gradient Boosting Classifier | ‘gbc’ |
Linear Discriminant Analysis | ‘lda’ |
Extra Trees Classifier | ‘et’ |
Extreme Gradient Boosting | ‘xgboost’ |
Light Gradient Boosting | ‘lightgbm’ |
Cat Boost Classifier | ‘catboost’ |
今回はAda Boost Classifierを選択しました。
Regressionの略は以下です。
Estimator | Abbrev. String |
---|---|
Linear Regression | ‘lr’ |
Lasso Regression | ‘lasso’ |
Ridge Regression | ‘ridge’ |
Elastic Net | ‘en’ |
Least Angle Regression | ‘lar’ |
Lasso Least Angle Regression | ‘llar’ |
Orthogonal Matching Pursuit | ‘omp’ |
Bayesian Ridge | ‘br’ |
Automatic Relevance Determination | ‘ard’ |
Passive Aggressive Regressor | ‘par’ |
Random Sample Consensus | ‘ransac’ |
TheilSen Regressor | ‘tr’ |
Huber Regressor | ‘huber’ |
Kernel Ridge | ‘kr’ |
Support Vector Machine | ‘svm’ |
K Neighbors Regressor | ‘knn’ |
Decision Tree | ‘dt’ |
Random Forest | ‘rf’ |
Extra Trees Regressor | ‘et’ |
AdaBoost Regressor | ‘ada’ |
Gradient Boosting Regressor | ‘gbr’ |
Multi Level Perceptron | ‘mlp’ |
Extreme Gradient Boosting | ‘xgboost’ |
Light Gradient Boosting | ‘lightgbm’ |
CatBoost Regressor | ‘catboost’ |
8. チューニング
チューニングも一行です!楽すぎます。
tuned_model = tune_model("ada")
パラメーターも取得できます。
tuned_model.get_params
8. モデルの評価と可視化と解釈
上から順に評価と可視化と解釈ができます。plotとinterpreにはplot="boundary"などを入れることによって別のグラフが所得できます。
evaluate_model(tuned_model)
plot_model(tuned_model)
interpret_model(tuned_model)
9. 予測
model_pred = predict_model(tuned_model)
splitしたデータに対して予測値を返してくれます。
predictions = predict_model(tuned_model,data=df)
data=で新しいデータをしてして予測を行える。
##参考サイト
最速でPyCaretを使ってみた