様々なマイニング・タスクを実行するOracle Data Miningを紹介します。
Oracle Data Miningを導入すると、Oracle Database内に強力な最新のデータ・マイニング機能が提供されます。Oracle Data Miningを使用して、予測的および記述的データ・マイニング・アプリケーションを作成および配置し、既存のアプリケーションにインテリジェント機能を追加して、データ調査のための予測問合せを生成できます。
Oracle Data Miningでは、様々なマイニング・タスク(分類、回帰、異常検出、特徴抽出、クラスタリング、マーケット・バスケット分析など)を実行するためのデータベース内アルゴリズムの包括的なセットが提供されます。このアルゴリズムは、標準ケース・データ、トランザクショナル・データ、スター・スキーマ、およびテキストなどの形式の非構造化データを対象に動作します。Oracle Data Miningは、非常に大規模なデータセットのマイニングに特化しています。
Oracle Data Miningは、Oracle Database Enterprise EditionのOracle Advanced Analytics Optionの2つあるコンポーネントの1つです。もう1つのコンポーネントは、R (オープンソースの統計環境)とOracle Databaseを統合するOracle R Enterpriseです。Oracle Data MiningとOracle R Enterpriseは、連携してビッグ・データ分析のための包括的な拡張分析プラットフォームを構成します。
Oracle Data Miningは、Oracle Databaseカーネル内に実装されます。データ・マイニング・モデルは、最初のクラスのデータベース・オブジェクトです。Oracle Data Miningのプロセスでは、Oracle Databaseの組込み機能を使用して、スケーラビリティを最大化し、システム・リソースを効率的に利用します。
Oracle Database内でデータ・マイニングを行うと、次のような多くの利点があります。
データ移動なし: 一部のデータ・マイニング製品では、データを企業のデータベースからエクスポートして、マイニング用に特別な形式へと変換する必要があります。Oracle Data Miningを使用すると、データを移動したり変換したりする必要がなくなります。このため、マイニング・プロセス全体の簡略化、作業時間の短縮、エラー発生頻度の抑制が実現し、非常に大規模なデータセットのマイニングが可能になります。
セキュリティ: データはOracle Databaseの広範なセキュリティ・メカニズムで保護されます。さらに、データ・マイニングの様々なアクティビティには特定のデータベース権限が必要となります。適切な権限を持つユーザーのみが、マイニング・モデル・オブジェクトを定義、操作または適用できます。
データ準備および管理: ほとんどのデータは、マイニング前に様々な方法での整備、フィルタリング、正規化、サンプリング、変換を必要とします。データ・マイニング・プロジェクトでの取組みのうち、その8割がデータの準備に費やされることもよくあります。Oracle Data Miningでは、データ準備プロセスの主要な手順が自動的に管理されます。また、Oracle Databaseでも、データ準備および管理用の豊富な管理ツール群が提供されています。
データ・リフレッシュの簡易化: Oracle Database内におけるマイニング・プロセスでは、リフレッシュ済データへのアクセスが即座に実施されます。Oracle Data Miningでは現在のデータに基づくマイニング結果を容易に提示できるので、最もタイムリで妥当性の高い結果が得られます。
Oracle Database Analytics: Oracle Databaseには、高度な分析やビジネス・インテリジェンス用の機能が多数用意されています。Oracle Data Miningは、統計的分析やOLAPなど、データベースの他の分析機能と簡単に統合できます。(「データベース分析の概要」を参照。)
Oracleテクノロジ・スタック: オラクル社に集積されたテクノロジのあらゆる側面を利用して、ビジネス・インテリジェンスや科学調査といった、より大規模なフレームワーク内に、データ・マイニングを統合できます。
ドメイン環境: データ・マイニング・モデルは、適切なアプリケーション・ドメイン環境で作成、テスト、検証、管理および配置する必要があります。データ・マイニングの結果には、永続リポジトリまたはデータ・ウェアハウスへ格納する前に、ドメイン固有の計算(推定リスクや反応確率の計算など)の一部として後処理を必要とするものもあります。Oracle Data Miningを使用すると、マイニング・アクティビティの前処理および後処理をすべて同じ環境で実行できます。
アプリケーション・プログラミング・インタフェース: Oracle Database内のOracle Data Mining機能には、PL/SQL APIおよびSQL言語の演算子を利用して直接アクセスできます。
スコアリングとは、データ・マイニング・モデルをデータに適用して予測を生成するプロセスのことです。スコアリング・プロセスには、システム・リソースがかなり必要になることがあります。状況によっては、膨大な量のデータが関係するため、アルゴリズムの処理は非常に複雑になります。
Oracle Data Miningでは、処理が非常に高速でインテリジェントなOracle Exadata Storage Serverにスコアリングの負荷を移行できます。
Oracle Exadata Storage Serverは、オラクル社の高性能なストレージ・ソフトウェアとオラクル社の業界標準仕様のSunハードウェアを組み合せて、業界最高レベルのデータベース・ストレージ・パフォーマンスを実現します。Oracle Exadataの詳細は、Oracle Technology Networkにアクセスしてください。
http://www.oracle.com/us/products/database/exadata/index.htm
Oracle Data Miningのプログラム・インタフェースは、モデルの作成および維持のためのPL/SQLと、スコアリングのためのSQL関数群です。Oracle Data Miningでは、Oracle SQL Developerの拡張として実装されるグラフィカル・ユーザー・インタフェースもサポートされます。
Oracle Predictive Analytics (簡略化されたデータ・マイニング・ルーチンのセット)は、Oracle Data Miningを基盤として構築され、PL/SQLパッケージとして実装されます。
Oracle Data Mining PL/SQL APIは、データ・マイニング・モデルの作成、テストおよび維持のためのルーチンを含むDBMS_DATA_MINING
PL/SQLパッケージに実装されます。バッチ適用操作もこのパッケージに含まれます。
次の例に、SVMC_SH_Clas_sampleというSVM分類モデルを作成するための単純なPL/SQLスクリプトの一部を示します。モデルの作成では、重み付け表で指定される重みと、設定表で指定される設定が使用されます。重みは、ターゲット・クラスの重み付けに影響します。設定は、デフォルトの動作に優先します。モデルでは、自動データ準備(prep_auto_on
設定)が使用されます。モデルは、mining_data_build_vのデータに対してトレーニングされます。
例2-1 分類モデルの作成
----------------------- CREATE AND POPULATE A CLASS WEIGHTS TABLE ------------ CREATE TABLE svmc_sh_sample_class_wt ( target_value NUMBER, class_weight NUMBER); INSERT INTO svmc_sh_sample_class_wt VALUES (0,0.35); INSERT INTO svmc_sh_sample_class_wt VALUES (1,0.65); COMMIT; ----------------------- CREATE AND POPULATE A SETTINGS TABLE ------------------ CREATE TABLE svmc_sh_sample_settings ( setting_name VARCHAR2(30), setting_value VARCHAR2(4000)); INSERT INTO svmc_sh_sample_settings (setting_name, setting_value) VALUES (dbms_data_mining.algo_name, dbms_data_mining.algo_support_vector_machines); INSERT INTO svmc_sh_sample_settings (setting_name, setting_value) VALUES (dbms_data_mining.svms_kernel_function, dbms_data_mining.svms_linear); INSERT INTO svmc_sh_sample_settings (setting_name, setting_value) VALUES (dbms_data_mining.clas_weights_table_name, 'svmc_sh_sample_class_wt'); INSERT INTO svmc_sh_sample_settings (setting_name, setting_value) VALUES (dbms_data_mining.prep_auto, dbms_data_mining.prep_auto_on); END; / ------------------------ CREATE THE MODEL ------------------------------------- BEGIN DBMS_DATA_MINING.CREATE_MODEL( model_name => 'SVMC_SH_Clas_sample', mining_function => dbms_data_mining.classification, data_table_name => 'mining_data_build_v', case_id_column_name => 'cust_id', target_column_name => 'affinity_card', settings_table_name => 'svmc_sh_sample_settings'); END; /
データ・マイニング用のSQL関数は、予測、クラスタリングおよび特徴抽出を実行します。関数は、マイニング・モデル・オブジェクトを適用するか、動的スコアリングを実行する分析句を実行して、データをスコアリングします。
次の例に、分類モデルsvmc_sh_clas_sample
をビューmining_data_apply_v
のデータに適用する問合せを示します。この問合せによって、提携カードを使用する可能性の高い顧客の平均年齢が戻されます。結果は性別によって分類されます。
例2-2 PREDICTION関数
SELECT cust_gender, COUNT(*) AS cnt, ROUND(AVG(age)) AS avg_age FROM mining_data_apply_v WHERE PREDICTION(svmc_sh_clas_sample USING *) = 1 GROUP BY cust_gender ORDER BY cust_gender; C CNT AVG_AGE - ---------- ---------- F 59 41 M 409 45
関連項目:
動的スコアリングの例を含むスコアリングの詳細は、「データベース内スコアリング」を参照してください
Oracle Data Minerは、Oracle Data Miningのグラフィカル・インタフェースです。Oracle Data Minerは、Oracle Technology Networkで無償ダウンロードできるOracle SQL Developerの拡張です。
Oracle Data Minerは、ワークフロー・パラダイムを使用して、データ・マイニング・モデルの作成、評価、適用のプロセスを取得、ドキュメント化および自動化します。ワークフロー内で、データ変換の指定、複数のモデルの作成と評価、および複数のデータセットのスコアリングを行うことができます。その後、ワークフローを保存して他のユーザーと共有できます。
インストール手順を含むOracle Data Minerの詳細は、Oracle Technology Networkの次のページを参照してください。
http://www.oracle.com/pls/topic/lookup?ctx=db121&id=datminGUI
予測分析は、データ・マイニング・プロセスを単純なルーチンで実行する手法です。「1クリック・データ・マイニング」とも呼ばれるとおり、予測分析では、データ・マイニング・プロセスの単純化と自動化を実現しています。
予測分析ではデータ・マイニングの手法を使用しますが、データ・マイニングに関する知識は必要としません。ユーザーは、データに対して実行する操作を指定するだけで予測分析を実行できます。マイニング・モデルの作成や使用は不要であり、「Oracle Data Miningの基礎」で説明されているマイニング機能やマイニング・アルゴリズムについて理解しておく必要もありません。
Oracle Data Miningの予測分析の操作については、次の表を参照してください。
表2-1 Oracle Predictive Analyticsによる操作
操作 | 説明 |
---|---|
|
ターゲット列の値の偏差に対して個々の予測子(列)がどのように影響するかを説明する。 |
|
各ケース(行)について、ターゲット列の値を予測する。 |
|
同じターゲット値を想定するケース(行)に対するルールのセットを作成する。 |
Oracle Predictive Analyticsによる操作は、DBMS_PREDICTIVE_ANALYTICS
PL/SQLパッケージに実装されています。これらは、Oracle Data Minerでも利用できます。
Oracle Databaseでは、Oracle Advanced Analytics Optionとは独立した一連のネイティブ分析機能がサポートされます。これらの機能はすべて共通サーバーの一部であるため、効率的に組み合せることができます。分析処理の結果は、Oracle Business Intelligence Suite Enterprise EditionなどのBIツールやアプリケーションに統合できます。
様々な分析は、ほとんど制限なく組み合せることができます。例2-3に、単一のSQL問合せ内におけるデータ・マイニングおよびテキストの処理を示します。この問合せでは、自然減する傾向が強く(確率が80%を超える)、有望な顧客であり(顧客価値率が90%を超える)、かつChecking Plusアカウントに関して最近カスタマ・サービスに問合せのあった顧客がすべて選択されます。自然減の傾向に関する情報は、tree_model
というデータ・マイニング・モデルを使用して計算されます。Checking Plusアカウントに関するコール・センターのメモを検索するために、Oracle TextのCONTAINS
演算子が使用されています。
Oracle Databaseでサポートされるネイティブ分析の一部を次の表で説明します。
表2-2 Oracle Databaseのネイティブ分析
例2-3 Oracle Data MiningとOracle Textを組み合せるSQL問合せ
SELECT A.cust_name, A.contact_info FROM customers A WHERE PREDICTION_PROBABILITY(tree_model, 'attrite' USING A.*) > 0.8 AND A.cust_value > 90 AND A.cust_id IN (SELECT B.cust_id FROM call_center B WHERE B.call_date BETWEEN '01-Jan-2005' AND '30-Jun-2005' AND CONTAINS(B.notes, 'Checking Plus', 1) > 0);