30日間の無料評価版をお試しいただけます。

これまでマーケットプレイス (サポートサイト) に掲載されていたトランスフォーメーションステップを介したモデル予測のプラグインは、今後サポートされません (2023年11月1日をもって終了)。詳細はこちらの記事をご確認ください。これらのコードのレガシーバージョンへのアクセスをご希望の場合は、Yellowfin サポートチームまでお問い合わせください。

概要

トランスフォーメーションステップは、H2Oクラウドインスタンスで作成されたデータサイエンスモデルをYellowfin内で使用し、予測などの結果を生成します。これは、データトランスフォーメーションモジュールのトランスフォーメーションステップから実行されます。

前提条件

このステップを使用する前に、少なくともひとつのモデルが作成されているH2Oインスタンスへのアクセス権が付与されていることを確認してください。また、YellowfinへH2Oのプラグインをインストールしなくてはいけません。

こちらの項目を確認する前に、データトランスフォーメーションモジュールについて事前に理解をしておくのが理想的です。

サポートしているモデル

現在サポートしているモデルのタイプは、以下の通りです。

    • ディープラーニング
    • 分散ランダムフォレスト
    • 勾配ブースティングマシン
    • 一般化された線形モデル
    • 一般化された低ランクモデリング
    • k平均法
    • XGBoost(H2OがLinux上で起動している場合に利用可能)

一般的なワークフロー

こちらがプロセスの簡単な概要です。こちらの項目では、これらのステップの大部分について、詳細に説明します。

  1. アクセス可能なH2Oインスタンスを準備するか、新しくセットアップをして、データサイエンスモデルを構築します。
  2. Yellowfinインスタンスへ、H2Oのプラグインをインストールします。
  3. Yellowfinのデータトランスフォーメーションモジュールを使用して、トランスフォーメーションフローを作成します。これには、モジュールへのデータインポートと、必要に応じて、その他トランスフォーメーションの適用が必要です。
  4. フローでH2Oトランスフォーメーションステップを使用し、これを設定します。ステップの設定方法は、以下の情報を参照してください。
  5. ステップを実行し、モデルがデータを使用して生成する出力を確認します。

ステップ設定の詳細

H2Oステップを設定するためには、有効なURLからH2Oのインスタンスへ接続し、データサイエンスモデルを選択しなくてはいけません。次に、モデルの入力フィールドを設定する必要があります。これは、トランスフォーメーションフローからのデータとのマッピングにより行います。他のデータサイエンスモデル(PMMLなど)の出力設定とは異なり、出力フィールドの設定をする必要はありません。生成される結果は、モデルの作成時に定義されます。

サポートしているモデルのカテゴリー

Yellowfinがサポートするモデルのタイプは、以下に示すように、4つのカテゴリーに分類されます。注意:モデルのカテゴリーを確認するには、H2O内のモデルの「OUTPUT(出力)」項目を参照してください。



以下は、各カテゴリーが生成するそれぞれの出力タイプです。

    • 回帰:このカテゴリーに属するモデルは、データのすべてのロウ(行)について実際の予測値を生成します。
    • 二項式:このタイプのモデルは、すべてのロウ(行)について予測されるクラスのテキストラベルを出力します。
    • 多項式:(上記に準ずる)
    • クラスタリング:このようなモデルは、すべてのロウ(行)が属するクラスタのインデックス番号を示します。

モデルの出力の確認

多くの場合、ユーザーはモデルの出力を把握しています。しかし、H2Oのインスタンスからモデルを選択することで、出力を確認し、その設定を把握することができます。例えば、バイナリモデルの場合、出力はモデルのパラメーター内で確認することができます。




モデル出力のデータ型

出力カラム(列)のデータ型は、モデル内の設定に応じて異なります。「クラスタリング」と「回帰」のカテゴリーに属するモデルの場合、これは「数値型」になり、他のカテゴリーの場合は「テキスト型」になります。

YellowfinでのH2O.aiの使用

パート1:H2O.aiのセットアップ

H2Oは、予測モデルを使用することのできる、モダンオープンソースAIプラットフォームです。最新バージョンのH2Oは、こちらからダウンロードすることができます。:http://h2o-release.s3.amazonaws.com/h2o/rel-weierstrass/7/index.html

H2Oは、ローカル端末上で使用することもできますし、URLを通してアクセス可能な公的スペース上で使用することもできます。

H2Oをローカル端末上で実行するには、以下の手順に従います。

  1. H2O.aiをダウンロードします。
  2. ディレクトリへファイルを解凍します。
  3. ターミナル(Appleターミナル、またはMSDOS)を開き、取得されたフォルダへ移動します。
  4. java –jar h2o.jar」からjarを実行します。これにより、H2O.aiサーバーが起動します。
  5. デフォルトでは、H2O.aiサーバーは「http://localhost:54321/」で実行されます(適切にセットアップされた場合)。注意:H2OインスタンスのURLや、その他設定はカスタマイズすることができます。

H2O URL

H2Oインスタンスへの接続を確立するためには、インスタンスのURLが必要です。H2Oインスタンスがローカルに設定されている場合、これはデフォルト設定(例:http://localhost:54321)になり、ローカルセットアップ、リモートアクセスどちらの場合においても、IPアドレス(http://127.0.0.1:54321)を含めた設定も可能になります。(リモートアクセスをする場合は、安定したインターネット接続が必要です)

注意:適切に認識されるために、URLの一部に「http://」を含める必要があります。不適切なURLが提供された場合、トランスフォーメーションステップは機能しません。

パート2:トランスフォーメーションフローでのH2Oモデルの使用

こちらの項目は、H2Oトランスフォーメーションステップを使用して、Yellowfinへデータサイエンスモデルを統合する方法について説明します。

  1. H2Oでモデルを構築し、これを保存します。
  2. Yellowfinのデータトランスフォーメーションモジュールへ移動します。(「作成」ボタン>「トランスフォーメーションフロー」)
  3. データを取得するインプットステップから、トランスフォーメーションフローの作成を始めます。(基礎的なフローの作成方法は、こちらを参照してください。また、他のデータの取得方法については、こちらを参照してください)



  4. 取得されたデータが、データプレビューパネルに表示されます。さらにデータをトランスフォーメーションするために、ステップを追加することもできます。
  5. H2Oインスタンスからデータサイエンスモデルを使用する準備が整ったら、以下の手順に従います。
  6. トランスフォーメーションステップ一覧から、「H2Oモデル予測」ステップをキャンバスへドラッグします。(注意:こちらのステップが表示されない場合は、H2Oのプラグインがインストールされているかを確認してください)



  7. 接続ポイントを使用して、最後のステップをH2Oトランスフォーメーションステップへ接続します。



  8. 次に、H2O ステップを設定します。(設定画面が表示されるように選択されていることを確認してください)



  9. H2Oインスタンスへのパスをコピーします。(注意:IPアドレス」と「ポート番号」が必要です。)例えば、今回の例では、下図を参考に、「http://10.0.11.166:54321となります。



  10. H2Oへ接続」をクリックします。



    注意:提供されたURLが不適切な場合や、実行中のH2Oインスタンスが見つからない場合は、以下のようにエラーメッセージが表示されます。



  11. H2Oインスタンスへの接続に成功したら、リンクしているH2Oインスタンス上のすべてのモデルの一覧とともに新しい項目が表示されます。(注意:接続ボタンを使用すると、ステップ設定パネルに変更が表示されるまでに時間がかかる場合があります)
  12. 使用するモデルを選択します。

    一覧にモデルが表示されない場合は、インスタンス内でモデルが作成されているか、それをYellowfinがサポートしているかを確認してください。

    選択したモデル、また選択しようとしているモデルが、H2Oインスタンスから削除されている場合は、エラーが表示されます。その場合は、ステップ設定パネルのモデル一覧を手作業で更新しなくてはいけません。例:H2Oへ接続をクリックします。



  13. 次に、入力ステップをマッピングするために、さらなる設定オプションが表示されます。これらはモデルに固有のものです。



  14. モデルに必要な入力カラム(列)をデータとマッピングします。

    ステップを実行し、結果を生成するためには、すべてのフィールドをマッピングしなくてはいけません。また、同一のデータ型の正確な値がマッピングされていることを確認し、データを正しく一致させる必要があります。(不正確なマッピングが行われた場合は、「エラー」項目に、各データ値に対するエラーが生成されます。



  15. 保存」ボタンをクリックします。
  16. ステップの実行に成功すると、データプレビューパネルに、「H2O Model Result(モデル結果)」という新しいカラム(列)が、モデル出力とともに表示されます。こちらに表示される結果は、モデルのタイプに応じて異なります。



  17. さらなるトランスフォーメーションを行うこともできますし、結果をデータベースへ保存することもできます。

H2Oステップの編集

H2Oモデルへの変更:設定されたH2Oモデルを変更すると何が起きるか。

H2Oで作成されたモデルは、同一のIDを使用することで、編集したり、再保存することができます。これは、軽微な変更の場合もあれば、モデル全体を完全に変更する場合もあります。トランスフォーメーションフロー内で使用しているモデルを変更する場合、変更の内容に応じて、H2Oトランスフォーメーションステップを再設定しなくてはいけない場合があります。これは、新しいモデルに、マッピングが必要な新規フィールドが含まれるかどうかに関連します。


  • 新規フィールドを追加していない場合:新規入力フィールドの追加や、既存フィールドの新しいモデルへの変更がなければ、(いくつかのフィールドが削除されたとしても)フィールドのマッピングや、再設定の必要はありません。ステップは、破損することなく機能し続けます。
  • 新規フィールドを追加した場合:しかし、新規入力フィールドの追加を含むモデルの変更が行われた場合は、手作業で再設定をしない限り、ステップは破損します。注意:新しいモデルに新規フィールドが追加されたとしても、これらは自動的にステップ設定パネルに表示されません。これらのフィールドを表示させるためには、手作業でのアクションが必要です。例えば、ステップ設定パネルで「保存」ボタンをクリックするか、一覧から他のモデルを選択することで、新しい入力フィールドが表示されます。


例えば、こちらのH2Oモデルでは、新規入力フィールド(Educationとします)の追加を含む変更が行われました。このフィールドを設定せずにモデルを実行すると、ステップは破損します。



上図から分かるように、設定パネルには、入力形式に関する変更が表示されていません。

Save(保存)」ボタンをクリックすると、形式が更新され、新しいモデルに必要な入力が表示されます。(今回の例では、追加された新規フィールドが表示されます)



このフィールドをマッピングし、保存をすることで、フローを適切に実行することができます。


  1. こちらの例では、3つの入力フィールド(年齢、役職、収入)の設定が必要なモデルの結果を示すフローが表示されています。



  2. Select Model List(モデルを選択)」をクリックし、異なるモデルを選択します。



  3. このモデル内で指定された新しい入力フィールドが表示されますが、既にマッピングされた同一名のフィールドは、このモデルに合わせて自動的にマッピングされます。



  4. 新規入力フィールドとフローのデータをマッピングし、「Save(保存)」ボタンをクリックします。
  5. 出力カラム(列)は、新しいモデルの結果を表示するために更新されます。


出力で行われた変更

ワークフローで説明したように、モデルに生成された出力は「H2O Model Result(モデル結果)」という新しいカラム(列)名でデータプレビューパネルに表示されます。H2Oステップに変更が行われた場合、フロー内の継続するステップに影響を与えます。これは、ステップの失敗に繋がる場合もあります。

変更された出力のタイプ:H2Oステップ内のモデルが変更された場合、出力タイプも変更されている場合があります。接続された次のステップが数値を予期していても、変更によりテキストが受け取られた場合、これは失敗します。


例:これは、H2Oステップがモデルを使用してインプットステップからのデータをトランスフォーメーションするフローです。これは、数値を生成するようにデザインされており、集計して、この結果の合計を計算する、という次のステップに使用されます。そして、その結果は計算フィールドステップへ送られます。


しかし、モデルの出力がテキスト結果を生成するよう変更された場合、数値が適切に実行される必要があるため、集計ステップは失敗します(または、破損します)。失敗したステップを実行するすべてのステップは、キャンセルされます。





  • No labels