ヘッダーをスキップ
Oracle Data Mining概要
11g リリース2(11.2)
E48231-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

2 Oracle Data Miningの紹介

この章では、Oracle Data Miningの使用を開始する際に必要となる基本事項を紹介します。

この章には、次の項が含まれます。

データベース・カーネル内でのデータ・マイニング

Oracle Data Miningを導入すると、Oracle Database内に総合的な最新のデータ・マイニング機能が提供されます。

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の分析機能。Oracle Databaseには、高度な分析やビジネス・インテリジェンス用の機能が多数用意されています。Oracle Data Miningは、統計的分析やOLAPなど、データベースの他の分析機能と簡単に統合できます。「Oracle Data MiningおよびOracle Databaseの分析機能」を参照してください。

  • オラクル・テクノロジの集積。オラクル社に集積されたテクノロジのあらゆる側面を利用して、ビジネス・インテリジェンスや科学調査といった、より大規模なフレームワーク内に、データ・マイニングを統合できます。

  • ドメイン環境。データ・マイニング・モデルは、適切なアプリケーション・ドメイン環境で作成、テスト、検証、管理および配置する必要があります。データ・マイニングの結果には、永続リポジトリまたはデータ・ウェアハウスへ格納する前に、ドメイン固有の計算(推定リスクや反応確率の計算など)の一部として後処理を必要とするものもあります。Oracle Data Miningを使用すると、マイニング・アクティビティの前処理および後処理をすべて同じ環境で実行できます。

  • アプリケーション・プログラム・インタフェース。Oracle Database内のOracle Data Mining機能には、PL/SQL APIおよびSQL言語の演算子を利用して直接アクセスできます。


    注意:

    Oracle Data Mining Java APIは、このリリースでは非推奨です。

    新しいアプリケーションでは、非推奨となった機能を使用しないことをお薦めします。推奨されない機能は、下位互換性を維持する目的のみでサポートされています。


Oracle Exadataでのデータ・マイニング

スコアリングとは、データ・マイニング・モデルをデータに適用して予測を生成するプロセスのことです。スコアリング・プロセスには、システム・リソースがかなり必要になることがあります。状況によっては、膨大な量のデータが関係するため、アルゴリズムの処理は非常に複雑になります。

Oracle Data Miningでは、処理が非常に高速でインテリジェントなOracle Exadata Storage Serverにスコアリングの負荷を移行できます。

Oracle Exadata Storage Serverは、オラクル社の高性能なストレージ・ソフトウェアとオラクル社の業界標準仕様のSunハードウェアを組み合せて、業界最高レベルのデータベース・ストレージ・パフォーマンスを実現します。Oracle Exadataの詳細は、次のURLでOracle Technology Networkを参照してください。

http://www.oracle.com/us/products/database/exadata/index.htm

データ・マイニング機能

Oracle Data Miningの使用にあたっては、データ・マイニングの機能およびアルゴリズムに関する基礎的な理解が必要です。この項では、データ・マイニングの機能の概念を紹介します。アルゴリズムについては、「データ・マイニングのアルゴリズム」の項で紹介します。

データ・マイニングの各機能は、モデル化や解決の対象となり得る問題の種類を表しています。データ・マイニング機能は、一般に監視あり監視なしの2つのカテゴリに分けられます。監視あり学習、監視なし学習という概念は、人工知能の1分野といわれる機械学習学に由来しています。

人工知能とは、自身の知能や動作を自主的に提示するシステムの実装や研究を指します。機械学習においては、デバイスが自身のパフォーマンスから学習して、自身の機能を変更できるようにする技術が扱われます。データ・マイニングでは機械学習の概念がデータに適用されます。


関連項目:

データ・マイニング機能の詳細は、第II部「マイニング機能」を参照してください。

監視ありデータ・マイニング

監視あり学習は、指示あり学習とも呼ばれます。この種の学習プロセスは、既知である従属属性またはターゲットからの指示を受けます。指示ありデータ・マイニングでは、ターゲットの動作を一連の独立属性や予測子の機能として説明するように試みられます。

監視あり学習は、通常、予測モデルに帰着します。パターン検出を目的とする監視なし学習とは、この点が異なります。

監視ありモデルでは、トレーニング作業(ソフトウェアがターゲット値がすでにわかっている多くのケースを分析するプロセス)が伴います。トレーニング・プロセスでは、モデルが予測を作成するロジックを「学習」します。たとえば、プロモーションに反応する可能性が高い顧客を識別するモデルの場合、過去にプロモーションに反応を示した、または反応を示さなかったことがわかっている多くの顧客の特徴を分析してトレーニングする必要があります。

監視あり学習: テスト

予測モデルの作成(トレーニング)とテストには、別々のデータセットが必要です。作成データ(トレーニング・データ)とテスト・データは同じ列構造である必要があります。通常は、1つの大規模な表またはビューを2つのデータセットに分割し、1つをモデルの作成用、もう1つをモデルのテスト用とします。

モデルをテスト・データに適用するプロセスは、選択した1つのサンプル上で作成されたモデルが、他のデータに一般化できるかどうかを決定するのに役立ちます特に、モデルのロジックが作成データと高い確率で一致するため、予測能力がわずかになってしまうオーバーフィットの現象を回避するのに役立ちます。

監視あり学習: スコアリング

適用データはスコアリング・データとも呼ばれ、モデルの適用対象となる実際の母集団のことを指します。例として、特定の製品を頻繁に購入する顧客の特性を識別するモデルを作成する場合について考えてみます。特定の店舗で買い物をする顧客のうち関連製品を購入する可能性がある顧客の一覧を取得するために、このモデルを当該店舗の顧客データに適用するとします。この場合、店舗の顧客データがスコアリング・データとなります。

監視あり学習のほとんどは、対象とする母集団に適用できます。スコアリングは、分類モデルおよび回帰モデルの目的であり、主要な監視ありマイニング手法です。

Oracle Data Miningでは、もう1つの監視あり機能である属性評価のスコアリング操作はサポートしていません。このタイプのモデルは、対象とする母集団に基づいて作成され、その母集団に関する情報を取得するため、別個のデータには適用できません。属性評価モデルでは、ターゲット値の予測において最も重要な属性が戻され、ランク付けされます。

監視なしデータ・マイニング

監視なし学習は、有向ではありません。従属属性と独立属性は区別されません。モデルを作成する際にアルゴリズムをガイドするための既知の結果がありません。

監視なし学習は、記述目的で使用できます。また、予測の作成にも使用できます。

監視なし学習: スコアリング

監視なしデータ・マイニングはターゲットを指定しませんが、ほとんどの監視なし学習は対象とする母集団に適用できます。たとえば、クラスタリング・モデルは記述データ・マイニングの手法を使用しますが、クラスタの割当てに従ってケースを分類するために適用できます。異常検出は監視なしですが、通常は、あるデータ・ポイントが一連のケース内で典型的かどうかを予測するために使用されます。

Oracle Data Miningでは、クラスタリングおよび特徴 抽出(いずれも監視なしマイニング機能)のスコアリング操作をサポートしています。もう1つの監視なし機能である相関ルールスコアリング操作はサポートしていません。相関モデルは、特定の母集団に関する情報を取得するためにその母集団に基づいて作成されるため、別個のデータには適用できません。相関モデルでは、項目またはイベントが互いにどのように関連付けられるのかを説明するルールが戻されます。相関ルールは統計とともに戻され、この統計を使用して確率に従ってランク付けされます。

Oracle Data Miningの機能

Oracle Data Miningでは、表2-1に示す監視ありデータ・マイニング機能がサポートされます。

表2-1 Oracle Data Miningの監視あり機能

機能 説明 サンプル・プログラム

属性評価

ターゲット属性の予測において最も重要な属性を識別する。

提携カード・プログラムに対する顧客の反応を指定し、最も重要な予測子を検出する。

分類

個々のクラスに項目を割り当て、ある項目が属するクラスを予測する。

1群の顧客に関する人口統計データを指定し、提携カード・プログラムに対する顧客の反応を予測する。

回帰

連続する値を近似および予測する。

1群の顧客に関する人口統計データおよび購入データを指定し、顧客の年齢を予測する。


Oracle Data Miningでは、表2-2に示す監視なし機能がサポートされます。

表2-2 Oracle Data Miningの監視なし機能

機能 説明 サンプル・プログラム

異常検出(1クラス分類によって実装される)

「通常の」データの特徴に合致しない項目(外れ値)を識別する。

1群の顧客に関する人口統計データを指定し、顧客の基準から大きく外れる購買行動を識別する。

相関ルール

データ内で同時発生する傾向にある項目を検出し、その同時発生の原則となるルールを特定する。

一緒に購入される傾向にある項目群を検出し、その関係性を特定する。

クラスタリング

データ内で自然なグループを検出する。

人口統計データを複数のクラスタに分割し、ある個人が特定のクラスタに属する確率をランク付けする。

特徴抽出

元の属性の一次結合を使用して、新しい属性(特徴)を作成する。

1群の顧客に関する人口統計データを指定し、顧客の一般的な特徴別に属性をグループ分けする。



関連項目:

Oracle Data Miningでサポートされているマイニング機能の詳細は、第II部を参照してください。

データ・マイニングのアルゴリズム

アルゴリズムとは、特定の種類の問題を解決するための数学的手続きです。Oracle Data Miningでは、各データ・マイニング機能について少なくとも1つのアルゴリズムがサポートされています。一部の機能では、複数のアルゴリズムから選択することも可能です。たとえば、分類については4種類のアルゴリズムがサポートされています。

各データ・マイニング・モデルは、特定のアルゴリズムから生成されます。データ・マイニングの問題には、複数のアルゴリズムを使用すると最も適切に解決できるものもあります。この場合、複数のモデルの開発が必要になります。たとえば、初めに特徴抽出モデルを使用して1組の最適化された予測子を作成し、続いて分類モデルを使用してその結果に対する予測を作成するといった方法があります。


注意:

それぞれのアルゴリズムの内部的な仕組みを理解しなくても、正しくデータ・マイニングを行うことができます。ただし、アルゴリズムの一般的な特徴と、様々なアプリケーションに対する適合性を理解することは重要です。

Oracle Data Miningの監視ありアルゴリズム

Oracle Data Miningでは、表2-3に示す監視ありデータ・マイニング・アルゴリズムがサポートされます。次に示すアルゴリズムの略称は、このマニュアル全体で使用されます。

表2-3 Oracle Data Miningの監視あり機能用アルゴリズム

アルゴリズム 機能 説明

ディシジョン・ツリー(DT)

分類

ディシジョン・ツリーを使用すると、人間が理解可能なルールの形式で予測情報を抽出できる。このルールはif-then-else式で、予測を導く決定を示す。

一般化線形モデル(GLM)

分類および回帰

GLMでは、2項ターゲットの分類用にロジスティック回帰が、連続的ターゲット用に線形回帰が実装される。GLM分類では予測確率の信頼限界がサポートされる。GLM回帰では予測の信頼限界がサポートされる。

最小記述長(MDL)

属性評価

MDLは情報理論モデルの選択原理の1つである。MDLでは、最も単純でコンパクトな表現が、データの説明として最適かつ最も可能性が高いとみなされる。

Naive Bayes(NB)

分類

Naive Bayesは、基底の根拠から予測の確率を導き出すBayesの定理を使用して、データで観測された根拠から予測を行う。

サポート・ベクター・マシン(SVM)

分類および回帰

SVMの個々のバージョンで様々なカーネル関数を使用して、種々のデータセットを処理する。線形カーネルおよびガウス(非線形)カーネルがサポートされている。

SVM分類では、可能性のある最大マージンでのターゲット・クラスの分類が試行される。

SVM回帰では、データ・ポイントの最大数がイプシロン幅のチューブ内に収まるような連続関数の検出が試行される。


Oracle Data Miningの監視なしアルゴリズム

Oracle Data Miningでは、表2-4に示す監視なしデータ・マイニング・アルゴリズムがサポートされます。次に示すアルゴリズムの略称は、このマニュアル全体で使用されます。

表2-4 Oracle Data Miningの監視なし機能用アルゴリズム

アルゴリズム 機能 説明

Apriori(AP)

相関

Aprioriは、あるセット内で同時発生する項目(高頻度項目セット)を検出することにより、マーケット・バスケット分析を行う。Aprioriでは、指定した最小限のサポートよりも高度なサポート、および指定した最小限の信頼度よりも高度な信頼度を備えたルールが検出される。

k-Means(KM)

クラスタリング

k-meansは、データを事前に指定されたクラスタ数に分割する、距離ベースのクラスタリング・アルゴリズムです。各クラスタには重心があります(中心は、重心とも呼ばれます)。クラスタ内のケース(母集団内の個人)は重心に近いところにあります。

Oracle Data Miningでは、k-Meansの拡張バージョンがサポートされる。拡張バージョンは従来の実装よりも高度で、クラスタの階層形式の親子関係が定義される。

Non-Negative Matrix Factorization(NMF)

特徴抽出

NMFは、元の属性の一次結合を使用して新しい属性を生成する。一次結合の係数は非負数。モデル適用の際、NMFモデルでは、モデルによって発見された属性(特徴)の新しいセットに元のデータがマップされる。

1クラス・サポート・ベクター・マシン(1クラスSVM)

異常検出

1クラスSVMは1クラスのプロファイルを作成して、そのプロファイルからなんらかの形で外れるケースを適用時に指摘する。これにより、必ずしも相互には関連していない頻度の低いケースの検出が可能になる。

直交パーティショニング・クラスタリング(O-ClusterまたはOC)

クラスタリング

O-Clusterは、階層形式かつグリッドベースのクラスタリング・モデルを作成する。このアルゴリズムでは、属性空間内の密度の高い領域を定義するクラスタが作成される。基準となる密度レベルはsensitivityパラメータで定義される。



関連項目:

Oracle Data Miningでサポートされているアルゴリズムの詳細は、第III部を参照してください。

データ準備

マイニング用のデータは単一の表またはビュー内に存在している必要があります。各ケース(レコード)の情報は、別個の行に格納されていなければなりません。

Oracle Data Mining独自の機能として、ネストした表の変換を介して、ディメンション化されたデータ(スター・スキーマなど)をサポートする点があげられます。また、Oracle Data Miningでは非構造化データをマイニングできます。


関連項目:

データ・マイニング用の表またはビューの作成方法は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

非構造化データのマイニングの詳細は、第20章「テキスト・マイニング」を参照してください。


適切なデータ準備は、どのようなデータ・マイニング・プロジェクトにおいても重要な要素です。データは、適切に整備して非一貫性を排除し、マイニング・アプリケーションのニーズを満たす必要があります。さらに、大部分のアルゴリズムではビニングや正規化など、なんらかの形式のデータ変換が必要とされます。

データ・マイニングの開発プロセスでは、複数のデータセットが必要となる場合があります。モデルの作成(トレーニング)に必要なデータセットの他に、スコアリング用として別のデータセットを使用することもあります。分類モデルの場合はテスト・データセットも必要です。これらのデータセットはそれぞれ、すべて同じ方法で準備する必要があります。

自動データ準備

Oracle Data Miningでは自動のデータ変換および組込みのデータ変換がサポートされており、これらの機能によって、データ・マイニング・モデルの開発に必要な時間や負担が大幅に軽減できます。自動データ準備(ADP)モードでは、モデル自体がアルゴリズムの要件に従って作成データを変換します。変換の指示はそのモデルに組み込まれており、モデルが適用されるたびに再利用されます。

Oracle Data Miningで自動的に実行される変換にユーザー独自の変換を追加することもできます。独自の変換は自動変換指示とともに組み込まれ、モデルが適用されるたびに自動変換とともに再利用されます。この場合、独自の変換を指定するのは作成データに対しての1回のみです。モデル自体が適用される際にデータを適切に変換します。

マイニング・モデルは自身のデータを準備するための指示を格納しているため、スーパーモデルとも呼ばれます。

モデルの透明性

Oracle Data Miningでは、高度なモデルの透明性が確保されています。すべてのモデルで、問合せを実行してトレーニング・データでのアルゴリズムの影響を観測できるモデルの詳細のセットがサポートされています。また、一部のアルゴリズムでは、モデルで使用されるロジックを表すルールが生成されます。クラスタリング・アルゴリズム、ディシジョン・ツリーおよび相関ルールは、すべてルールを生成します。

モデルによって内部で使用されるデータは、多くの場合、モデルの作成に使用されているデータに見えません。これは、アルゴリズムの処理の前に、モデルによってほとんどのデータが変換されるためです。モデルの詳細で、これらを逆変換し、ユーザーが理解できるようにトレーニング・データを表示します。同様に、監視ありモデルのターゲットに適用されたすべての変換が、結果がユーザーに戻される前に逆変換されます。


関連項目:

モデルの詳細で戻される情報の概要は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

O-Cluster、k-Means、ディシジョン・ツリーおよびAprioriについての章は、第III部, 「アルゴリズム」を参照してください。


Oracle Data Miningの使用方法

Oracle Data Miningでは、PL/SQL、SQLおよびRのプログラム・インタフェースがサポートされています。


注意:

Oracle Data Mining Java APIは、このリリースでは非推奨です。

PMML準拠の一部のモデルは、スコアリング用としてOracle Databaseにインポートできます。

Oracle Data Minerのグラフィカル・ユーザー・インタフェースを使用すると、Oracle Data Miningのデータベース内のすべての機能にアクセスできます。Spreadsheet Add-Inを使用すると、Oracle Data Miningで動作する予測分析にアクセスできます。

Oracle Data Miner

Oracle Data Minerは、Oracle Data Miningのグラフィカル・ユーザー・インタフェースです。Oracle SQL Developer 3.0の拡張機能であるOracle Data Minerでは、ワークフロー・パラダイムを使用して、データ・マイニング・タスクが実行されます。

Oracle Data Minerを使用して、データの調査、複数のマイニング・モデルの作成および評価、または新しいデータへのモデルの適用を行うことができます。ワークフローを作成して、様々なマイニング・タスクを実行するための方法を捕捉およびドキュメント化できます。ワークフローは、保存して共有できます。


関連項目:

『Oracle Data Mining管理者ガイド』


注意:

『Oracle Data Miner 11g リリース 2 (11.2.0.3)』は、次のURLからダウンロードできます。

http://www.oracle.com/technetwork/database/options/odm/dataminerworkflow-168677.html

以前のリリースのOracle Data Minerの開発は終了していますが、Oracle Technology Networkからダウンロード可能です。以前のリリースは、次のURLからダウンロードできます。

http://www.oracle.com/technetwork/database/options/advanced-analytics/odm/downloads/index.html


PL/SQLパッケージ

Oracle Data MiningのPL/SQL APIは、次のPL/SQLパッケージに実装されています。

  • DBMS_DATA_MINING- データ・マイニング・モデルの作成、テストおよび適用のためのルーチンが含まれます。

  • DBMS_DATA_MINING_TRANSFORM — モデルを作成または適用する前にデータセットを変換するルーチンが含まれます。これらのルーチン、ルーチンの適応、または他のSQLベースのメソッドを使用して、変換を実装できます。

    ユーザー定義の変換は、必要でない可能性がある点に注意してください。ADPを使用する場合、Oracle Data Miningは、特定のアルゴリズムで必要とされるほとんどの変換を自動的に実行できます。

  • DBMS_PREDICTIVE_ANALYTICS — PREDICT, EXPLAIN、およびPROFILE操作に対して、自動化されたデータ・マイニング・ルーチンが含まれます。

次に、my_modelと呼ばれるSVM分類モデルを作成するPL/SQLルーチンの例を示します。アルゴリズムは、my_settingsと呼ばれる表の設定に指定されています。SVMではなく、Naive Bayesがデフォルトの分類子であるため、アルゴリズムを設定として指定する必要があります。

CREATE TABLE my_settings(
  setting_name  VARCHAR2(30),
  setting_value VARCHAR2(4000));

BEGIN
    INSERT INTO my_settings VALUES
        (dbms_data_mining.algo_name, 
         dbms_data_mining.algo_support_vector_machines);
    COMMIT;
END;
/

BEGIN
  DBMS_DATA_MINING.CREATE_MODEL(
    model_name          => 'my_model',
    mining_function     => dbms_data_mining.classification,
    data_table_name     => 'mining_data_build',
    case_id_column_name => 'cust_id',
    target_column_name  => 'affinity_card',
    settings_table_name => 'my_settings');
END;
/

関連項目:

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』

SQLスコアリング関数

SQL言語の演算子ファミリでは、データ・マイニング・モデルのデプロイメントがサポートされます。これらの演算子を使用すると、スコアリングをSQL問合せおよびSQLベースのアプリケーションに簡単に組み込むことができます。

次の例では、データ・マイニングのPREDICTION_PROBABILITY演算子を使用しています。この演算子は、分類モデルnb_sh_clas_sampleをデータセットmining_data_apply_vに適用します。

SELECT cust_id, prob
  FROM (SELECT cust_id,
          PREDICTION_PROBABILITY (nb_sh_clas_sample, 1 USING *) prob
          FROM  mining_data_apply_v
          WHERE cust_id < 100011)
  ORDER BY cust_id;

このSELECT文からは10人分の顧客情報が戻されます。顧客情報は顧客ID順に一覧表示され、各顧客がある提携カードを受け入れる(1)可能性が併記されます。

   CUST_ID       PROB
---------- ----------
    100001 .025622714
    100002 .090424232
    100003 .028064789
    100004 .048458859
    100005 .989335775
    100006 .000151844
    100007  .05749942
    100008 .108750373
    100009 .538512886
    100010 .186426058

関連項目:

『Oracle Database SQL言語リファレンス』

R-ODM

Oracle Data Mining (R-ODM)のRインタフェースを使用すると、Rプログラミング環境からOracle Data Miningにアクセスできます。R-ODMは、ソースR言語で記述される関数ラッパーのセットで構成されています。これらの関数によって、ODBC接続を介して、データおよびパラメータがR環境からOracle Databaseにパスされます。

R-ODMインタフェースは、完全にOracle Databaseの外部にあります。Oracle製品のコードは、使用および公開されません。R-ODMは、標準のRソース・パッケージとしてパッケージ化されていて、Comprehensive R Archive Network (CRAN)の一部として無償で配布されています。


関連項目:

R-ODMの詳細は、http://www.oracle.com/technetwork/database/options/odm/odm-r-integration-089013.htmlを参照してください。

R環境、RパッケージおよびCRANの詳細は、http://www.r-project.orgを参照してください。


PMMLのインポート

PL/SQL APIを使用して、予測モデル・マークアップ言語(PMML)で表されたGLMモデルを、Oracle databaseにインポートできます。この機能は、Oracle Database 11gリリース2 (11.2.0.2) Data Mining以上で使用可能です。

PMMLは、Data Mining Group(http://www.dmg.org)によって策定されたXMLベースの規格です。PMMLに準拠しているアプリケーションは、任意のベンダーによって作成されたPMML準拠のモデルを配置できます。Oracle Data Miningでは、回帰モデルに対応するPMML 3.1のコア機能をサポートしています。


関連項目:

データ・マイニング・モデルのエクスポートおよびインポートについては、『Oracle Data Mining管理者ガイド』を参照してください。

PMMLの詳細は、http://www.dmg.org/faq.htmlを参照してください。


Oracle Spreadsheet Add-In for Predictive Analytics

予測分析では、PREDICTEXPLAINおよびPROFILEのルーチンを使用して、データ・マイニング・プロセスが自動化されます。Oracle Spreadsheet Add-In for Predictive Analyticsでは、Microsoft Excel用の次のルーチンを実装しています。Spreadsheet Add-Inを使用して、ExcelデータまたはOracleデータベースに存在するデータを分析できます。

このSpreadsheet Add-Inとreadmeファイルは、Oracle Technology Networkにある次のページからダウンロードできます。

http://www.oracle.com/technetwork/database/options/odm/index.html

Java API

Oracle Data MiningのJava APIは、データ・マイニング用のJDM標準Java API(JSR-73)のOracle実装です。このJava APIはPL/SQL API上に用意され、2つのAPI間には完全な相互運用性があります。


注意:

Oracle Data Mining Java APIは、このリリースでは非推奨です。

新しいアプリケーションでは、非推奨となった機能を使用しないことをお薦めします。推奨されない機能は、下位互換性を維持する目的のみでサポートされています。


次に示すコードの抜粋では、顧客の提携カードに対する反応パターンをモデル化し、新しい顧客の提携カードに対する反応を予測するためにこのモデルを適用するディシジョン・ツリー・モデルを作成します。

//Step-1: Create connection to a database with the Data Mining option
 OraConnectionFactory m_dmeConnFactory = new OraConnectionFactory();
 ConnectionSpec connSpec = m_dmeConnFactory.getConnectionSpec();
 connSpec.setURI("jdbc:oracle:thin:@<hostName>:<port>:<sid>");
 connSpec.setName("<user name>");
 connSpec.setPassword("password");
 m_dmeConn = m_dmeConnFactory.getConnection(connSpec);
 
//Step-2: Create object factories
 PhysicalDataSetFactory m_pdsFactory =
   (PhysicalDataSetFactory)m_dmeConn.getFactory(
      "javax.datamining.data.PhysicalDataSet");
 PhysicalAttributeFactory m_paFactory =
   (PhysicalAttributeFactory)m_dmeConn.getFactory(
      "javax.datamining.data.PhysicalAttribute");
 TreeSettingsFactory m_treeFactory =
   (TreeSettingsFactory)m_dmeConn.getFactory(
      "javax.datamining.algorithm.tree.TreeSettings");
 ClassificationSettingsFactory m_clasFactory =
   (ClassificationSettingsFactory)m_dmeConn.getFactory(
      "javax.datamining.supervised.classification.ClassificationSettings");
BuildTaskFactory m_buildFactory =
   (BuildTaskFactory)m_dmeConn.getFactory(
      "javax.datamining.task.BuildTask");
ClassificationApplySettingsFactory m_applySettingsFactory =
   (ClassificationApplySettingsFactory)m_dmeConn.getFactory(
     "javax.datamining.supervised.classification.ClassificationApplySettings");
DataSetApplyTaskFactory m_dsApplyFactory =
   (DataSetApplyTaskFactory)m_dmeConn.getFactory(
      "javax.datamining.task.apply.DataSetApplyTask");
ClassificationApplySettingsFactory m_applySettingsFactory =
   (ClassificationApplySettingsFactory)m_dmeConn.getFactory(
     "javax.datamining.supervised.classification.ClassificationApplySettings");
 
//Step-3: Create and save model build task input objects 
//        (training data, build settings)
    //Create & save model input data specification (PhysicalDataSet)
    PhysicalDataSet buildData =
      m_pdsFactory.create("MINING_DATA_BUILD_V", false);
    PhysicalAttribute pa =
      m_paFactory.create("CUST_ID", AttributeDataType.integerType,
                         PhysicalAttributeRole.caseId);
    buildData.addAttribute(pa);
    m_dmeConn.saveObject("treeBuildData_jdm", buildData, true);
    //Create & save Mining Function Settings
    ClassificationSettings buildSettings = m_clasFactory.create();
    TreeSettings treeAlgo = m_treeFactory.create();
    buildSettings.setAlgorithmSettings(treeAlgo);
    buildSettings.setTargetAttributeName("AFFINITY_CARD");
    m_dmeConn.saveObject("treeBuildSettings_jdm", buildSettings, true);

//Step-4: Create and save model build task
 BuildTask buildTask =
    m_buildFactory.create("treeBuildData_jdm", "treeBuildSettings_jdm",
                            "treeModel_jdm");
 m_dmeConn.saveObject("treeBuildTask_jdm", buildTask, true);
 
//Step-5: Create and save model apply task input objects (apply settings)
  //Create & save PhysicalDataSpecification
    PhysicalDataSet applyData =
      m_pdsFactory.create("MINING_DATA_APPLY_V", false);
    PhysicalAttribute pa =
      m_paFactory.create("CUST_ID", AttributeDataType.integerType,
                         PhysicalAttributeRole.caseId);
    applyData.addAttribute(pa);
    m_dmeConn.saveObject("treeApplyData_jdm", applyData, true);
    //Create & save ClassificationApplySettings
    ClassificationApplySettings clasAS = m_applySettingsFactory.create();

//Step-6: Create and save model apply task with build task as dependent
    DataSetApplyTask applyTask =
      m_dsApplyFactory.create("treeApplyData_jdm", "treeModel_jdm",
                              "treeApplySettings_jdm",
                              "TREE_APPLY_OUTPUT_JDM");
    ((OraTask)applyTask).addDependency("treeBuildTask_jdm");
    m_dmeConn.saveObject("treeApplyTask_jdm", applyTask, true);

//Step-7: Execute build task which executes build task and then after 
//        successful completion triggers the execution of its dependent 
//        task(s). In this example, there is only one dependent task.
m_dmeConn.execute("treeBuildTask_jdm");

関連項目:

『Oracle Data Miningアプリケーション開発者ガイド』

Oracle Data Miningに関する情報源

Oracle Data Miningのドキュメントは、Oracle Databaseドキュメント・ライブラリに含まれています。

参考までに、Oracle Data Miningおよび関連するOracle Databaseのマニュアルの一覧を表2-5に示します。

表2-5 Oracle Data Miningのドキュメント

ドキュメント 説明

『Oracle Data Mining概要』


このマニュアル。Oracle Data Miningでサポートされる、マイニング機能、アルゴリズム、データ準備、予測分析およびその他の特別な機能の概要。

『Oracle Data Miningアプリケーション開発者ガイド』


Oracle Data Miningのプログラム・インタフェースの使用方法。

『Oracle Data Mining管理者ガイド』


データ・マイニング用のデータベースのインストール方法と管理方法。デモ・プログラムのインストールおよび使用方法。

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』


データ・マイニングのPL/SQL API構文の使用方法。

『Oracle Database SQL言語リファレンス』


データ・マイニングSQL関数構文の使用方法。

『Oracle Databaseリファレンス』


マイニング・モデル、マイニング・モデルの属性およびマイニング・モデルの設定に関する情報を取得するためのデータ・ディクショナリ・ビューの問合せ方法。



関連項目:

Oracle Databaseドキュメント・ライブラリはhttp://www.oracle.com/pls/db112/homepageで公開されています。

Oracle Technology Network上のOracle Data Miningリソース

Oracle Technology Network(OTN)は簡単にアクセス可能で、有用な情報が提供されているサイトです。Oracle Data Miningのホーム・ページには、次のURLでアクセスできます。

http://www.oracle.com/technetwork/database/options/odm/index.html

このサイトには、ダウンロード用のツールおよび教材の他、ニュースやディスカッション・フォーラムも用意されています。このサイトでは次の内容を参照できます。

  • Oracle Data Miner (ダウンロード)

  • Oracle Spreadsheet Add-In for Predictive Analytics (ダウンロード)

  • サンプル・コード (ダウンロード)

  • R-ODM情報

  • ホワイト・ペーパーとウェブ・キャスト

  • Oracle Data Miningのディスカッション・フォーラム

  • Oracle Databaseのデータ・マイニングと分析

Oracle Data MiningおよびOracle Databaseの分析機能

「データベース・カーネル内でのデータ・マイニング」で説明したように、データベース内部での分析には多大な利点があります。データが格納されている場所に分析機能を実装すると、データを分析のために外部のサーバーにエクスポートする必要がありません。分析の結果もインポートする必要がなく、データベース内に存在するので、アクセス、更新および他のデータとの組合せも簡単です。

データ・マイニングや予測分析の他にも、Oracle Databaseでは幅広い分析機能がサポートされています。そうした機能はそれぞれが共通サーバーの一部であるため、効率的に組み合せることができます。分析処理の結果は、Oracle Business Intelligence Suite Enterprise EditionなどのBIツールやアプリケーションに統合できます。これらを総合すると、こうした機能により、Oracle Databaseは分析用アプリケーションを開発するための強力なプラットフォームになっているといえます。

様々な分析は、ほとんど制限なく組み合せることができます。例2-1に、単一のSQL問合せ内におけるデータ・マイニングおよびテキストの処理を示します。この問合せでは、自然減する傾向が強く(確率が80%を超える)、有望な顧客であり(顧客価値率が90%を超える)、かつChecking Plusアカウントに関して最近カスタマ・サービスに問合せのあった顧客がすべて選択されます。自然減の傾向に関する情報は、tree_modelというデータ・マイニング・モデルを使用して計算されます。Checking Plusアカウントに関するコール・センターのメモを検索するために、Oracle TextのCONTAINS演算子が使用されています。

例2-1 単一SQL問合せにおけるOracle Data MiningとOracle Textの組合せ

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);

Oracle Databaseでサポートされる分析の一部を表2-6で説明します。「ドキュメント」列のリンクを使用して関連するドキュメントを検索できます。

表2-6 Oracle Databaseの分析の概要

分析機能 説明 ドキュメント

データ・マイニング

Oracle Data Miningは、大規模なデータを取捨選択し、隠された情報を検出する複雑なアルゴリズムを実装している。データ・マイニング・モデルは、パターンを発見し、推定される結果を予測し、主要な予測子を識別し、その他の価値の高い情報を検出する。

『Oracle Data Mining概要』(このマニュアル)

複合データの変換

データ変換は、分析用アプリケーションやETL(抽出、変換およびロード)の重要な側面である。データ変換の実装には、SQL式またはDBMS_DATA_MINING_TRANSFORMパッケージを使用できる。

DBMS_DATA_MINING_TRANSFORMは柔軟性のあるデータ変換用パッケージで、ビニングや正規化の機能に加え、様々な欠損値や外れ値の処理が含まれる。

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』


統計関数

Oracle Databaseでは多数のSQL統計関数が提供され、仮説検定(t検定、F検定など)、相関関数(ピアソン相関など)、クロスタブ統計および記述統計(中央値、最頻値など)がサポートされる。DBMS_STAT_FUNCSパッケージにより、分布適用プロシージャや、ある列に対する記述統計を戻すサマリー・プロシージャが追加されている。

『Oracle Database SQL言語リファレンス』および『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』

ウィンドウ関数と分析SQL関数

Oracle Databaseでは、累積集計、移動集計および集中集計を計算するためのウィンドウ関数および分析関数がサポートされる。集計ウィンドウ関数を使用すると、移動および累積バージョンのSUMAVERAGECOUNTMAXMINなど多数の関数を計算できる。

『Oracle Databaseデータ・ウェアハウス・ガイド』


高頻度項目セット

DBMS_FREQUENT_ITEMSETでは、高頻度項目セット・カウント(複数のイベントが同時に発生する頻度をカウントするメカニズム)がサポートされています。DBMS_FREQUENT_ITEMSETが、Oracle Data Miningで使用する相関ルール・アルゴリズムのビルディング・ブロックとして使用されます。

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』


線形代数

UTL_NLAパッケージでは、VARRAYで表されるベクターや行列に対する操作用に、一般的なBLASおよびLAPACKライブラリ(バージョン3.0)のサブセットが公開される。このパッケージには、一次方程式のシステムを解決するプロシージャ、行列を反転するプロシージャ、および固有値と固有ベクターを計算するプロシージャが含まれる。

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』


OLAP

Oracle OLAPは多次元分析をサポートし、多次元問合せのパフォーマンスを向上するために使用できる。これまでは特殊なOLAPデータベースのみに存在した機能も提供されている。Oracle OLAPでは、ドリルダウンやロールアップにとどまらず、時系列分析、モデリングおよび予測の機能もサポートされる。

『Oracle OLAPユーザーズ・ガイド』


空間分析

Oracle Spatialでは、ハイエンドGISおよびLBSソリューションをサポートする高度な空間機能が提供される。Oracle Spatialの分析およびマイニング機能には、ビニング、地域パターンの検出、空間相関、関連マイニング、および空間クラスタリングなどの機能がある。

また、Oracle Spatialでは、トポロジおよびネットワーク・データのモデルと分析もサポートされる。Oracle Spatialのトポロジ・データ・モデルを使用すると、トポロジ内のノード、エッジおよびフェイスに関するデータと連携できる。最短経路、最小コストの全域木、隣接分析、巡回セールスマン問題の計算など様々なネットワーク分析機能が含まれる。

『Oracle Spatial開発者ガイド』


テキスト・マイニング

Oracle Textでは、Oracleデータベース、ファイルおよびWeb上に格納されているテキストおよびドキュメントの索引付け、検索および分析のために標準SQLが使用される。また、一群のドキュメントの自動分類およびクラスタリングもサポートされる。こうした分析機能の多くは、ODM機能の最上位に用意されている。

『Oracle Textアプリケーション開発者ガイド』