• 検索結果がありません。

Warehouse Builderにおける予測分析の使用

N/A
N/A
Protected

Academic year: 2021

シェア "Warehouse Builderにおける予測分析の使用"

Copied!
16
0
0

読み込み中.... (全文を見る)

全文

(1)

Warehouse Builder における予測分析の

使用

Oracle ホワイト・ペーパー

2006 年 3 月

(2)

Warehouse Builder における予測分析の使用

はじめに ... 3

ETL におけるエンタープライズ予測分析の使用 ... 4

DMBS_PREDICTIVE_ANALYTICS の使用 ... 4

新しい変換関数の追加 ... 5

ステップ 1−名前と説明... 5

ステップ 2−パラメータ... 5

ステップ 3−実装... 5

マッピング ... 6

SQL PREDICT 関数の使用... 7

新しい変換関数の追加 ... 9

ステップ 1−名前と説明... 9

ステップ 2−パラメータ... 9

ステップ 3−実装... 9

マッピング ... 10

PL/SQL のデータ・マイニング・モデルの使用 ... 11

新しい変換パッケージの追加 ... 12

マッピング ... 12

プロセス・フローの作成 ... 14

(3)

Warehouse Builder における予測分析の使用

はじめに

企業は、日常業務に関する大量のデータを収集し分析するために、多額の資金と 大量の時間を費やしています。 しかしながら、そのデータの大部分は、さまざま な理由によって欠落している可能性があります。 たとえば、多くの Web サイト では、ユーザーはサイトのコンテンツへログインし、名前を記入することが求め られます。 一般的な登録プロセスでは、顧客に過剰な負担をかけない範囲で、で きる限り多くの情報を集めようとします。 いくつかのフィールドは必須項目とし て指定されていますが、多くのフィールドは省略可能であるため、結果としてデー タの欠落が発生します。これらのデータの多くは、ビジネスのトレンドや機会を 特定するための分析に極めて重要である可能性があります。 予測分析は、ビジネスに関する以下の種類の質問に対し、回答する際に使用され ていました。 • コンポーネントの失敗を特定するための、キーとなる属性は何ですか? • 今後 24 時間以内におけるネットワーク上の最大ピーク負荷の予測値はど のくらいですか? • 信用リスクが高い顧客である可能性はどのくらいですか? • 特定の製品を購入する可能性がもっとも高いのは、どのような顧客ですか? • 個人の顧客または顧客グループが、計画中のキャンペーンに反応する確 率はどのくらいですか? データ・マイニングは、膨大なデータに埋もれた有益な情報を見つけ出すことが できる手法です。 ただし、これらの結果から利益を得られると思われる多くの ユーザーには、データ・マイニングに関する知識がまったくないことがよくあり ます。 今日まで、ほとんどの予測分析業務では、別の分析サーバーにデータを抽 出することが必要であったため、そのデータを他のソースのデータと再結合する ことは容易ではありませんでした。 このため、結果の分析は限定されたものにな り、予測分析機能を使用する際には制約がありました。 データ・マイニング・エンジンが、単一のリレーショナル・エンジンに統合され ていれば、これらの機能を、従来の抽出、変換、ロードのプロセス内に組み込む こともできます。 この場合、予測分析を使用することで、ソース・データ内の欠 落を埋め、ソース・データに属性を追加することができます。 現在、Oracle Enterprise Edition データベースのみが、分析機能と予測機能を内蔵した分析エンジ ンを提供しています。また、Oracle データベースの機能を十分に活用できるエン タープライズ・レベルのビジネス・インテリジェンス統合ツールは、Oracle

(4)

ETL におけるエンタープライズ予測分析の使用

データ・マイニング・プロセスの核となるのは、 モデル です。 新しいモデルの 開発とは、適切なアルゴリズムを選択し、そのアルゴリズムの要件に合ったデータ を準備した後、さらに、予測機能を評価するためそのモデルを作成してテストする ことを意味します。 また、ベース・データのサンプリング、データ変換の追加、異 常値の削除、欠損値の置換、ビニング、および正規化を行う場合もあります。 Oracle Database 10g には、ETL 開発者が予測分析を実装するために、以下の 3 つの 方法が用意されています。 • DBMS_PREDICTIVE_ANALYTICS パッケージ • モデルに対する SQL PREDICT ラッパー機能 • PL/SQL のデータ・マイニング・モデル

DMBS_PREDICTIVE_ANALYTICS の使用

DBMS_PREDICTIVE_ANALYTICSパッケージは、より幅広いユーザー層、特にETL 開発者やビジネス・アナリストによるデータ・マイニングを可能にする、重要な ツールです。 このパッケージによって、データの前処理からモデルの作成、およ び新規データのスコアリングまで、データ・マイニング・プロセス全体が自動化 されます。 パッケージには、以下の 2 つのプロシージャが含まれます。 • EXPLAIN • PREDICT PREDICTプロシージャは、ETL開発者にとって、もっとも有用なプロシージャで す。 このプロシージャを使用して、特定のColumnの値を予測できます。 入力デー タはテーブルとターゲット列で構成されており、ターゲット列には予測する値が 含まれます。 入力データには、ターゲット値が既知の値(NULL値は不可)であ るケースをいくつか含む必要があります。 ターゲット値が既知であるケースを利 用して、モデルの照準を合わせます。 PREDICTは、値が既知である場合を含めて、すべてのケースに対する予測値を返 します。 下の例では、Naïve Bayesアルゴリズムに基づく種別を使用して、アフィ ニティ・カード・プログラムに対する顧客の反応を予測するために、PREDICTプ ロシージャが使用されています。 DBMS_PREDICTIVE_ANALYTICS.PREDICT( accuracy => v_accuracy, data_table_name => 'customer_AGE', case_id_column_name => 'cust_id', target_column_name => 'affinity_card', result_table_name => 'predict_result'); DBMS_OUTPUT.PUT_LINE('Accuracy = ' || v_accuracy);

(5)

このプロセスはすべて自動化されており、モデルに対する標準的な入力は、デフォ ルトでもっとも一般的な値に設定されます。 この種のプロセスに対する制御を強 化したい場合は、データ・マイニングの次の段階へと進み、Oracle Data Miner ク ライアントや、PL/SQL、および Java API の使用をお奨めします。これらについて は次の項で説明します。

新しい変換関数の追加

図 1.DBMS_PREDICTIVE_ANALYTICS パッケージを使用する新しい関数の追加 DBMS_PREDICTIVE_ANALYTICS パッケージを使用するには、最初に OWB の設 計リポジトリに登録する必要があります。 標準の OWB ウィザードは、以下の 3 つのステップで構成されており、ETL 開発者が登録プロセスを実行する手助けを します。

ステップ 1-名前と説明

最初のステップでは、関数の名前を付けます。

ステップ 2-パラメータ

次のステップでは、所定の入力パラメータを追加します。 より柔軟で再利用可能 な関数にするために、以下のパラメータを入力することができます。 • data_table_name • case_id_column_name • target_column_name • result_table_name • data_schema_name しかし、ここでは単純な例にするために、入力パラメータは使用しません。

ステップ 3-実装

最後のステップは、予測モデルを実装するコードの作成です。この予測モデルに よって、モデルが実行されます。 この例では、モデルを使用して、ハイバリュー の顧客フラグの値を割り出します。 基本的な入力項目は、以下のとおりです。 • ソースとなるテーブル • 入力テーブルの各レコードを一意に特定するための、ケース・キー • 予測すべき値を含む列の名前 • ターゲット・テーブルの名前 関数からの出力は、テーブル PREDICT_RESULT に渡され、保管されます。 この 出力テーブルには、次の形式が事前定義されています。

(6)

case_id_column_name それぞれのケースは、case_id列によって識別されます。 これは、 入力パラメータとして渡された名前と同じ名前です。 データ・ タイプは、入力されたcase_idのタイプと同じです。 prediction 特定のケースに対する、ターゲット列の予測値。 データ・タイ プは、入力されたtarget_column_nameのタイプと同じです。 probability 種別(ターゲットのカテゴリー分け)に使用するための予測の 確率。 回帰問題に備えるため、この列はNULL値を含みます。

マッピング

モデルからの出力テーブルである PREDICT_RESULT を、ソース・テーブルであ る CUSTOMER_AGE と結合します。 まず事前マッピングによって、予測分析モ デルが実行され、出力テーブルにデータが挿入されます。次に、マッピングが実 行され、ターゲット・テーブルである PREDICTED_CUSTOMERS にデータが挿入 されます。

図 2−Oracle Warehouse Builder マッピングにおける事前マッピング・プロセスによる DBMS_PREDICTIVE_ANALYTICS パッケージの呼び出し

(7)

SQL PREDICT 関数の使用

データベース・バージョン 10g Release 2 では、新しいSQL関数、PREDICTが提供 されます。 この関数は、DBMS_DATA_MININGパッケージによって作成される 種別モデルで使用されるか、またはOracle Data Mining Java APIから使用されます。 関数の戻り値は、特定の予測についての確率です。 データ・マイニング・モデルは、その名前を使用して参照されます。 その他すべ てのデータベース・オブジェクトと同様に、それぞれのモデルには記憶域が関連 付けられていますが、モデルはデータベース・スキーマ・オブジェクトではない ため、ETL開発者にはその記憶域は明らかではありません。 ただし、 DBMS_DATA_MINING PL/SQLパッケージに含まれる、アルゴリズム固有の GET_MODEL_DETAILS関数を使用して、モデル(マイニング・モデルを構成す るパターンとルール)の中身を参照することができます。 これらの関数について は、『Oracle Database PL/SQL Packages and Types Reference』を参照してください。

Java APIのモデルについて詳しくは、『Exploring Model Details』を参照してくださ い。

以下のとおり、ETL 開発者は、パブリック・ビューを利用することによって、 DM_USER_MODELS ビューを検索して特定のスキーマ内のモデルを表示するこ とができます。

select 'NAME', 'FUNCTION_NAME', 'ALGORITHM_NAME' from DM_USER_MODELS; NAME FUNCTION_NAME ALGORITHM_NAME --- ABN_SH_CLAS_SAMPLE CLASSIFICATION ADAPTIVE_BAYES_NETWORK AI_SH_SAMPLE ATTRIBUTE_IMPORTANCE MINIMUM_DESCRIPTION_LENGTH AR_SH_SAMPLE ASSOCIATION_RULES APRIORI_ASSOCIATION_RULES DT_SH_CLAS_SAMPLE CLASSIFICATION DECISION_TREE

KM_SH_CLUS_SAMPLE CLUSTERING KMEANS NB_SH_CLAS_SAMPLE CLASSIFICATION NAIVE_BAYES

NMF_SH_SAMPLE FEATURE_EXTRACTION NONNEGATIVE_MATRIX_FACTOR OC_SH_CLUS_SAMPLE CLUSTERING O_CLUSTER

SVMC_SH_CLAS_SAMPLE CLASSIFICATION SUPPORT_VECTOR_MACHINES SVMO_SH_CLAS_SAMPLE CLASSIFICATION SUPPORT_VECTOR_MACHINES SVMR_SH_REGR_SAMPLE REGRESSION SUPPORT_VECTOR_MACHINES T_SVM_CLAS_SAMPLE CLASSIFICATION SUPPORT_VECTOR_MACHINES

OWB の設計リポジトリ内に新しい変換関数を作成することによって、この関数を マッピングで使用して、顧客をハイバリューまたはローバリューとしてスコアリン グできます。 この例では、それぞれの顧客に対して、ハイバリューまたはローバ リューのスコアリングを行う必要があります。 顧客の価値を予測するモデルがすで に定義されている場合、次の SQL 文を使用して、顧客の予測またはスコアリングが 実行できます。

(8)

s_cust_high_value number; begin

if nvl(HIGH_VALUE_CUST,-1) = -1 then

execute IMMEDIATE 'select PREDICTION(dt_sh_clas_sample COST MODEL USING cust_marital_status, education, household_size) from CUSTOMER_DETAILS WHERE CUST_ID = :1' INTO s_cust_high_value USING CUST_ID_IN; else is_cust_high_value := HIGH_VALUE_CUST; end if; return is_cust_high_value; end; これを関数として定義し、ETL マッピングによって顧客情報がソース・テーブル から抽出される際に、それぞれの顧客に対して実行することができます。

(9)

新しい変換関数の追加

SQL PREDICTIVE 関数を使用するには、最初に OWB の設計リポジトリに登録す る必要があります。 標準の OWB ウィザードは、以下の 3 つのステップで構成さ れており、ETL 開発者が登録プロセスを実行する手助けをします。

ステップ 1-名前と説明

図 3.SQL PREDICT 関数を使用する 新しい関数の追加 最初のステップでは、関数の名前を付けます。

ステップ 2-パラメータ

次のステップでは、所定の入力パラメータを追加します。 このモデルでは、 Customer ID と現在のスコア値(顧客に対するスコアリングが、すでにソース・ア プリケーションで実行されている場合)が必要です。 いずれのパラメータも数値 です。

ステップ 3-実装

最後のステップは、データ・マイニング・モデルを実行する演算の定義です。 モ デル dt_sh_clas_sample によって、ハイバリューの顧客フラグの値が決定されま す。 予測モデルは、PL/SQL を使用して手動で作成することも、Oracle Data Miner クライアントから生成することもできます。 この作業は、通常データ・マイニン グ・モデルに関する知識を持つユーザーが行います。 いったんモデルを作成して テストを行った後は、SQL 関数 PREDICTION よりこのモデルを使用できます。 こ こからも分かるように、OWB 内でのこの統合はシンプルであり、すべてのタイプ の SQL 関数を追加する標準手法に従っています。 このケースでは、ソース・アプリケーションによってすでにフラグが設定されて いる場合、関数は単純にその値を返します。また、モデルを呼び出して、婚姻区 分、教育、および世帯規模に基づいて新しい予測を実行することもできます。 こ れらの属性はソース・テーブルの列に格納されており、結果の精度を上げるため に、必要に応じてモデルに追加できます。 顧客の状況に変更が発生した場合や、偽陽性または偽陰性の可能性がある場合は、 再スコアリングによって結果を既存値と比較することができます。 この例では、 実装は簡素化されています。

(10)

「Transformation」ツリーの「Function」ノードに新しい関数が表示されています。

図 4−SQL PREDICT 関数を登録した後の、Oracle Warehouse Builder のマッピング変換ノード

今後、ターゲット・テーブルの内容を更新するために、この関数をマッピングで 使用することができます。また、この関数は、その他の変換とまったく同じ方法 で使用されます。

マッピング

この関数は、その他の一般関数と同じようにマッピングに追加できます。 この場 合、Customer ID と ハイバリューの顧客 フラグの現在値が関数に渡されて処理 され、NULL 値が確認された場合、新規の値が推定されます。 理論的には、この 関数を拡張し、関数によって顧客の情報が更新されたことを記録して、データに 対する包括的な監査証跡機能を提供することができます。

(11)

PL/SQL のデータ・マイニング・モデルの使用

PL/SQL の予測分析パッケージには、通常、以下のセクションが含まれます。 • Build • Test • Apply この例では、これらのステップは別々の PL/SQL プロシージャに分割されていま す。また、追加のプロシージャである DM_COORDINATE によって、モデル全体 のフローが制御されています。 このパッケージでは、ETL 開発者がどのステージ を実行するかについて決定できます。 • Build、Test、および Apply • Test および Apply • Apply 以下に、DM_COORDINATE プロシージャを示します。 v_howtorun VARCHAR2(7); --main body BEGIN

NULL; --allow compilation

v_howToRun := upper(nvl(V_MODE, 'CREATE')); IF v_howToRun = 'CREATE' THEN

execute immediate 'call dm_score_create()'; execute immediate 'call dm_score_test()'; execute immediate 'call dm_score_apply()'; ELSIF v_howToRun = 'TEST' THEN

execute immediate 'call dm_score_test()'; execute immediate 'call dm_score_apply()'; ELSIF v_howToRun = 'APPLY' THEN

execute immediate 'call dm_score_apply()'; END IF;

EXCEPTION

(12)

新しい変換パッケージの追加

図 6. 予測分析 PL/SQL インタフェースを 使用する新しいパッケージの追加 標準の OWB ウィザードを使用して、前項で説明した方法と同様に、モデルの各 ステージを管理するパッケージをプロジェクト・リポジトリに追加できます。 ほとんどのモデルの出力結果は、対応するランクと確率を含む回答です。 サンプ ル・スキーマを使用した場合、顧客テーブルには、顧客に関連する大量の人口統 計データが含まれています。 この情報を活用し、Naïve Bayes アルゴリズムに基 づく種別を使用して、アフィニティ・カード・プログラムに対する顧客の反応を 予測できます。 Naïve Bayes モデルは、新規のプロシージャとして変換ノード内に追加できます。 完全なパッケージとして登録することも、上述のように個別のパッケージに分割 して登録することもできます。 データ・マイニング・モデルを利用すると、顧客の重要度(低または高)の予測 値またはスコア値で、NULL 値を置換できます。 これは、デフォルト値の使用に 比べて、非常に優れたアプローチです。 このコンセプトを、膨大な数にのぼる別 の欠落値の予測に適用できます。 たとえば、同じような顧客の購買パターンを分 析することで、顧客の年齢や性別を予測することができます。 ただし、これらの 値は、確認や検証された実際の値ではなく、予測値であることを記憶にとどめて おく必要があります。 本来のレコードと識別するため、これらの予測レコードに 印をつけておくことは、賢明な考えです。

マッピング

マッピング・エディタ内のソース・テーブルである nb_sh_sample_apply_ranked に は、モデルのランキング結果が含まれます。 DBMS_DATA_MINING.RANK_APPLY ( apply_result_table_name => 'nb_sh_sample_apply_result', case_id_column_name => 'customer_id', score_column_name => 'score', score_criterion_column_name => 'chance', ranked_apply_table_name => 'nb_sh_sample_apply_ranked', top_n => 2, cost_matrix_table_name => 'nb_alter_cost'); Table nb_sh_sample_apply_ranked から取得された結果は、次のようになります。 CUSTOMER_ID SCORE CHANCE COST RANK

--- --- --- --- ---

100001 0 .9602 .0261 1

100001 1 .0398 .9602 2

100002 0 .7188 .1847 1 100002 1 .2812 .7188 2

(13)

マッピングに使用するには、Rank 列の値(ランク=1)に基づいて結果をフィルタ リングする必要があります。 Customer ID を使用して、データ・マイニング・モ デルの出力結果を、追加の人口統計データを含む顧客テーブルと再結合すること ができます。 マッピングを実行する前に、データ・マイニング・パッケージを実行して、ター ゲット・テーブルである nb_sh_sample_apply_ranked にデータを挿入する必要があ ります。 これは、事前マッピング・プロセスによって実行されます。 マッピン グの入力パラメータを使用して、データ・マイニング・パッケージの実行パスを 制御できます( create 、 test 、 apply )。

(14)

プロセス・フローの作成

図 8−実行フローを制御する変数の プロセス・フローへの追加 プロセス・フローは、ETL マッピングの定期的実行を管理するために使用します。 これは迅速で簡単に作成できます。 マッピングは、予測分析モデルの実行を制御 するマッピング入力パラメータを使用するため、プロセス・フロー変数を使用し て、この入力パラメータを生成します。 プロセス・フロー変数は、OWB 10g Release 2 の新機能です。 この変数が保管するスカラー値はマップ内で利用され、プロセ ス・フローの実行中は、どのアクティビティからも参照できます。 デフォルト値 を割り当てることも、割当てアクティビティを利用して明示的に値を更新するこ ともできます。 今後は、この変数を前項で作成したマッピング・パラメータに結合できます。 図 9−プロセス・フローに対する予測分析マッピングの追加

(15)

データ・マイニング・マッピングをキャンバスに追加し、プロセス・フロー変数 と結びつけたら、残りのフローは通常のプロセス・フローと同様に作成できます。

(16)

ETL における予測分析の使用 2006 年 3 月 著者: Keith Laker Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. お問合せ: 電話: +1.650.506.7000 ファクシミリ: +1.650.506.7200 www.oracle.com

Copyright © 2004 - 2006, Oracle. All rights reserved. 本文書は情報提 供のみを目的として提供されており、ここに記載される内容は予告な く変更されることがあります。 本文書は一切間違いがないことを保証 するものではなく、さらに、口述による明示または法律による黙示を 問わず、特定の目的に対する商品性もしくは適合性についての黙示的

参照

関連したドキュメント

① 新株予約権行使時にお いて、当社または当社 子会社の取締役または 従業員その他これに準 ずる地位にあることを

鉄道駅の適切な場所において、列車に設けられる車いすスペース(車いす使用者の

利用している暖房機器について今冬の使用開始月と使用終了月(見込) 、今冬の使用日 数(見込)

ご使用になるアプリケーションに応じて、お客様の専門技術者において十分検証されるようお願い致します。ON

ご使用になるアプリケーションに応じて、お客様の専門技術者において十分検証されるようお願い致します。ON

ご使用になるアプリケーションに応じて、お客様の専門技術者において十分検証されるようお願い致します。ON

ご使用になるアプリケーションに応じて、お客様の専門技術者において十分検証されるようお願い致します。ON

2 次元 FEM 解析モデルを添図 2-1 に示す。なお,2 次元 FEM 解析モデルには,地震 観測時点の建屋の質量状態を反映させる。.