LoginSignup
5
5

More than 3 years have passed since last update.

PyCaret を使ってみた

Last updated at Posted at 2020-04-23

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を使ってみた

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5