MachineLearning
Bluemix
node-red
ibmcloud

Node-REDからWatson Studioの機械学習モデルを呼び出す


はじめに

Node-REDの追加ノードにWatson Machine Learning用のものがあることを発見しました。

その利用メモを残しておきます。


前提

呼出し対象のモデルは、別記事SPSSクラウド版で簡単機械学習でクラウド上にWebサービスとしてデプロイしたものを利用します。

他のサービスであっても手順などはほぼ同じはずです。


追加ノードの導入

Node-Redに追加ノードを導入する手順については、別記事IBM CloudのNode-REDで追加ノードの導入手順に記載しておきましたので、この手順を参考にして下さい。

今回追加導入するノードの名称は node-red-contrib-watson-machine-learningになります。

正常に導入されたノードは、図のようにIBM Watsonグループに追加されます。

スクリーンショット 2018-11-29 18.27.00.png


WMLノードの配置、設定

まず、WMLノードを編集エリア上に配置し、設定を行いましょう。

配置したWMLノードをダブルクリックし、設定画面がでたら、下記の鉛筆アイコンをクリックし、config nodeの設定画面を表示します。

スクリーンショット 2018-11-29 18.30.35.png

下の画面が出ますので、名前は WML-configなど適当な名前を設定し、それ以外の構成情報はWMLのcrednttail情報をコピペして設定します。ちなみにAccess KeyのところはAPIKeyで読み替えます。

スクリーンショット 2018-11-29 18.33.16.png

全部入力が終わったら「Add」ボタンをクリックして下さい。

元のNodeの設定画面に戻ったら、いったん「Done」でパレットに戻り、この段階でDeployボタンをクリックして下さい。

その後、再度このノードの設定画面を開きます。

下の図のように、「Mode」は「Run Prediction」を選択します。IDの設定が正しくできていると、「Model」「Deployment」のドロップダウンに、呼び出したい機械学習モデル、Webサービスがでてくるはずです。

図のように、それを選択した状態で、「Done」をクリックし、再度Deployを行います。

スクリーンショット 2018-11-29 19.00.50.png


Flowの作成

ここまでできれば後は簡単です。

下の図のように「inject」「function」「debug」の各ノードを編集エリアに配置し、一直線につなぎます。

スクリーンショット 2018-11-29 19.05.36.png

Function Nodeのコードは次のような形にして下さい。

"fields"には、入力項目名のリスト、"values"には入力値をリストのリストとして作成します。


msg.payload = {
"fields": ["CLASS", "AGE", "BP", "AL", "SC", "POT", "PCV"],
"values": [[null, 75, 70, 0, 0.8, 3.5, 46]]
};
return msg;

全部設定が終わったら再度deployを行います。


テスト

準備はすべて整ったので、後はinjectノードをクリックしてテストを行います。

うまくいくと、下の図のように呼出し結果が表示されます。

スクリーンショット 2018-11-29 19.14.03.png