予知保全
予知保全はRapidMiner StudioのSamplesリポジトリ(Samples > Templates > Predictive Maintenance)のサンプルプロセスであり、マシンの故障を予測して、事前にメンテナンスの予定を立てるために設計されています。Reference Dataは”Machine ID”と25のセンサー値、および”Failure”と呼ばれる二値のラベルによって特徴付けられる136台のマシンを説明しています。Predictive Maintenanceプロセスは、故障を予測するモデルを構築し、それをNew Dataというラベルのないデータセットに適用します。
以下では、Predictive Maintenanceの例を使用して、2つのwebサービスを構築します。
- パラメータなしのwebサービスはすべての”Machine ID”について故障の発生確率を予測します
- 一つのパラメータを用いたwebサービスは特定の”Machine ID”について故障の発生確率を予測します
データソースが静的であるため、webサービスとしてこの例は現実的ではありません。典型的なwebサービスのシナリオでは、入力と出力は常に変化しており、リアルタイムのレスポンスが必要です。しかし、現在の例には、すべてのステップが再現可能であるという利点があります。この例を使用して、RapidMiner AI Hubの設定が期待通りに機能していることを理解することができます。
原則として、webサービスは何千人ものユーザーを抱え、1秒間に複数回呼び出される可能性があります。同じモデルを繰り返し再構築するのは合理的ではありません。したがって、基本的な戦略は、元のプロセスを2つに分けることです。
- Predictive Maintenanceのモデルを作成して保存する
- 保存されたモデルを取得してNew Dataに適用し、予測を行う
注意:モデルの構築には時間がかかりますが、一度構築して保存してしまえば、リアルタイムで適用することができます。一般的には、webサービスを作成するプロセスには、モデルの構築は含めないでください。
Predictive Maintenanceフォルダーのコピー
まず、SamplesリポジトリのPredictive Maintenanceフォルダのコピーを作成し、新しい場所に貼り付けて、自由に変更できるようにしましょう。以下の手順では、Temporary Repositoryにコピーを保存していますが、任意の場所を選択して保存してください。Predictive Maintenanceフォルダは好きな場所に保存することができます。
- RapidMiner Studioで、リポジトリパネルのSamples > Templates > Predictive Maintenanceを選択します。フォルダを右クリックし、コピーを選択します。
- RapidMiner Studioで、リポジトリパネルのTemporary Repositoryを選択します。フォルダーを右クリックし、貼り付けを選択します。Predictive Maintenanceフォルダが3つのファイル(New Data、Reference DataとPredictive Maintenanceプロセス)とともに新しい場所にコピーされます。
- すべてのプロセスとモデルの準備が整うまで、RapidMiner StudioのTemporary Repository > Predictive Maintenanceで作業を続けます。RapidMiner Studioですべての作業が完了したら、Predictive MaintenanceフォルダをRapidMiner AI Hubリポジトリにコピーし、webサービスを作成します。
モデルの保存
元のプロセスではなく、コピーしたプロセスを変更していることを確認するには、Temporary Repository > Predictive Maintenanceフォルダを開き、Predictive Maintenanceプロセスをダブルクリックして、RapidMiner Studioのプロセスパネルに表示します。
webサービスの観点から見ると、Predictive Maintenanceプロセスは、モデルを保存せずに、モデルを構築して予測を行うため、欠陥があります。モデルを保存するには、Storeオペレータを含める必要があります。それを見つけ、次のようにApply Modelのモデル出力(“mod”)をStoreの入力ポートに接続して、プロセスにStoreを挿入します。
Storeオペレータには一つのパラメータ(オブジェクトが保存される場所)があります。パラメータパネルで、フォルダアイコンをクリックして保存場所を選択します。作業しているデータやプロセスと同じフォルダにモデルを保存します。モデルにPredictive_Maintenance_Modelという名前を付け、相対パスのチェックボックスがチェックされていることを確認してください。これにより、後でPredictive MaintenanceフォルダをRapidMiner AI Hub Repositoryに移動させても、何も壊れません。
プロセスを保存(ファイル > 保存)し、実行してモデルを生成します。これで、Predictive_Maintenance_ModelがPredictive Maintenanceフォルダに表示されます。
モデルの取得
モデルを保存したら、webサービスを生成するのに使用するプロセスを作成したいと思います。元のPredictive Maintenanceプロセスのオペレータのほとんどがモデルの構築に専念していたので、それらを破棄し、代わりにRetrieveオペレータを使用して、保存されたモデルを読み込み、その出力をApply Modelのモデル入力に接続して、残りのオペレータはそのままにします。Retrieveオペレータのパラメータパネルで、フォルダアイコンをクリックして、先ほど作成したPredictive_Maintenance_Modelを選択します。
Predictive_Maintenance_web_service_without_parameters
このプロセスを自分で構築して、関連するオペレータをPredictive Maintenanceプロセスからコピーするか、上記のリンクをクリックして、XMLをPredictive_Maintenance_web_service_without_parameters.rmpファイルにコピーし、ファイル> プロセスをインポートでRapidMiner Studioにインポートすることができます。インポートが完了したら、以下を行います。
- Temporary Repository > Predictive Maintenanceフォルダを右クリックし、このフォルダにプロセスを保存を選択します。
- Predictive_Maintenance_web_service_without_parametersとプロセスに名前を付けます。
- Predictive Maintenance下の新しいプロセスをダブルクリックしてRapidMiner Studioにロードし、エラーなく実行できることを確認します。元のPredictive Maintenanceプロセスと同じ出力が生成されるはずですが、モデル構築のオーバーヘッドはありません。
続きは「パラメータなしのwebサービス作成」をご覧ください。
マクロの挿入
先ほど作成したプロセスは”Machine ID”のすべての値の予測を返しますが、”Machine ID”の特定の1つの値のみの予測が必要な場合はどうでしょうか。最初のステップとして、別のオペレータであるFilter ExamplesををRetrieve New Data と Apply Model間に挿入し、”Machine ID”の特定の1つの値のみを含むように設定できます。
複雑なのは、このwebサービスが”Machine ID”に対応するパラメータを受け取ることです。もちろん、ユーザーは任意の値を選択することができます。”Machine ID”の値は事前にわからないので、プロセスに組み込むことは望ましくありません。プロセスが実行されるときに任意の値が挿入されることが望ましいです。そこで、必要なのがマクロです。
Filter Examplesのパラメータパネルで、Add Filtersボタンをクリックすると、以下のダイアログが表示されます。通常は、特定のマシンを選択するために “Machine_ID equals M_0221″という形式のフィルターを選択しますが、ここでは少し異なる方法でフィルターを構成します。マクロはキーと値のペアなので、マクロに名前 (machineID)を与える必要があります。値は後でwebサービスによって提供されます。マクロの値は以下の構文を使用して挿入することで、RapidMinerの任意のフィールドは値を取得することができます。
%{machineID}
環境パネル
この時点で、ほぼ完了です。これまで上記の通り進んできたのであれば、パラメータを持つwebサービスを生成するプロセスをすでに構築しているかもしれません。もしそうでない場合は、以下のリンクをクリックして、XMLをPredictive_Maintenance_web_service_with_parameters.rmpファイルにコピーし、RapidMiner Studioにインポートしてください。先ほどと同様に、このプロセスをPredictive Maintenanceフォルダに保存し、プロセスを実行して期待通りに動作するか確認してください。
Predictive_Maintenance_web_service_with_parameters
このプロセスを実行すると、XMLプロセス定義でマクロの値が設定されているため、結果は”Machine ID”の特定の値を予測したものになっていることに注目してください。厳密に言えば、この値を設定する必要はありません。プロセスは、この値がなくても(出力はありませんが)エラーなしで実行されます。webサービスはいずれにせよ、URLによって提供された値を取得して値を再設定します。
しかし、テスト目的では、マクロに値を設定しておくと非常に便利です。そのためには、マクロに関連する2つのデフォルト以外のパネルのうちの1つである環境パネルを開く必要があります。なお、もう1つはマクロパネルです 環境パネルの下部には、現在のマクロが一覧で表示されます。右側の2つのアイコンを使って、マクロの追加や削除ができます。そこで編集することで、マクロの値を変更することができます。ぜひ試してみてください。マクロの新しい値で、またはキーと値のペアを削除した後にプロセスを実行して、結果がどのように変化するかを確認してください。
「パラメータありのwebサービス作成」読んでください。
Predictive MaintenanceフォルダをRapidMiner AI Hubへコピー
モデルが保存され、両方の新しいプロセスがRapidMiner Studioで構築およびテストされ機能することが確認されたら、RapidMiner AI Hubにコピーします。以前使用したコピー/ペーストと同様の手順で、Predictive MaintenanceフォルダをRapidMiner AI Hubリポジトリ内のフォルダにコピーします。今回の例では、フォルダはDockerOneTimeRepositoryの/home/adminにコピーされています。RapidMiner Studioから見ると、以下のようになります。
RapidMiner AI Hubにログインし、Repository > Browse Repositoryをクリックして、Predictive Maintenanceフォルダが見つかるまで参照を続けます。RapidMiner AI Hubから見ると、以下のようになります。
webサービスの構築に使用する2つのプロセスが完成したので、次の工程に進みます。
次は「Webサービスの作成」です。