ビジュアルアプリケーションの作成¶
プロジェクトの作成¶
Dataiku DSS ホームページから +New Project > DSS Tutorials > Advanced Designer > Dataiku Applications (Tutorial) を選択します。 このプロジェクトには、完全にビルドの完成したフローがあります。このフローは:
UCI機械学習リポジトリ からデータをダウンロードします。
Prepare(準備)レシピの中でデータを軽く処理してから、次の2つのサブフローに分岐します。
Monthly Forecasting(月間フォーキャスト)サブフローは、月間売上高をモデリングして、for_predictions データセットからフォーキャストを生成します。
One Customer’s Invoices(1人の顧客の請求書)サブフローには、任意の顧客に関する履歴データを見るためのフィルタが含まれています。
ここから到達可能な、Download recipe and Build Flow outputs(レシピをダウンロードして、フローアウトプットをビルドする)を選択します。
各サブフローに 1 つずつある、2 つのダッシュボードを見てください。
同僚がプロジェクトの詳細を理解する必要なしでプロジェクトを使用できるように、このプロジェクトを Dataiku アプリケーションに変換します。
最初にスコアリングを使用可能にします。
次に、単一の顧客の注文履歴データを追加します。
Dataiku アプリに変換¶
メニューから … > Application Designer を選択して、Convert into a visual application を選択します。
オプションで、アプリケーションに説明を追加して、これを他のユーザーが使用できるようにし、タグ付けします。
予測の生成¶
次に、予測を作成するためのアプリケーションUIを定義しましょう。
Add Section をクリックします。
``Monthly sales forecast``(月間売上予測)と命名します。
これに次のような説明を追加します:``Generate predictive sales by month for the total sales of goods``(物品の合計売上高を出すために、月ごとの売上予測を生成する)。
Add Tile をクリックして View dashboard を選択します。
これに次のようなタイトルを付けます:``See results in dashboard``(ダッシュボードに結果を表示する)
Monthly sales forecast(月間売上フォーキャスト)ダッシュボードを選択します。
Save をクリックして、次に Test をクリックします。
すると、アプリが現在エンドユーザーにどのように見えているかを示すビューが表示されます。 リンクをクリックするとダッシュボードが開きます。 これは好調な第一ステップですが、ユーザーには全くインタラクティビティを提供しません。 次に、ユーザーが自分でフォーキャスト期間を指定できる機能を追加しましょう。
ブラウザの中で Back(戻る)ボタンをクリックして、Application Designer に戻ります。
Add Tile > Upload file in dataset をクリックします。
次のようなタイトルを付けます:``Optionally, upload a CSV containing the months to predict``(オプションで、フォーキャスト対象の月を含むCSVをアップロードする)
Add help をクリックして、次のヘルプテキストを作成します: ``The format of the CSV should be: year,month.``(CSVの形式は year,month にする必要があります。)
for_predictions をデータセットとして選択します。
Only upload file をタイルの動作として選択します。
ファイルのアップロードが最初に来るようにタイルを並べ替えます。
これにより、アプリケーションユーザーが自分でフォーキャスト期間を指定できるようになりますが、今度は、このデータセットをスコアリングしてダッシュボードを更新するメカニズムを追加する必要が生じます。 これは、シナリオを使って実行できます。
Jobs > Scenarios に移動します。
+Create Your First Scenario をクリックします。
これに ``Generate predictions``(予測を生成する)と命名して、Create をクリックします。
Steps(ステップ)タブに移動します。
Add Step をクリックして Build/Train を選択します。
Add Dataset to Build をクリックして for_predictions_scored を選択します。
Build only this dataset をビルドモードとして選択します。
Save をクリックします。
データセットをビルドするシナリオができたので、今度はアプリケーションに、このシナリオを実行するボタンを追加できます。
Application Designer に戻ります。
Run scenario タイプのタイルを追加します。
``Run``(実行)というタイトルを付けます。
Generate predictions をシナリオとして選択します。
Run が 2 番目に来るようにタイルを並べ替えます。
最後に、モデルとデータセットをアプリケーションに使用可能にします。
included content セクションの中で、for_predictions を含まれるデータセットとして追加します。
Prediction sales_by_month を保存済みのモデルとして追加します。
アプリケーションのフォーキャスト機能に最後に追加する機能として、アプリのユーザーに、スコアリングされたデータセットをダウンロードできるようにしましょう。
Download dataset タイプのタイルを追加します。
これに``Download forecasts``(予測をダウンロードする)というタイトルを付けます。
for_predictions_scored をダウンロードするデータセットとして選択します。
Save をクリックして、次に Test > Create or update test instance (full) をクリックします。
単一の顧客に関する注文履歴データ¶
アプリケーションユーザーにフォーキャストの生成を可能にしたので、今度はユーザーが自分で単一の顧客に関する注文データをプルできるようにしましょう。
Application Designer に戻ります。
新しいセクションを追加して、これを ``Sales history of one customer``(1人の顧客に関する売上履歴)と命名します。
これに次のような説明を追加します:``You can generate a dashboard with the detailed sales of one given customer.``(特定の1人の顧客に関する売上の詳細を示すダッシュボードを生成できます。)
ここで実現したいことの多くは、予測の生成のときに行ったことと似ています。つまり、アプリケーションユーザーに、items_of_one_customer データセットをビルドしてダッシュボードを更新するようなシナリオを生成可能にすること、そして、そのデータセットをダウンロードできるようにすることです。 新たな問題は、アプリケーションユーザーに、任意の顧客を指定できるようにしたいということです。
現在、この値は Filter(フィルタ)レシピの中でハードコーディングされていますが、これはカスタムの変数を使って変更できます。
… > Variables に移動します。
Local variables(ローカル変数)の配下で、次を指定します。
{
"customer_id": "13758"
}
Save をクリックします。
Filter(フィルタ)レシピに移動して、フォーミュラを
val('Customer ID') == "${customer_id}"
に更新します。
次に、このデータセットをビルドするシナリオを作成します。
Jobs > Scenarios に移動します。
+New Scenario をクリックします。
これに
Build dashboard of one customer
(1 人の顧客のダッシュボードをビルドする)と命名して、Create をクリックします。Steps(ステップ)タブに移動します。
Add Step をクリックして Build/Train を選択します。
Add Dataset to Build をクリックして items_of_one_customer を選択します。
Build only this dataset をビルドモードとして選択します。
ビルドするデータセットを invoices_of_one_customer にして、2 番目の Build/Train(ビルド/トレーニング)ステップを追加します。
Save をクリックします。
カスタム変数とシナリオができたので、アプリをビルドできます。
Application Designer に戻ります。
included content セクションの中で、items データセットを追加して、これをアプリケーションに使用可能にします。
Add Tile をクリックして Edit project variables を選択します。
``Define``(定義)というタイトルを付けます。
Add help(ヘルプを追加)をクリックして、ヘルプテキストを追加します。例:``For example, you can use 17191 or 13758.``(例えば 17191 または 13758 を使用できます。)
アプリユーザーには、単一のカスタム変数だけを設定してもらえばよいので、動作に関しては、Edit inline with auto-save を選択します。
次に、カスタム変数の設定項目を指定する必要があります。 これは、次のJSONを使って行うことができます。
[
{
"name": "customer_id",
"type": "INT",
"label": "The dashboard will be for this customer",
"mandatory": false,
"canSelectForeign": false,
"markCreatedAsBuilt": false,
"allowDuplicates": true,
"getChoicesFromPython": false,
"canCreateDataset": false
}
]
Add Tile > Run scenario をクリックします。
``Run``(実行)というタイトルを付けます。
Build dashboard of one customer を実行するシナリオとして選択します。
Add Tile > View dashboard をクリックします。
これに ``See results in dashboard``(ダッシュボードに結果を表示する)のタイトルを付けます。
Sales history of one customer をダッシュボードとして選択します。
Add Tile > Download dataset をクリックします。
これに ``Download all the sales of this customer (XLSX format)``(この顧客に関するすべての売上をダウンロードする(XLSX形式))のタイトルを付けます。
items_of_one_customer をダウンロードするデータセットとして選択します。
Excel (*.xlsx) を形式として選択します。
Save をクリックします。
このアプリは、Dataiku DSS ホームページからすべての人が使用できるようになりました。