Edited at

Watson Openscaleでscikit-learn モデルの説明性を確認する 【セットアップ編】


はじめに

Watson Openscaleの機能を一通り試してみたい場合、チュートリアル 対話式セットアップの手順に従うのが早道です。

しかし、この手順では、自分で作ったモデルをデプロイする際必要になる手順で一部省略されている箇所があり、自分で作ったモデルを管理対象にしたい場合わからない点がでてきます。

当記事は、この足りない部分を補う目的で記載しました。

記事がかなり長くなったので、当記事はセットアップ手順のみ記載します。

動作確認用の記事は別途「動作確認編」として掲載しています。


対象モデル

iris data setを利用した多値分類(三値)モデルを作ります。

利用するモデルはロジスティック回帰モデルです。

フレームワークに関しては、つい最近scikit-learnが対応するようになったので、動作確認を兼ねてこのフレームワークを利用することにします。


前提環境

下記の環境は設定済みであることを前提としています。インスタンスはすべてダラスで作成して下さい。


  • Watson Studio

  • Object Cloud Storage

  • Watson Machine Learning

  • Db2 on Cloud

  • Watson OpenScale

ちなみに、すべてのサービスは、Liteプランで作成可能です。

こちらの細かい手順については、以下の別記事を参考にして下さい。

Db2 on Cloudは、「データベース」カテゴリに、Watson OpenScale「AI」カテゴリに含まれています。

これらのインスタンスがすべてできたら、上記ガイドに従い、Studioのプロジェクトを作成します。Watson Machine Learningのインスタンスは、作成したプロジェクトと関連付けます。

(Db2とOpenScaleについては、この対応は不要です)


セットアップ用ファイルの準備

以下のファイルを下記サイトからダウンロードしておきます。

ファイル名
リンク
目的

iris-all.csv
iris-all.csv
Db2テーブル作成用

make-iris-model.ipynb
make-iris-model.ipynb
モデル構築・保存用スクリプト

iris-web-test.json
iris-web-test.json
Webサービステスト用

Notebook全体を確認したい場合は、以下のリンクを参照してください。

https://github.com/makaishi2/sample-data/blob/master/notebooks/make-iris-model.ipynb


認証情報の取得

この後の手順で必要になるので、以下の認証情報を取得しておきます。


  • Watson Machine Learning

  • Db2 on Cloud

https://cloud.ibm.com/resources から該当するサービスを選択し、

① サービス資格情報をクリック

② (資格情報がなければ)「新規資格情報」をクリックしてデフォルト設定で資格情報作成

③ 資格情報の表示をクリック

クリップボードのアイコンをクリックすると、資格情報全体がコピーされるので、テキストエディタなどに保存しておきます。


機械学習モデルの構築からWebサービスの生成まで


Jupyter Notebookの読み込み

Watson Stdioのプロジェクト管理画面を表示し、「Add to project」->「Notebook」を選択します。

下の画面で

① 「From file」タブをクリックします。

② 画面右上の「選択」ボタンをクリックして事前に準備したmake-iris-model.ipynbファイルを読み込みます。

③ 「Create Notebook」ボタンをクリックします。


Machine Learning認証情報の設定

事前準備したWatson Machine Learningの認証情報を下の画面のようにwml_credentailsのセルに張り付けます。


Notebookの実行

後は上から順にnotebookのセルを実行します。

一番上の!pip install scikit-learn==0.19コマンドも必ず実行するようにして下さい。

正常に実行できると、Modelの登録、Webサービスの登録、テストまでできるはずです。

最後の実行結果が、上の画面のようになっていることを確認して下さい。

予測値が確率値付きで戻ってきていることがわかります。


学習用テーブルの用意

モデルの登録ができたら、学習用データの入ったテーブルの準備をします。

https://cloud.ibm.com/resources でIBM Cloudのリソース・リストを表示し、Cloud Foundryサービスの配下にあるDb2 on Cloud-xxを選択します。

下の画面になったら、「Open Console」をクリックします。

下の画面になったら、画面下方の「Load」ボタンをクリックします。

更に、事前準備したiris-all.csvをdrag and dropして、「Next」ボタンをクリックして下さい。

下の画面になったら、

①一番上の「Schema」を選択します。

②「New Table」をクリックします。

テーブル名は「IRIS」と入れて、「Create」します。

下の画面になったら「Next」をクリック

次の画面では「Begin Load」をクリックします。

これで自動的にテーブル作成とデータロードが行われます。下の画面になったら、登録に成功していますので、画面を閉じます。


OpenScaleのセットアップ

これで、必要な準備は一通り終わりました。いよいよOpenScaleの設定を始めます。

https://cloud.ibm.com/resources の管理画面から「Watson OpenScale-xx」をクリックします。

下の画面で「Launch Application」をクリックします。

次の画面では「実行しない」を選択します。

その次の「データベースの選択」では、「無料のライト・プラン」を選択し、画面右下の「保存」ボタンをクリックして下さい。

引き続き、「Select Provider」を選択します。

次の画面では「Add machine learning provider」をクリックします。

その次の画面では、左上の「Watson Machine Learning」を選択します。

その次の画面では、インスタンス名にpm-20-xxがあるはずなので、それを選択した後、その下の「Service provider instance name」にwatson mlなど適当な名前を設定して、画面右下の「保存」をクリックします。

その次の画面では「Go to Dashboard」をクリックして下さい。

続けて、画面中央の「*Add」ボタンをクリックします。これは、管理対象のモデル選択処理になります。

先ほど登録したscikit-learnのモデルがあるはずなので、それを選択して「Configure」をクリックします。

次の画面になったら、「Configure monitors」をクリックします。

下の画面になるはずなので、Data type は「Numerical/Categorical」を、Algorithm typeは「多項分類」を選択して、「Save」ボタンをクリックします。

下の画面が表示されるはずです。

ここでStudioのプロジェクト管理画面に戻って、「Deployment」タブを表示します。先ほど登録したWebサービスがあるはずなので、それをクリックします。

下の画面で

Testタブを表示

② 事前に用意したiris-web-test.jsonの内容を丸ごと入力エリアにコピペ

Predictボタンをクリック

します。うまくいくと予測結果が右側に表示されます。

この手順が、この後のセットアップのために重要となります。

その後で、OpenScale設定画面に戻り、画面左の「Model Details」をクリックします。

次の画面右下で、「Begin」のボタンが有効になっているはずなのでクリックします。もし、有効になっていない場合は再度Webサービス呼出しを行って下さい。

モニタリングの構成は左側の「手動構成」として、「次へ」をクリックします。

次の画面では場所Db2として下さい。その後の接続情報は事前に調べておいたDb2の認証情報を順に入力し、最後に「テスト」をクリックします。

テストが正常に終わると、画面右下の「次へ」ボタンが選べるようになります。

スキーマ名テーブル名は事前に作成したものを選びます。

ラベル列の選択」では、classを選択します。

次の画面では4つの項目すべてを選択します。

その次の画面は何も選択せずに先に「次へ」をクリックします。

予測列の選択ではpredictionを選択します。

その次の予測確率列の選択では、probabilityを選択します。

設定がうまくいくと下のような確認画面になるので、「保存」をクリックします。

お疲れ様でした。これで設定は完了となります。

動作確認については、「動作確認編」を参照してください。