Technical Articles
SAP Data IntelligenceとSAP HANA APLでML活用 – Part 1. モデル作成
はじめに
SAP Data Intelligence(以降、DI)は、「データ管理」と「AIの開発・運用」を一つに統合したソリューションです。詳細については、SAP Data Intelligenceで実現するエンタープライズAIをご参照ください。
SAP HANA Automated Predictive Library(以降、APL)は、AIのモデルを作ってMLを活用できるHANAの機能です。
本ブログの目的
DIとAPLにより、データサイエンスの知識がないビジネスユーザーが簡単にMLを活用できることを理解。
前提知識
- MLの基礎知識:モデル、分類といった言葉がわかるレベル
- HANAの基礎知識:HANA Studioを触ったことがあるレベル
説明の流れ
- DIとHANAの接続設定
- MLモデル作成
- モデルによる予測 (別ブログ)
上記のうち、1のみはDB管理者やデータサイエンティストが実施します。
1を実施するとDIからデータソース(今回はHANA)にアクセスできるようになり、その後はビジネスユーザーがDIを用いて自由にMLを活用出来るようになります。
1. DIとHANAの接続設定
ここでは、HANAに分析対象のデータを登録し、DIのConnection ManagementからHANAの接続設定を行います。
補足)Connection Managementは、SAPやnon-SAPの様々なデータソースへの接続を定義し、管理する機能です。ここで定義した接続設定を用いることで、データカタログ機能によりDBのテーブルを確認したり、パイプライン機能によりデータ連携先として簡単にデータソースにアクセスできるようになります。
分析対象のデータ準備
今回はAPLのインストーラーに付属されているサンプルデータを使用します。
ユースケース:過去の保険申請の履歴を学習し、新たに来る保険申請が詐欺かどうかをMLで予測します。
データセットは以下になります。
学習データ:過去の保険申請データと、各申請が詐欺だったかどうかの結果(is fraudカラム)
テストデータ:詐欺かどうか予測したい新たに来る申請
HANAにデータ登録
はじめに、分析対象のデータセットをHANAに登録します。
HANA Studioで”File” ⇒ “Import”を選択します。
“SAP HANA” ⇒ “Catalog Objects”を選択します。
Import先のHANAを選択します。
“Import catalog objects from current client”を選択し、”Browse”からインポート対象のフォルダを選択します。
インポートするテーブルを選択し、”Add”ボタンで対象を指定します。
“Finish”を選択し、インポートを実行します。
指定したテーブルがインポートされたことを確認します。
これでHANAへのデータの取り込みは完了です。
以降は、DIでの操作になります。
DIとHANAの接続設定
DIのLaunchpadで、Connection Managementを選択します。
“Create Connection”ボタン(+)を押します。
“Connection Type”で”HANA_DB”を選択します。
接続対象となるHANAのホスト名、認証情報等を設定し、”Create”ボタンを押します。
Connectionの一覧画面で、”Action”ボタンから”Check Status”を実行します。
以下のようにOKと表示されたら、対象のHANAとの接続に成功しています。
このようにConnection Managementでデータソースに対する接続設定をすると、データカタログ機能によりDBのテーブルを確認したり、パイプライン機能によりデータ連携先として簡単にデータソースにアクセスできるようになります。
ここまでのDIとデータソースの接続設定は、DB管理者やデータサイエンティストに実施して頂く想定です。
2. MLモデル作成
ここでは、DIのML Scenario ManagerからMLのモデルを作成します。
ここからは、ビジネスユーザーに実施して頂く想定です。
補足)ML Scenario Managerは、煩雑になりがちなモデルの作成・管理・活用等のタスクを、シナリオ毎に効率よく管理する機能です。
MLシナリオ作成
DIのLaunchpadで、ML Scenario Managerを選択します。
“Create”ボタンを選択し、新規MLシナリオを作成します。
シナリオ名を記入し、”Create”で作成します。
モデル作成
“Pipelines”の”Create”を選択します。
補足)上記画面の通り、ML Scenario Managerには豊富な機能があり、データセットを管理したり、Jupyter Notebookを作成したり、MLに必要な様々な機能を利用することができます。
本ブログでは、利用者としてビジネスユーザーを想定しているため、MLの知識がなくても使えるパイプライン機能でモデルを作成したいと思います。
パイプラインの名称を記載し、テンプレートとして”HANA ML Training”を選択します。
補足)パイプラインの機能では、様々な機能を持つOperatorを組み合わせることで、モデル作成やデータ転送、APIエンドポイント作成等、様々なことを行うことが出来ます。
パイプラインには、よく使われるシーン別に様々なテンプレートが用意されています。
テンプレートを使うことにより、より簡単にモデル作成を行うことが出来ます。今回は、HANAのML学習用テンプレートでモデルを作成します。
“Create”を押すと、以下のようにModelerというパイプライン編集画面がブラウザの新規タブで開きます。
“HANA ML Training”オペレーターをクリックし、”Open Configuration”を選択します。
指定した”HANA ML Training”オペレーターの設定画面が右側に開きます。
“Connection”の”Editproperty”ボタンをクリックします。
“Configuration Type”で”Configuration Manager”を選択します。
“Connection ID”に、「1. DIとHANAの接続設定」で事前に設定したHANAのConnectionを選択します。
次に、”Dataset”からMLに利用するデータセットを選択します。
Connection設定で対象のHANAを指定したことで、対象のHANAのスキーマやテーブルをDI上から参照できるようになるので、スキーマ ⇒ テーブルとドリルダウンし、モデル作成に利用したいテーブルを選択します。
まずはスキーマを選択します。
選択したスキーマに含まれるテーブル一覧が表示されるので、モデル作成に利用するテーブル(学習データ)を選択します。
“HANA ML Training”オペレーターで実施できるMLの”Task”は以下の4つがありますが、今回は分類問題なので”Classification”を選択します。
Taskを選択すると、”Algorithm”にClassificationで利用できる様々なアルゴリズムが表示されます。今回はモデル作成時にチューニングが少なくて済む”Auto Classifier (APL)”を選択します。
“Key Column”にはテーブルのキーである”CLAIM_ID”カラムを、”Target Column”には分類の予測対象にしたい”IS_FLAUD”カラムをそれぞれ指定します。
補足)データ分析の知識がある人向けの機能として、Hyper Parametersから、ハイパーパラメータのチューニングを行うことも可能です。
“Save”ボタンから編集したパイプラインを保存します(Ctrl + Sでも可)。
“Run”ボタンで作成したパイプラインを実行します。
“newArtifactName”にパイプライン実行時に生成されるモデルの名前を記載し、”OK”で実行します。
“Status”欄に実行状態が表示されます。以下をクリックすると該当の実行中パイプラインの詳細がタブで表示されます。
パイプラインの実行が完了すると、以下のように”Status”が”Completed”と表示されます。
作成したモデルを確認
ML Scenario Managerに戻ると、以下のようにパイプラインの実行結果とともに、作成したモデルが表示されます。
これにより、チューニング等でモデルを複数作成しても、わかりやすく管理できます。
作成したモデルを利用する際には、以下の”Technical Identifier”を利用します。
クリックするとクリップボードにコピーされるので、他のパイプライン等で使用する際に張り付けて利用できます。
3. モデルによる予測
続きのブログをご参照ください。
まとめ
以上のように、DIとAPLを活用することにより、データ分析の知識がないビジネスユーザーが、GUIベースで直感的にMLのモデルを作成することができます。
続きのブログでは、今回作成したモデルを利用したデータの予測方法について説明します。
是非そちらも合わせてご確認頂けますと幸いです!