ヘッダーをスキップ
Oracle Data Miningアプリケーション開発者ガイド
11g リリース2(11.2)
E57719-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

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


注意:

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

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


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

データ・マイニング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は、このリリースでは非推奨です。

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


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の新機能には、自動データ準備と組込みのデータ準備、一般化線形モデル、変換シーケンス、およびタスク依存指定などがあります。

JDM標準

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

標準で定義されているJavaパッケージの概要を、表2-4にリストしました。詳細は、標準(http://www.jcp.org)で公開されているJavaドキュメントを参照してください。移動先の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

作成のタスク、統計の計算、インポートおよびエクスポートをサポートするオブジェクトを定義。適用は主として監視ありのクラスタリング関数に使用されるため、タスクには適用するサブパッケージ(オプション)がある。

javax.datamining.association

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

javax.datamining.clustering

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

javax.datamining.attributeimportance

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

javax.datamining.supervised

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

javax.datamining.algorithm

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

javax.datamining.modeldetail

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


JDMに対するOracleの拡張機能

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


関連項目:

『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での保存方法を使用して保存できるオブジェクトです。名前付きオブジェクトはすべて、javax.datamining.MiningObjectインタフェースから継承されます。名前付きオブジェクトは、永続的に存在させる(永続オブジェクト)ことも、Connectionオブジェクトの存続期間のみ存在させる(一時オブジェクト)こともできます。

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

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

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

Model

適用設定

論理データ

構築設定

物理データセット

分類

タスク



コスト・マトリックス



テスト・メトリック



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を実装するには、ユーザーが物理データセットでケースID列を指定する必要があります。

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

構築設定

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

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

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

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

タスク

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

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

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

Model

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

モデルは、様々な操作で使用できます。次のような場合があります。

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

  • 精度のテスト

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

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

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

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

テスト・メトリック

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

適用設定

ApplySettingsオブジェクトでは、ユーザーが適用タスクの結果を調整できます。これには一連の順序付き項目が含まれます。出力の構成は次のとおりです。

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

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

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

デフォルトの適用設定オブジェクトを構築する方法は、マイニング機能の各クラスで定義されています。これによって、標準出力のみが必要な場合にはプログラマの負担が軽減されます。たとえば、分類適用の標準的な出力には、上位の予測とその確率が含まれます。

Transformation Sequence

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

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


関連項目:

Java APIの詳細は、第7章を参照してください。