概要
YellowfinのPMMLモデル予測ステップは、PMMLファイルの形式で保存されたデータサイエンスモデルをYellowfinへインポートし、データへ適用することで予測などの結果を生成することができます。ステップは、トランスフォーメーションフローを作成することで、Yellowfinのデータトランスフォーメーションモジュール内で機能します。
このトランスフォーメーションステップを使用するためには、BIプラットフォームへPMMLのプラグインをインストールしなくてはいけません。プラグインをインストールすることで、データトランスフォーメーションモジュールのトランスフォーメーションステップ一覧にPMMLステップが表示されます。このトランスフォーメーションステップは、PMMLモデルを統合し、適用するために使用されます。プラグインのインストール方法については、こちらを参照してください。
こちらの項目を確認する前に、データトランスフォーメーションモジュールについて事前に理解をしておくのが理想的です。
必要なデータトランスフォーメーションステップ
データトランスフォーメーションモジュールは、異なる「ステップ」を使用することでトランスフォーメーションフローを作成します。こちらの手順では、少なくとも2種類のステップが必要です。
注意:フローには複数のステップを追加することができますが、少なくとも最初の2つはPMMLモデルが結果を生成するために必要となります。
- データソースからデータを取得し、Yellowfinへ読み込む「インプットステップ」。これはモデルに使用するデータのため、データソースへのアクセス権が付与されており、データが適切な形式であることを確認してください。異なるタイプのインプットステップを使用することで、様々な方法でデータを取得することができ、すべてのステップがPMMLステップをサポートします。各ステップの使用や設定方法については、こちらの項目を参照してください。
- 「PMMLモデル予測ステップ」。このステップは、PMMLモデルが作成するようにデザインされた出力を生成します(例えば、データに基づく予測の作成)。これは、データモデル(PMMLファイル形式)をデータトランスフォーメーションモジュールに読み込み、フロー内の前のステップ(例:接続されているステップ)から取得されたデータへ適用することで機能します。このステップを入力フィールドと一致させ、出力フィールドを指定するように設定しなくてはいけません。(注意:このステップは、必要なプラグインをYellowfinへインストールすることで、トランスフォーメーションステップ一覧に表示されるようになります。)
アウトプットステップは、PMMLモデルの結果を、書き込み可能なデータベースに保存する場合に必要になります。
データトランスフォーメーションモジュールにより、ユーザーは異なるタイプのトランスフォーメーションフローを作成し、必要に応じてPMMLステップを含めることができます。例えば、他の方法でトランスフォーメーションされたデータにPMMLモデルを適用し、それが生成する結果をさらなるトランスフォーメーションに使用することができます。
サポートしているモデルタイプ
YellowfinのPMMLモデル予測ステップがサポートするデータサイエンスモデルのタイプは、以下の通りです。
- 関連ルール
- クラスタモデル
- 一般的な回帰
- ナイーブベイズ
- k最近傍法
- ニューラルネットワーク
- 回帰
- ルールセット
- スコアカード
- サポートベクターマシン
- ツリーモデル
- アンサンブルモデル
サポートしているPMMLファイルのバージョン
PMMLトランスフォーメーションステップは、バージョン3.0以降のPMMLファイルを完全にサポートします。しかし、それ以前のバージョンでも機能するものもあります。また、PMMLの標準ではPMMLファイルに複数のモデルを含めることができても、PMMLステップはPMMLファイル内のひとつのモデルしか認識することができません。ファイル内に複数のモデルがある場合、Yellowfinは最初のモデルを使用します。
PMMLステップの設定
フローにPMMLモデル予測ステップを追加したら、これを設定しなくてはいけません。これには、PMMLモデルのアップロードが含まれます。モデルが適切に解析されたら、モデル内で指定されている入力フィールドと出力フィールドの設定をします。注意:使用されているモデルに、入力フィールドと出力フィールドが指定されているものとします。
入力設定
モデルの入力は、計算を実行するために必要なデータのフィールドを参照します。例えば、回帰モデルの場合、入力はモデルに必要な独立変数の一覧です。PMMLステップを適切に実行するためには、データフィールドを、モデルが必要とするフィールドとマッピングしなくてはいけません。
出力設定
モデルの出力は、モデルが生成するようにデザインされた一連の結果フィールドです。出力が通常ひとつの予測されたフィールドである回帰モデルのような場合は、たったひとつのフィールドから出力を構成することもできます。しかし一方で、クラスタリングモデルの場合は、出力として指定された数のクラスタ、または各クラスタの重心までの距離を持つフィールドのいずれかを設定することができます。出力を設定する際にユーザーは、利用可能なフィールドから、どのフィールドを結果に表示するのか選択することができますが、少なくともひとつの出力フィールドを選択しなくてはいけません。出力フィールドのデータ型は、モデル内で指定されたものになりますが、特に指定されていない場合は、結果はテキストと見なされます。
例えば、モデルは客室等級と年齢を元に、タイタニックの乗客が支払った料金を予測するようにデザインすることができます。この場合、設定される入力は等級と年齢であり、選択される結果フィールドは料金です。
PMMLモデル予測ステップの使用方法
こちらの項目は、PMMLモデル予測ステップを使用してデータサイエンスモデルをYellowfinへ統合する方法について紹介します。
- PMML内でモデルを構築し、XML形式で保存します。(説明の中ではこのファイルを、PMMLファイルと言います)
- Yellowfinのデータトランスフォーメーションモジュールへ移動します。(「作成」ボタン>「トランスフォーメーションフロー」)
- データを取得するインプットステップから、トランスフォーメーションフローの作成を始めます。(基礎的なフローの作成方法は、こちらを参照してください。また、他のデータの取得方法については、こちらを参照してください)
- 取得されたデータが、データプレビューパネルに表示されます。さらにデータをトランスフォーメーションするために、ステップを追加することもできます。
- PMMLモデルを使用する準備ができたら、以下の手順に従います。
- トランスフォーメーションステップ一覧から、PMMLモデル予測ステップをキャンバスへドラッグします。(注意:こちらのステップが表示されない場合は、PMMLプラグインがインストールされているかを確認してください)
- 接続ポイントを使用して、最後のステップをPMMLトランスフォーメーションステップへ接続します。
- 次に、PMMLステップを設定します。(設定画面が表示されるように選択されていることを確認してください)
- PMMLファイルをアップロードします。アップロード方法には、以下の2つがあります。
- 指定されたパネルにファイルをドラッグするか、ファイル選択から対象のファイルを選択します。(ファイルがローカルに配置されている場合は、こちらの方法を実施してください)
- または、「Load from Path(ファイルパスから読み込み)」トグルを有効にして、ファイルパス、またはURLを入力し、「Load File(ファイルの読み込み)」ボタンをクリックします。
- PMMLファイルにアクセスするためには完全URLを入力します。例:http://dmg.org/pmml/pmml_examples/knime_pmml_examples/ElNinoLinearReg.xml
(注意:URLを使用してPMMLファイルを読み込む場合は、インターネット接続が必要です。インターネット接続がない場合は、ファイルを読み込むことができません)
Windows端末での完全ファイルパスの例は、以下の通りです。
C:\Users\admin\Desktop\audit_cluster.xml
Linux端末でのファイルパスの例は、以下の通りです。
/root/audit_cluster.xml
注意:ファイルが解析されない場合や、入力したパスが無効の場合は、以下のエラーメッセージが表示されます。
注意2:ドラッグ&ドロップを使用してファイルをアップロードする場合、最初のアップロード時にファイル名が消えることがあるかもしれませんが、ステッ上でアクションを実行することで、再び表示されます。
- ファイルのアップロードに成功すると、入力フィールドをマッピングし、出力を指定するための詳細な設定オプションが表示されます。表示される入力と出力フィールドは、モデルに応じて異なります。
- 最初に、モデルに必要な入力カラム(列)を、取得されたファイル内の適切なカラム(列)とマッピングします。今回の例では、モデルは収入、年齢、性別を入力に必要としています。
注意:正確な結果を導くためには、正確なマッピングをしなくてはいけません。データフィールド名は、モデル内のフィールド名と同一ではない場合もあります。選択したフィールドが、モデルが予期するデータ型と一致していることを確認しなくてはいけません(不適切なマッピングがされた場合は、エラータブに各データ値のエラーが生成されます)
注意2:すべての入力フイールドは必ずマッピングしなくてはならず、すべてが適切にマッピングされない限り、ステップは実行されません。 - 次に、どのモデル出力結果を生成するか選択します。Configure(設定)パネルには、モデルが生成するようにデザインされたすべての出力が表示されます。複数の出力を選択することができます(が、少なくともひとつの出力フィールドを選択しなくてはいけません)
注意:「デフォルトターゲット」出力フィールドは、モデルのデフォルト出力を含みます。PMMLファイルが明確に出力フィールドを指定していない場合は、「デフォルトターゲット」オプションのみを使用することができます。 - 入力と出力フィールドを適切に設定したら、「Save(保存)」ボタンをクリックします(注意:モデルを設定し、Save(保存)ボタンをクリックする前に、Configure (設定)パネル以外の場所をクリックすると、設定した内容は失われます)
設定を保存すると、モデルの結果とともに、データプレビューパネルにカラム(列)が表示されます。(注意:今回の例では、2つの出力フィールドを選択しているため、2つの新規結果カラム(列)が表示されています)
出力カラム(列)のデータ型は、モデル内で指定されているデータ型を引き継ぎますが、特に指定されていない場合は、デフォルトとしてテキストが使用されます。
- さらなるトランスフォーメーションを行うこともできますし、結果をデータベースに保存することもできます。
PMMLモデル予測ステップの編集
PMMLファイルを、別のモデルを使用したものに置き換えるか、入力、または出力設定を変更することで、PMMLステップを編集することができます。しかし、これはトランスフォーメーションフローに影響を与えます。
多くの場合、フローはより複雑な構造を持ちますが、今回の例では、非常にシンプルなトランスフォーメーションフローを表示しています。
- 上記の例に見られるように、フローにはDelimited File(区切り文字付きファイル)から入力値をマッピングし、出力を生成するように構成されたPMMLモデルが含まれています。これは、生成された予測値を集約します。選択されたモデルは入力値として収入、年齢、性別が必要であり、いくつかの出力フィールドを持ちます。
- 入力フィールドを再設定することで、このステップを編集することができます(例えば、入力データが変更された場合)。この場合、新しいマッピングが有効である限り、ステップの実行は成功します。
- または、Configure(設定)パネルから別のPMMLファイルを読み込むことで、PMMLモデルを変更することができます(PMMLトランザクションステップが選択されていることを確認してください)
- ステップの入力、出力設定フィールドは、新しいモデルのものに変更されます。
- 新しい入力フィールドへデータをマッピングし(データ型が一致していることを確認しましょう)、生成する結果を選択します。
注意:前回のステップから取得されるデータと、新しいモデルの要件が一致することを確認しましょう。一致しない場合は、データを変更しなくてはいけない場合があります。
注意2:新しいモデルが、前回のモデルと同一のフィールド名で構成される場合は、自動的にマッピングされます。 - 「Save(保存)」ボタンをクリックします。
- 入力フィールドを正確に設定することで(データ型が一致)、モデルは選択された出力フィールドに基づく結果とともに新しいカラム(列)を生成します。(以前の結果に基づくカラム(列)を削除します)
- しかし、ここでフロー内の残りのステップを再実行しなくてはいけません。実行ログには、残りのステップは未実行であると表示されます(下図のAggregate Transformation(集計トランスフォーメーション)ステップを参照)
- 次のステップをクリックして、設定が正確であることを確認し(新しいフィールドが生成された場合、それらも設定しなくてはいけません)、「Apply(適用)」をクリックします。
- この手順を、フロー内の残りのすべてのステップで行います。