#ターゲットの設定
project.set_target(
target = 'ターゲット名',
mode = dr.AUTOPILOT_MODE.MANUAL, #マニュアルモードを選択
worker_count = 20 #使用するワーカー数を20に設定
)
bps = project.get_blueprints() #ブループリントの候補を取得
#LightgbmとRandomForestとElastic-Netだけ選択
lgb = [bp for bp in project.get_blueprints() if 'Light' in bp.model_type]
rf = [bp for bp in project.get_blueprints() if 'Random' in bp.model_type]
els = [bp for bp in project.get_blueprints() if 'Elastic' in bp.model_type]
bps = lgb + rf + els
#選択したブループリントに絞って学習
for bp in bps:
project.train(bp)
こちらが DataRobot に元から搭載されているブループリントの一例です。データが前処理や特徴量エンジニアリングを経て XGBoost(図中では、eXtreme Gradient Boosted Trees Classifier と表記)に投入されている様子が確認できます。
次は、このブループリントの XGBoost を、Composable ML を用いて筆者が Python でコーディングした「ロジスティック回帰」に書き換えた例です。このように、Composable ML では皆様が Python や R で書いたオリジナルの処理をブループリントに実装し、DataRobot で実行することができます。もちろん、この皆様が実装した処理は社内に共有することが可能です。Composable ML に関する詳細は、ドキュメントやオンラインコースをご参照ください。
Composable ML の活用事例
では、DataRobot のブループリントに皆様が手を加えたいケースとはどのような場合でしょうか。DataRobot は予めデータ前処理や特徴量エンジニアリングのほとんどを自動化していますが、ドメイン知識が必要な処理は実装されていません。そのため、Composable ML は皆様のドメイン知識をモデルに組み込みたい時に最も有用であると言えるでしょう。この章では Composable ML の活用事例を3パターンご紹介させていただきます。
事例1: ベースラインモデルの実装
DataRobot が作成した機械学習モデルを採用するべきか判断する場合に、これまで業務に使用していたモデルと比較したいケースがあります。例えば、簡単なルールベースのモデルや、別ツールで作成した機械学習モデルなどとの比較です。この場合、そのモデルを Python や R で書き、Composable ML を用いて DataRobot で実行することにより、DataRobot が作ったモデルとこれまで使用していたモデルをリーダーボード上で比較することができるようになります。
以下のリーダーボード例では、DataRobot が作成した3つのモデル(2種類の Elastic-Net Classifier と Light Gradient Boosted Trees Classifier)の精度が、Composable ML で実行したこれまでのモデル(ベースラインモデル)の精度よりも高いことが確認できます。同じ条件で DataRobot のリーダーボード上で比較することにより、DataRobot が作成したモデルの業務実装可否を判断しやすくなることでしょう。
事例2: ドメイン知識を活用したモデルの精度向上
先述した通り、DataRobot はドメイン知識に基づく特徴量エンジニアリングを実施しません。例えば、DataRobot は外れ値があればデータ品質評価機能を用いて警告をしてくれますが、外れ値の除去を積極的に行うことはありません。これは、本当に取り除いて良いデータなのかはドメイン知識のある皆様しか分からないためです。そのため、皆様が普段扱うデータセットに十分詳しく、外れ値を除去しても問題ないと考えるのであれば、このドメイン知識を DataRobot のブループリントに反映することが可能です。例えば、数値データの±3 σの範囲外のデータを欠損値に置き換える処理は外れ値が多いデータセットでは有効な場合が多いです。他にも、SMILES という分子の化学構造を踏まえた前処理を Composable ML で実装することにより、予測精度が向上した事例があります。詳細はこちらをご参照ください。
事例3: 途中のデータ処理結果を出力し、モデルを更に理解する
機械学習モデルがブラックボックス化されていると人はモデルを理解・解釈することができず、業務適用しづらくなります。DataRobot ではこのブラックボックス化を避けるため、Permutation Importance、Partial Dependance、SHAP 等の豊富なアルゴリズムの実装により説明可能なAI を実現しています。さらに、Composable ML を用いることでブループリントの途中の処理結果を CSV ファイルとして出力することが可能となり、モデルの解釈性をさらに高めることができるようになります。