モデルの展開
モデルを展開することで、他の人やソフトウェアが利用できるようになります。この考えは、あなた(もしくは誰か!)が予測モデルを使用するプログラムを書くというものです。そのプログラムが、他の人も利用できるユーザーインタフェースをもっているなら、他の人も結果にアクセスできるでしょう。
どのプログラムかって? モデルを展開すると、HTTP(長いリスト!)を介してデータを送信できるソフトウェアアプリケーションなら、データをモデルに送信し、予測を生成することが可能です。 以下の例を見てください。代替として、プログラミング不要な単純な方法は、RapidMiner Go内から新規データセットへモデルを適用 することです。
以下のどちらかの方法でモデルの展開が可能です。
- すぐに。モデルを作成し終えた後、 結果の検証内から行います。もしくは、
- あとで。 ホーム > Manage recent analyses(最近の分析の管理)より最近の分析をクリックします。
行うには、モデルを一つ選択し、 Apply Model(モデルの適用)をクリックし、ドロップダウンメニューから Deploy Model(モデルの展開) を選択します。 Manage Deployment(展開の管理) ダイアログが現れれば、 Deploy Model(モデルの展開)をクリックします。
展開する各モデルにおうじて、RapidMiner GoはデプロイメントURLを提供しており、以下で詳細に述べられているように、データをそのURLへ送信できます。
展開されたモデルは ホーム > Manage deployed models(展開されたモデルの管理)の下にあります。モデルを停止するには、モデルを展開する手順とほぼ同様に、 Undeploy Model(モデルの停止)をクリックします。
JSON形式でデータを入力
一部の入力データに基づいて予測を行う場合は、データをJSON形式で送信する必要があります。JSON形式に慣れていなくとも、データを適切にフォーマットするのに役立つたくさんのオンラインツールがあります。CSV形式から開始する場合は、以下のツールが役に立つでしょう。
一つ目のツールを用いて、 モデルの展開 で述べている広告予算の三つの案をCSV形式から
TV,radio,newspaper
200,0,100
250,50,0
300,0,0
以下のように、JSON形式へ変換可能です。
[
{
"TV": 200,
"radio": 0,
"newspaper": 100
},
{
"TV": 250,
"radio": 50,
"newspaper": 0
},
{
"TV": 300,
"radio": 0,
"newspaper": 0
}
]
この例での出力は、CSVファイルの三行のデータに応じて、JSON配列(鉤括弧内)の内部に三つのJSONオブジェクト(中括弧内)が含まれています。RapidMiner Goへの入力データ準備の最後のステップは、”data”キーワードを用いて、このJSON配列を別のJSONオブジェクトに埋め込むことです。
{ "data": [insert JSON array here] }
いわゆる圧縮形式では、RapidMiner GoへのJSON入力はこのようになります。
{"data":[{"TV":200,"radio":0,"newspaper":100},{"TV":250,"radio":50,"newspaper":0},{"TV":300,"radio":0,"newspaper":0}]}
RapidMiner Goによる、JSONでの結果の出力
データの 送信後、RapidMiner GoはJSON形式でも結果を返します。デプロイメントURLへ送信されたすべてのJSONオブジェクトは予測とともに返ってきます。以下では、さまざまなデータ送信方法について考えてみましょう。しかし、どの方法を選択しても、結果は”prediction(sales)”を含んでいます。
{
"data":[
{
"newspaper":100.0,
"TV":200.0,
"prediction(sales)":10.9,
"radio":0.0
},
{
"newspaper":0.0,
"TV":250.0,
"prediction(sales)":25.4,
"radio":50.0
},
{
"newspaper":0.0,
"TV":300.0,
"prediction(sales)":10.9,
"radio":0.0
}
]
}
この出力を取得し、 JSONからCSVへ変換することができます。
デプロイメントURLへデータの送信
予測を生成するURLへデータを送信する方法はたくさんあります。あなた自身のデータとデプロイメントURLに置き換え、以下の例を試してみてください。
pythonを用いたデータ送信
requests ライブラリを使用します。
import requests
deployment_url = 'https://go.rapidminer.com/am/api/deployments/12d6513f-8a7b-44c3-b562-8867f59de95f'
my_input_data = {"data":[{"TV":200,"radio":0,"newspaper":100},{"TV":250,"radio":50,"newspaper":0},{"TV":300,"radio":0,"newspaper":0}]}
r = requests.post(deployment_url, json=my_input_data)
json_output = r.json()
print(json_output)
curlを用いたデータ送信
入力データをファイル(たとえば my_input_data.json)に置き、コマンドラインから送信可能です。
curl --request POST \
--header "Content-Type: application/json" \
--data @my_input_data.json \
https://go.rapidminer.com/am/api/deployments/12d6513f-8a7b-44c3-b562-8867f59de95f
ブラウザエクステンションを用いたデータ送信
あなたの唯一のソフトウェアツールがブラウザであったとしても、たくさんのRESTクライアントブラウザエクステンションを用いて、RapidMiner Goへデータを送信可能です。例として、 Advanced REST client extension for Google Chromeを用いたものを紹介します。
- Add to Chromeをクリックし、アプリを開きます。
- リクエストの Methodに、”POST”を選択し、 Request URLにRapidMiner GoのデプロイメントURLを挿入します。
- Headersの下にある、 Header name に”Content-Type”を、 Header valueに”application/json”を選択します。
- Bodyの下にある、 JSON formatへ入力データを挿入します。
- Sendをクリックします。POSTが成功すると、ステータスコード”200 OK”がRapidMiner Goからの結果とともに返ってきます。