ヘッダーをスキップ
Oracle Data Miningアプリケーション開発者ガイド
11g リリース1(11.1)
E05706-02
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

2 データ・マイニングAPIの概要

この章では、Oracle Data Miningで使用するPL/SQL、SQLおよびJavaインタフェースの概要を説明します。

この章は、次の項で構成されています。

データ・マイニングPL/SQLパッケージ

Oracle Data MiningのPL/SQLインタフェースは、次の3つのパッケージで実装されています。

DBMS_DATA_MINING

DBMS_DATA_MININGパッケージには、次の操作を実行するためのプロシージャが含まれています。

  • マイニング・モデルの作成、削除および名前の変更

  • 新しいデータへのモデルの適用

  • モデルの詳細の記述

  • 分類モデルのコストの作成とテスト・メトリックの計算

  • モデルのエクスポートおよびインポート

CREATE_MODEL

マイニング・モデルの作成は、CREATE_MODELプロシージャで行います。モデル内部で使用される属性、変換、ルールなどの情報は、GET_MODEL_DETAILSファンクションによって戻されます。マイニング・モデルに関する情報は、データ・ディクショナリ・ビューに問合せを発行して取得することもできます。詳細は、「データ・マイニングのデータ・ディクショナリ・ビュー」を参照してください。

APPLY

APPLY プロシージャは、特定の列を持つ表を作成し、その列にマイニング結果を格納します。この表の列は、使用するマイニング機能やアルゴリズムによって異なります。


注意:

現在は、Oracle Database 10.2で導入されたデータ・マイニングSQL関数が、データ・マイニング・モデルを適用する際に通常優先される方法です。「データ・マイニングSQL関数」を参照してください。

DBMS_DATA_MINING_TRANSFORM

このパッケージには、マイニングに適した形式にデータを変換するためのルーチンが含まれています。Oracle Data Miningでは自動データ変換(ADP)がサポートされているため、特殊な変換を実行する必要がないかぎり、このパッケージを使用する必要はありません。

独自に指定した変換を追加し、ADPによって生成された変換を補うことができます。または、ADPを使用せずに、手動でデータを変換することもできます。

DBMS_DATA_MINING_TRANSFORMのルーチンは、独自の変換を作成する場合に役立ちます。これらのルーチンが十分でない場合、SQLを記述して出力を変更したり、独自のルーチンを記述したりできます。

モデルの変換を指定するには、変換リストをDBMS_DATA_MINING.CREATE_MODELプロシージャに渡します。変換リストを作成する場合は、DBMS_DATA_MINING_TRANSFORMパッケージのSTACKプロシージャを使用できます。

Oracle Data Miningは、自動変換およびユーザーがCREATE_MODELに指定した変換をモデルに組み込みます。組み込まれた変換は、モデルの適用時に自動的にデータに適用されます。テスト・データやスコアリング・データを個々に変換する必要はありません。


関連項目:

  • 『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_DATA_MINING_TRANSFORMに関する項

  • 自動データ変換および組込みデータ変換については、『Oracle Data Mining概要』を参照してください。


DBMS_PREDICTIVE_ANALYTICS

このパッケージには、データ・マイニングの自動化された形式である予測分析を実行するためのルーチンが含まれています。予測分析を使用する場合、モデルの作成やスコアリングを意識する必要はありません。すべてのマイニング操作は、予測分析プロシージャによって内部的に処理されます。

予測分析のルーチンでは、データの準備、モデルの作成、モデルのスコアリングが行われ、モデルのスコアリングの結果が戻されます。このルーチンでは、終了前にモデルおよびサポート・オブジェクトが削除されます。

Oracleの予測分析では、次のルーチンがサポートされています。

  • EXPLAIN: ターゲット列の説明における各属性の影響度をランク付けします。

  • PREDICT: 入力データの値に基づいてターゲット列の値を予測します。

  • PROFILE: 入力データからケースを説明するルールを生成します。


    関連項目:

    『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』のDBMS_PREDICTIVE_ANALYTICSに関する項

データ・マイニングのデータ・ディクショナリ・ビュー

マイニング・モデルに関する情報を、データ・ディクショナリから取得できます。Oracle Data Miningのデータ・ディクショナリ・ビューは、ALL_USER_およびDBA_を使用してアクセスできます。

データ・マイニングのデータ・ディクショナリ・ビューには次の種類があります。

データ・マイニングSQL関数

データ・マイニング用の組込みSQL関数は、データベースですでに作成されているモデルのスコアリング操作を実装します。組込みSQL関数には、次のメリットがあります。


注意:

SQL関数はOracle Databaseに組み込まれ、SQL文の中で使用できます。SQL関数と、PL/SQLのパッケージで定義されているファンクションを混同しないでください。

分類モデルと回帰モデルを特定行のスコアリング・データに適用すると、ターゲットの最適な予測値とその値が生じる確率が示されます。予測用のSQL関数については、表2-1で説明します。

表2-1 予測用のSQL関数

関数 説明

PREDICTION

ターゲットの最適な予測を戻す。

PREDICTION_BOUNDS

(GLMのみ)値(線形回帰)または確率(ロジスティック回帰)が収まる区間の上限と下限を戻す。

PREDICTION_COST

不正確な予測のコストの測度を戻す。

PREDICTION_DETAILS

ディシジョン・ツリー・モデルのルールを戻す。

PREDICTION_PROBABILITY

特定の予測の確率を戻す。

PREDICTION_SET

分類モデルの結果を戻す(各ケースについての予測および関連する確率を含む)。


スコアリング・データの特定の行にクラスタ・モデルを適用すると、クラスタIDおよびクラスタの該当行のメンバーシップの確率が戻されます。クラスタリング用のSQL関数については、表2-2で説明します。

表2-2 クラスタリング用のSQL関数

関数 説明

CLUSTER_ID

予測対象のクラスタのIDを戻す。

CLUSTER_PROBABILITY

特定のクラスタに属するケースの確率を戻す。

CLUSTER_SET

特定のケースが属している可能性のあるすべてのクラスタのリストと、ケースが含まれている確率を戻す。


特徴抽出モデルの適用では、スコアリング・データセットの列への特徴(属性セット)のマッピングが行われます。特徴抽出用のSQL関数については、表2-3で説明します。

表2-3 特徴抽出用のSQL関数

関数 説明

FEATURE_ID

最も高い係数値を持つ特徴のIDを戻す。

FEATURE_SET

考え得るすべての特徴が含まれているオブジェクトのリストとその係数を戻す。

FEATURE_VALUE

特定の特徴の値を戻す。


データ・マイニングJava API

Oracle Data Mining Java APIは、JDM標準(JSR-73)Java APIのOracleによる実装です。このAPIは、Oracle Data Miningの豊富なデータベース内機能を使用して開発されたthin APIです。

Oracle Data Mining Java APIは、Oracle固有の拡張機能を実装し、データベースで利用可能なすべてのデータ・マイニング機能を提供します。すべての拡張機能は、JDM標準の拡張フレームワークに準拠するように設計されています。データベースで使用可能なマイニング機能とアルゴリズムはすべて、Oracle Data Mining Java APIを通じて公開されます。

Oracle Database 10.2.0.1では、それまでのリリースで使用されていたOracle独自の従来のJava APIにかわり、JDM 1.0標準に準拠したAPIが導入されました。Database 10.2.0.2パッチセットのリリースでは、JDM 1.1に準拠したOracle Data Mining Java APIを実装することによって、このJDM標準のサポートをさらに拡張しています。

このリリースでは、Oracle Data Mining Java APIは引き続きJDM 1.1に準拠し、Oracleの拡張機能としてデータベース・サーバーに新しいデータ・マイニング機能を提供します。このリリースのOracleの新機能には、自動データ準備と組込みのデータ準備、一般化線形モデル、変換シーケンス、およびタスク依存指定などがあります。


関連項目:

Oracle Data Mining Java APIの新機能の概要は、『Oracle Data Mining概要』を参照してください。

JDM標準

JDMは、Java Community Process(JCP)で開発されたデータ・マイニング用の業界標準Java APIです。JDMでは、ベンダーが独自のデータ・マイニング・エンジン(DME)に実装できるJavaインタフェースが定義されています。JDMには、分類、回帰、クラスタリング、属性評価および相関などのマイニング機能をサポートするインタフェースに加え、Naïve Bayes、サポート・ベクター・マシン、ディシジョン・ツリー、フィード・フォーワード・ニューラル・ネットワークおよびk-Meansなどの特定のマイニング・アルゴリズムが含まれます。

表2-4に、JDM標準で定義されているJavaパッケージの概要を示します。詳細は、JDM標準とともに公開されているJavaドキュメント(http://www.jcp.org)を参照してください。「Go to JSR」ボックスに73を入力してください。

表2-4 JDM標準のJavaパッケージ

パッケージ 説明

javax.datamining

すべてのJDMサブパッケージをサポートするオブジェクトを定義。

javax.datamining.base

多数の最上位レベルのマイニング・オブジェクトをサポートするオブジェクトを定義。このパッケージは、循環的なパッケージの依存関係を回避するために導入されている。

javax.datamining.resource

データ・マイニング・エンジンへの接続とタスクの実行をサポートするオブジェクトを定義。

javax.datamining.data

論理データと物理データ、モデルのシグネチャ、分類、カテゴリ・セットおよび汎用スーパー・クラス・カテゴリ行列をサポートするオブジェクトを定義。

javax.datamining.statistics

属性の統計をサポートするオブジェクトを定義。

javax.datamining.rule

ルールとその述語要素をサポートするオブジェクトを定義。

javax.datamining.task

作成、統計の計算、インポートおよびエクスポートのタスクをサポートするオブジェクトを定義。taskパッケージにはオプションのapplyサブパッケージ(おもに、監視あり機能およびクラスタリング機能で使用)を指定可能。

javax.datamining.association

相関の構築設定およびモデルをサポートするオブジェクトを定義。

javax.datamining.clustering

クラスタリングの構築設定およびモデルをサポートするオブジェクトを定義。

javax.datamining.attributeimportance

属性評価の構築設定およびモデルをサポートするオブジェクトを定義。

javax.datamining.supervised

対応するオプションのパッケージを使用して、監視あり学習機能(特に分類および回帰)の構築設定およびモデルをサポートするオブジェクトを定義。このパッケージには、分類および回帰機能用の共通のテスト・タスクも含まれる。

javax.datamining.algorithm

アルゴリズム固有の設定をサポートするオブジェクトを定義。algorithmパッケージには、様々なアルゴリズムのサブパッケージを指定可能。

javax.datamining.modeldetail

様々なモデル表現の詳細をサポートするオブジェクトを定義。modeldetailパッケージには、様々なモデルの詳細のサブパッケージを指定可能。


JDMに対するOracleの拡張機能

Oracleの拡張機能は、JDM標準に含まれない機能をサポートするように定義されています。この項では、これらの拡張機能の概要を示します。


関連項目:

『Oracle Data Mining Java API Reference』(Javadoc)

Oracleの拡張機能には、次の主要な追加機能が含まれます。

  • Non-Negative Matrix Factorization(NMF)アルゴリズムでの特徴抽出機能

  • 回帰および分類機能用の一般化線形モデル・アルゴリズム

  • Oracle固有のクラスタリング・アルゴリズムである、直交パーティショニング・クラスタリング(O-Cluster)

  • Oracle固有の分類アルゴリズムである、Adaptive Bayes Network(ABN)(非推奨)

  • 自動データ変換と組込みデータ変換

  • 予測分析タスク

表2-5に、Oracleによって拡張された高水準のJavaパッケージの概要を示します。

表2-5 Oracleによって拡張された高水準のパッケージ

パッケージ 説明

oracle.dmt.jdm.featureextraction

特徴抽出機能に関連するオブジェクトを定義。特徴抽出では、スコアリング操作がサポートされる。

oracle.dmt.jdm.algorithm.nmf

Non-Negative Matrix Factorization(NMF)アルゴリズムに関連するオブジェクトを定義。

oracle.dmt.jdm.algorithm.glm

oracle.dmt.jdm.modeldetail.glm

一般化線形モデル(GLM)アルゴリズムに関連するオブジェクトを定義。

oracle.dmt.jdm.algorithm.ocluster

直交クラスタリング(O-Cluster)アルゴリズムに関連するオブジェクトを定義。

oracle.dmt.jdm.algorithm.abn

Adaptive Bayes Network(ABN)アルゴリズム(非推奨)に関連するオブジェクトを定義。

oracle.dmt.jdm.transform

変換に関連するオブジェクトを定義。


Oracle Data Mining Java APIの主要なオブジェクト

JDMの名前付きオブジェクトとは、Connectionのsaveメソッドを使用して保存できるオブジェクトのことです。すべての名前付きオブジェクトは、javax.datamining.MiningObjectインタフェースから継承されます。名前付きオブジェクトを恒久的に永続化するか(永続オブジェクト)、Connectionオブジェクトの存続期間のみ維持するか(一時オブジェクト)を選択できます。

表2-6に、Oracle Data MiningでサポートされるJDMの名前付きオブジェクトを示します。

表2-6 Oracle Data MiningでサポートされるJDMの名前付きオブジェクト

永続オブジェクト 一時オブジェクト サポートされないオブジェクト

Model

Apply Settings

Logical Data

Build Settings

Physical Dataset

Taxonomy

Task



Cost Matrix



Test Metrics



Transformation Sequence




Physical Dataset

Physical Datasetは、データ・マイニング操作の入力として使用されるデータを表します。PhysicalDataSetオブジェクトは、URIによって識別される特定のデータを参照します。Oracle Data Miningでは、同じデータベース内の表またはビューは、有効なPhysical DatasetのURIとしてサポートされます。Physical DatasetのURIの構文は次のとおりです。

データのURIの構文:

[schemaName.] tableName/viewName

PhysicalDataSetオブジェクトでは、複数のデータ表現がサポートされます。Oracle Data Miningは、単一レコード・ケースとワイドなデータの2種類のデータ表現をサポートしています。(詳細は、第3章を参照。)Oracle Data Miningの実装では、ユーザーがPhysical DatasetでケースID列を指定する必要があります。

Oracle Data Mining Java APIでは、PhysicalDataSetオブジェクトは一時オブジェクトです。このオブジェクトは、メモリー内オブジェクトとしてConnectionに格納されます。

Build Settings

BuildSettingsオブジェクトは、モデルの作成に使用される高水準の指定入力を記録します。APIでは、分類、回帰、属性評価、相関、クラスタリングおよび特徴抽出といったマイニング機能を指定します。

Build Settingsでは、ユーザーが特定のアルゴリズムを指定することなく目的の結果の種類を指定できます。Build Settingsオブジェクトでは、アルゴリズムとその設定を指定できますが、アルゴリズムを設定しない場合は、構築設定(および利用できる場合は当該データの特性)に基づき、DMEによってアルゴリズムが選択されます。

Build Settingsのパラメータの適合性は、verifyメソッドを使用して検証することもできます。

BuildSettingsオブジェクトは永続オブジェクトで、ユーザーの指定した名前を持つ表としてユーザー・スキーマに格納されます。この設定表は、PL/SQL APIと相互運用性があります。Build Settings表を手動で変更しないことをお薦めします。

Task

ConnectionオブジェクトのExecuteメソッドは、マイニング・タスクの実行を開始するために使用します。通常、マイニング操作は何百万ものレコードを持つ表を使用して行われるため、モデル作成などの操作には、長い時間がかかる場合があります。

JDMでは、データベース内でDBMS_SCHEDULERを使用したマイニング・タスクの非同期実行をサポートしています。各マイニング・タスクは、DBMS_SCHEDULER Jobオブジェクトとしてユーザー・スキーマに格納されます。ユーザーがTaskオブジェクトを保存すると、Jobオブジェクトが作成され、このオブジェクトがDISABLED状態に設定されます。ユーザーがタスクを実行すると、ジョブが実行を開始できるようになります。

非同期に実行されるタスクを監視するために、Executeメソッドはjavax.datamining.ExecutionHandleオブジェクトを戻します。このオブジェクトは、タスクの状態の詳細を取得するgetStatuswaitForCompletionなどのメソッドを提供します。

Model

Modelオブジェクトは、BuildSettingsオブジェクトで指定されているようにアルゴリズムをデータに適用した結果です。

Modelは、様々な操作で使用できます。次のような使用方法があります。

  • 検査(たとえば、ディシジョン・ツリーまたは相関から生成されたルールを調査)

  • 精度のテスト

  • スコアリングを目的としたデータへの適用

  • 固有形式やPMMLのような外部表現へのエクスポート

  • DMEで使用するためのインポート

Modelはデータに適用される場合、解釈のためにDMEに送られます。Modelオブジェクトは、ModelのBuildSettingsオブジェクトおよびModelを作成したTaskを参照します。

Test Metrics

TestMetricsオブジェクトは、テスト・データを使用した監視ありモデルのテスト結果です。様々なテスト・メトリックが、マイニング機能の種類に基づいて計算されます。分類モデルでは、精度、混同マトリックス、リフトおよび受信者操作特性が計算されてモデルへアクセスする場合があります。同様に回帰モデルでは、R-2乗およびRMSエラーが計算される場合があります。

Apply Settings

ApplySettingsオブジェクトを使用すると、ユーザーは適用タスクの結果を調整できます。このオブジェクトの内容は、順序付けられた項目のセットです。出力は、次の要素で構成される場合があります。

  • 入力データセットから出力に渡されるデータ(主要な属性)。

  • 適用それ自体から計算された値(スコア、確率、ディシジョン・ツリーの場合はルール識別子)。

  • 関連する確率の多クラス・カテゴリ。たとえば、ターゲットfavoriteColorの分類モデルでは、ユーザーは特定の色をいくつか選択して、ある1色が好みである確率を取得できます。

各マイニング機能クラスでは、デフォルトのApply Settingsオブジェクトが作成されるメソッドが定義されています。これにより、標準の出力しか必要ない場合にプログラマの作業が簡素化されます。たとえば、分類適用の典型的な出力には最高の予測とその確率が含まれます。

Transformation Sequence

TransformationSequenceオブジェクトは、マイニング操作の一部として実行される変換のシーケンスを表します。たとえば、サポート・ベクター・マシン・モデルの作成には、外れ値の処理および正規化変換が伴います。他にも、新しい導出属性の作成やビジネス上の変換などが必要になる場合があります。一般的に、これらの変換は他のモデルを作成する際に再利用されるため、アプリケーションは、この変換シーケンスを名前付きオブジェクトとしてAPIに保存できます。

Transformation Sequenceは、個々のタスクとして変換を実行する場合や、モデル作成用の入力オブジェクトの1つとして指定してモデル作成プロセスに変換を組み込む場合に使用できます。