突然ですがDataRobotを知ってますか?
DataRobotはデータをつっこむだけでデータ前処理や可視化、そして様々な機械学習モデルの構築・評価・デプロイを行えるサービスです。
データ分析コンペプラットフォームのkaggleのトップランカーが集まったDataRobot社が開発したすごいサービスで、それはもうお値段もすごそうです。(笑)
そんななかつい先日、PythonのライブラリでPyCaretが公開されました。
このPyCaretはDataRobotに比べPythonの知識は必要になりますが、誰でも無料でDataRobotのような自動モデル構築が可能になる面白いライブラリです。
この記事では、実際にPyCaretの使い方を見ていきます。
PyCaretは、機械学習のデータ前処理や可視化、モデル開発を数行のコードで出来てしまうPythonのライブラリです。
PyCaretは主要な機械学習ライブラリ(scikit-learn, XGBoost, LightGBMなど)をPythonでラッパーしたものになっています。分類や回帰、クラスタリング、異常検知、自然言語処理が扱えます。
基本的に、前処理、モデリング、性能評価、チューニング、可視化まで一通り出来ます。
さらに、スタッキング等も出来ます。すごいですよね!
インストールの方法はこれだけです。
pip install pycaret
今回はサンプルとしてirisデータセットを用いて多クラス分類をしてみます。
# 不要な警告文を表示しない import warnings warnings.filterwarnings("ignore") # PyCaretを読み込む。 from pycaret.classification import * # Irisデータセットを読み込む。 from sklearn.datasets import load_iris # Pandasも読み込む。 import pandas as pd
次に、irisデータを準備します。
iris = load_iris() X = pd.DataFrame(iris.data, columns=iris.feature_names) y = pd.DataFrame(iris.target, columns=["target"]) df = pd.concat([X,y], axis=1)
データの前処理
setup()を使うと、欠損値処理、データ分割などをいい感じにやってくれます。targetには、目的変数を渡します。
exp_clf = setup(df, target = 'target')
モデルの比較
モデルの比較はcompare_models()を使うだけです。compare_models関数を実行すると、準備したデータのうちの70%の訓練データで、k分割交差検証(kのデフォルトは10)を用いて種々のアルゴリズムを自動で比較検証してくれます。
compare_models()
今回は決定木(decision tree)を利用します。決定木は'dt'と入力すれば良いです。
tree = create_model('dt')
tuned_tree = tune_model('dt')
他にも下記のようなことが可能です。
# パラメータの取得
tuned_tree.get_params
# モデルの可視化
plot_model(tuned_tree)
# アンサンブル学習(ここではlightgbmとxgboostでやってみます)
lgbm = create_model('lightgbm')xgboost = create_model('xgboost')ensemble = blend_models([lgbm, xgboost])
そして最後にモデルを使った予測です。
pred = predict_model(tuned_tree)
一から機械学習モデル構築をやったことがある人はこんなに簡単に一通りできてびっくりですよね!
0 件のコメント:
コメントを投稿