Technical Articles
SAP Data IntelligenceとSAP HANA APLでML活用 – Part 2. モデルによる予測
はじめに
本ブログはSAP Data IntelligenceとSAP HANA APLでML活用 – Part 1. モデル作成の続きになります。
今回は、前回ブログで作成したMLモデルを活用し、データを予測する方法を説明します。
本ブログの目的
SAP Data Intelligence(以降、DI)とSAP HANA Automated Predictive Library(以降、APL)により、ビジネスユーザーが簡単にMLを活用できることを理解。
前提知識
- MLの基礎知識:モデル、分類といった言葉がわかるレベル
- HANAの基礎知識:HANA Studioを触ったことがあるレベル
説明の流れ
- DIとHANAの接続設定
- MLモデル作成
- モデルによる予測
1と2は冒頭の別ブログをご参照ください。
上記のうち、1はDB管理者やデータサイエンティストが実施します。
1を実施するとDIからデータソース(今回はHANA)にアクセスできるようになり、その後はビジネスユーザーがDIを用いて自由にMLを活用出来るようになります。
3. モデルによる予測
テンプレート選択
前回ブログの通り、DIにはパイプラインという機能があり、様々な機能を持つOperatorを組み合わせることで、モデル作成やデータ転送、APIエンドポイント作成等、様々なことを行うことが出来ます。
パイプラインにはシーン別にテンプレートが用意されており、テンプレートを使うことで、より簡単にMLやデータ転送を実施することができます。
本ブログでは、作成したモデルを元にデータの予測を行いたいと思います。
HANA ML機能による予測のテンプレートには、以下3種類があります。
- HANA ML Inference on Dataset: HANA DBに存在するデータセットに対し、作成済みモデルを元に予測を行うテンプレート
- HANA ML Inference on API Requests: REST APIのエンドポイントを作成し、作成済みモデルを元にREST経由で来たリクエストに対して予測結果を返すテンプレート
- HANA ML Forecast Template: REST APIのエンドポイントを作成し、モデルを必要とせず、REST経由で来たリクエストに対してon the flyで予測結果を返すテンプレート
このうち、今回はHANA DBに存在するデータセットを元に予測を行うHANA ML Inference on Datasetテンプレートを使用したいと思います。
予測対象データセット設定
DIのLaunchpadで、ML Scenario Managerを選択します。
Version 1を選択します。
補足)MLシナリオは、Version管理を行うことが出来ます。今回はVersionを新規に作成していないため、デフォルトのVersion 1を選択します。
“Pipelines”の”Create”を選択します。
パイプラインの名称を記載し、テンプレートとして”HANA ML Inference on Dataset”を選択します。
“Create”を押すと、以下のようにModelerというパイプライン編集画面がブラウザの新規タブで開きます。
“HANA ML Inference”オペレーターをクリックし、”Open Configuration”を選択します。
指定したHANA ML Inferenceオペレーターの設定画面が右側に開きます。
“Connection”の”Editproperty”ボタンをクリックします。
“Configuration Type”で”Configuration Manager”を選択します。
“Connection ID”に、Connection Managementで設定済みのHANAのConnectionを選択します。
“Key Column”にテーブルのキーである”CLAIM_ID”カラムを指定します。
“Inference Data Source”に”HANA DB”を指定します。
次に、”Inference Dataset”からMLの予測に利用するデータセットを選択します。
Connection設定で指定したHANAをDI上から参照できるので、スキーマ ⇒ テーブルとドリルダウンし、MLの予測に利用したいテーブルを選択します。
まずはスキーマを選択します。
選択したスキーマに含まれるテーブル一覧が表示されるので、MLの予測に利用するテーブルを選択します。
“Send Inference Results to”で”HANA table”を選択します。
“Results Table Name”に、予測結果を登録するHANAのテーブル名を記載します。
今回は、AUTO_CLAIMS_NEWテーブルを元に予測した結果を、AUTO_CLAIMS_NEW_PREDICTEDに書き込みます。
“Insert Mode”に”Overwrite”を指定します。
これでHANA ML Inferenceオペレーターの設定は完了です。
モデル指定
続いて、予測に使用するモデルを設定します。
“Submit Artifact Name”オペレーターをクリックし、”Open Configuration”を選択します。
“Content”の${ARTIFACT:MODEL}に、MLモデルのIDを指定します。
前回作成したモデルのIDを確認するために、ブラウザのタブでML Scenario Managerに戻ります。
ML Scenario Managerのシナリオ画面で、”Models”に記載されている”Technical Identifier”の値をクリックし、クリップボードに値をコピーします。
ブラウザのタブでModeler画面に戻ります。
“Content”の${ARTIFACT:MODEL}を以下のように先ほどコピーしたIDに変更します。
{“artifact”:{“id”:”${ARTIFACT:MODEL}”}}
↓
{“artifact”:{“id”:”120c3a32-99a1-4476-b8eb-4e8f1c19eb95″}}
“Save”ボタンで編集したパイプラインを保存します(Ctrl + Sでも可)。
パイプラインでMLによる予測実行
DIのModeler画面に戻り、“Run”ボタンで作成したパイプラインを実行します。
“Status”欄に実行状態が表示されます。以下をクリックすると該当の実行中パイプラインの詳細がタブで表示されます。
パイプラインの実行が完了すると、以下のように”Status”が”Completed”と表示されます。
予測結果の確認
HANA Studioで、予測結果を確認します。
以下のように、予測結果の書き込み先として指定した新たなテーブルが出来ています。
“AUTO_CLAIMS_NEW_PREDICTED”で右クリックし、”Open Data Preview”を選択します。
以下のように、MLによる予測結果を確認することができます。
まとめ
以上のように、DIとAPLを活用することにより、データ分析の知識がないビジネスユーザーが、GUIベースで直感的にMLを活用することができます。
データサイエンティストやIT部門に依頼することなく、業務がわかるビジネスユーザーが実現したいことを手軽にMLで試すことが出来れば、試行錯誤のサイクルが早くなり、イノベーションを起こすスピードが上がると思います。
Part.1、Part.2と、2回にわたりブログを読んで頂きありがとうございました!
ML基盤として是非、DIとAPLをご活用頂けたら幸いです!