328
312

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

最速でPyCaretを使ってみた

Last updated at Posted at 2020-04-19

はじめに

早速ですが、先日リリースされた機械学習ライブラリーPyCaretを使用してみました。
誰でも簡単にモデリングができるなと実感しました。本当にめちゃくちゃ簡単でした!
10行もコードを書かずに前処理から、チューニング、予測ができます!
引数などまだ把握できていない部分が多くありますが、PyCaretの記事を1番に書こうと思い書きました。
気づいた点があればコメントお願いします。

0. 環境とversion

  • PyCaret 1.0.0
  • Google Colaboratory

1. まずはインストールから

下記のコードを実行しインストールします。
体感ですが、2,3分で終わりました。
ローカルでインストールしたらエラーが出てきたので、一旦断念しています。

! pip install pycaret

2. データの取得

今回はbostonのデータを使用していきます。以下のコードでデータを取得できます。

from pycaret.datasets import get_data
boston_data = get_data('boston')

3. 前処理

前処理を行います。
setup()にデータとターゲット変数を定義し、初期化しています。
今回は回帰問題を解くので、pycaret.regressionを指定しています。
分類問題の場合は、pycaret.classificationを指定してください。
自然言語処理、クラスタリングなどのタスクを行うこともできます。

setup()は欠損値処理や、カテゴリーデータのエンコーディング、train-test-splitなどを行なってくれます。
詳しくは、こちらを参照ください。

from pycaret.regression import *
exp1 = setup(boston_data, target = 'medv')

実行するとセットアップが完了します。
image.png
image.png

4. モデルの比較

モデルの比較し選択していきましょう。
モデルの比較については、下記の1行で行えます。2、3分で終了しました。
評価指標も一覧で確認できて便利ですね!デフォルトで、k-foldを10分割で行なっています。
引数で、fold数や、ソートする指標を指定できます。(実行はデフォルトで行なっています。)

compare_models()

実行結果はこちら
image.png

5.モデリング

モデルを選択してモデリングを行います。今回はRandom Forestを使用しています。(完全に気分ですね。)
この関数は、k-foldしたスコアとトレーニング済みモデルオブジェクトを含むテーブルを返します。
SDも確認できてとても便利ですね!

rf = create_model('rf')

image.png

トレーニング済みオブジェクトの後ろにピリオドで指定することで、下記に様に確認できます。
image.png

6.チューニング

チューニングも1行で行えます。

tuned_rf = tune_model('rf')

image.png

パラメータの取得は下記でできます。

tuned_rf.get_params

image.png

7.モデルの可視化

モデルの精度を可視化してみましょう。回帰のプロットは以下の図ですが、分類問題の場合は、指標に合わせてアウトプットを選択できます。
分類問題の可視化のバリエーションが豊富なので、ここにきて分類問題を選択しておけばよかったと少し後悔しました。。。

plot_model(tuned_rf)

image.png

8.モデルの解釈

モデルの解釈はSHAPを用いて行なっております。
グラフの見方や、モデルの解釈方法については、SHAPのgitを確認ください。

interpret_model(tuned_rf)

image.png

9.予測

testデータに対しての予測は下記の様に書きます。
実行結果は、setup()でtrain-test-splitした30%のテストデータに対して予測した結果を返してくれます。

rf_holdout_pred = predict_model(rf)

image.png

新たなデータに対して予測を行う際には、dataの引数にデータセットを渡します。
※今回は元のデータを使い回しています。

predictions = predict_model(rf, data=boston_data)

一番右に予測結果が追加されます。
image.png

最後に

最後までお読みいただきありがとうございました。
何かありましたら、コメントよろしくお願いいたします。

参考サイト

328
312
5

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
328
312

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?