この章では、Oracle Data Miningで使用するPL/SQL、SQLおよびJavaインタフェースの概要を説明します。
注意: Oracle Data Mining Java APIは、このリリースでは非推奨です。新しいアプリケーションでは、非推奨となった機能を使用しないことをお薦めします。推奨されない機能は、下位互換性を維持する目的のみでサポートされています。 |
この章には、次の項が含まれます。
Oracle Data MiningのPL/SQLインタフェースは、次の3つのパッケージで実装されています。
DBMS_DATA_MINING
パッケージには、次の操作を実行するためのプロシージャが含まれています。
マイニング・モデルの作成、削除および名前の変更
新しいデータへのモデルの適用
モデルの詳細の記述
分類モデルのコストの作成とテスト・メトリックの計算
モデルのエクスポートおよびインポート
CREATE_MODEL
プロシージャはマイニング・モデルを作成します。モデル内部の属性、変換、ルール、その他の情報はGET_MODEL_DETAILS
ファンクションで返されます。マイニング・モデルに関する情報は、「データ・マイニングのデータ・ディクショナリ・ビュー」で説明しているように、データ・ディクショナリ・ビューを問い合せて取得することもできます。
APPLY
プロシージャは、特定の列を持つ表を作成し、その列にマイニング結果を格納します。この表の列は、使用するマイニング機能やアルゴリズムによって異なります。
注意: 現在は、Oracle Database 10.2で導入されたデータ・マイニングSQL関数が、データ・マイニング・モデルを適用する際に通常優先される方法です。「データ・マイニングSQL関数」を参照してください。 |
このパッケージには、マイニングに適した形式にデータを変換するためのルーチンが含まれています。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 Data Miningのデータ・ディクショナリ・ビューは、ALL_
、USER_
およびDBA_
を使用してアクセスできます。
データ・マイニングのデータ・ディクショナリ・ビューには次の種類があります。
ALL_MINING_MODELS
: アクセス可能なマイニング・モデルに関する情報を戻します。
「マイニング・モデルのスキーマ・オブジェクト」を参照してください。
ALL_MINING_MODEL_ATTRIBUTES
: アクセス可能なマイニング・モデルの属性に関する情報を戻します。
「属性について」を参照してください。
ALL_MINING_MODEL_SETTINGS
: アクセス可能なマイニング・モデルの設定に関する情報を戻します。
「モデルの設定」を参照してください。
データ・マイニング用の組込みSQL関数は、データベースですでに作成されているモデルのスコアリング操作を実装します。組込みSQL関数には、次のメリットがあります。
既存のSQLアプリケーションのコンテキストで、モデルを簡単に配置できます。
スコアリング操作では、既存の問合せ実行機能を利用します。これにより、特に単一行をスコアリングする場合にパフォーマンスが向上します。
スコアリング結果がパイプライン化され、生成時に行を繰り返し戻すことができます。パイプライン化は、パフォーマンスを大幅に向上させる最適化の処理です。パイプライン化については、『Oracle Database PL/SQL言語リファレンス』を参照してください。
注意: SQL関数はOracle Databaseに組み込まれ、SQL文の中で使用できます。SQL関数と、PL/SQLのパッケージで定義されているファンクションを混同しないでください。 |
分類モデルと回帰モデルを特定行のスコアリング・データに適用すると、ターゲットの最適な予測値とその値が生じる確率が示されます。予測用のSQL関数については、表2-1で説明します。
表2-1 予測用のSQL関数
関数 | 説明 |
---|---|
ターゲットの最適な予測を戻す。 |
|
不正確な予測のコストの測度を戻す。 |
|
特定の予測の確率を戻す。 |
|
分類モデルの結果を戻す(各ケースについての予測および関連する確率を含む)。 |
スコアリング・データの特定の行にクラスタ・モデルを適用すると、クラスタIDおよびクラスタの該当行のメンバーシップの確率が戻されます。クラスタリング用のSQL関数については、表2-2で説明します。
表2-2 クラスタリング用のSQL関数
関数 | 説明 |
---|---|
予測対象のクラスタのIDを戻す。 |
|
特定のクラスタに属するケースの確率を戻す。 |
|
特定のケースが属している可能性のあるすべてのクラスタのリストと、ケースが含まれている確率を戻す。 |
特徴抽出モデルの適用では、スコアリング・データセットの列への特徴(属性セット)のマッピングが行われます。特徴抽出用のSQL関数については、表2-3で説明します。
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は、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拡張機能が定義されています。この項では、これらの拡張機能の概要について説明します。
関連項目: 『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 |
変換に関連するオブジェクトを定義。 |
JDMで名前付きオブジェクトとは、Connectionでの保存方法を使用して保存できるオブジェクトです。名前付きオブジェクトはすべて、javax.datamining.MiningObject
インタフェースから継承されます。名前付きオブジェクトは、永続的に存在させる(永続オブジェクト)ことも、Connectionオブジェクトの存続期間のみ存在させる(一時オブジェクト)こともできます。
表2-6に、Oracle Data MiningでサポートされるJDMの名前付きオブジェクトを示します。
表2-6 Oracle Data MiningでサポートされるJDMの名前付きオブジェクト
永続オブジェクト | 一時オブジェクト | サポートされないオブジェクト |
---|---|---|
Model |
適用設定 |
論理データ |
構築設定 |
物理データセット |
分類 |
タスク |
||
コスト・マトリックス |
||
テスト・メトリック |
||
Transformation Sequence |
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
オブジェクトを戻します。このオブジェクトは、タスクの状態の詳細を取得するgetStatus
やwaitForCompletion
などのメソッドを提供します。
Modelオブジェクトは、BuildSettingsオブジェクトで指定されているようにアルゴリズムをデータに適用した結果です。
モデルは、様々な操作で使用できます。次のような場合があります。
検査(たとえば、ディシジョン・ツリーまたは相関から生成されたルールを調査)
精度のテスト
スコアリングを目的としたデータへの適用
固有形式やPMMLのような外部表現へのエクスポート
Modelはデータに適用される場合、解釈のためにDMEに送られます。Modelオブジェクトは、ModelのBuildSettings
オブジェクトおよびModelを作成したTask
を参照します。
テスト・メトリック・オブジェクトは、監視ありモデルをテスト・データでテストした結果です。マイニング機能の種類に基づいて、異なるテスト・メトリックが計算されます。分類モデルでは、精度、混同マトリックス、リフトおよび受信者操作特性が計算されてモデルへアクセスする場合があります。同様に回帰モデルでは、R-2乗およびRMSエラーが計算される場合があります。
ApplySettingsオブジェクトでは、ユーザーが適用タスクの結果を調整できます。これには一連の順序付き項目が含まれます。出力の構成は次のとおりです。
入力データセットから出力に渡されるデータ(主要な属性)。
適用それ自体から計算された値(スコア、確率、ディシジョン・ツリーの場合はルール識別子)。
関連する確率の多クラス・カテゴリ。たとえば、ターゲットfavoriteColorの分類モデルでは、ユーザーは特定の色をいくつか選択して、ある1色が好みである確率を取得できます。
デフォルトの適用設定オブジェクトを構築する方法は、マイニング機能の各クラスで定義されています。これによって、標準出力のみが必要な場合にはプログラマの負担が軽減されます。たとえば、分類適用の標準的な出力には、上位の予測とその確率が含まれます。
TransformationSequenceオブジェクトは、マイニング操作の一部として実行される変換シーケンスを表します。たとえば、サポート・ベクター・マシン・モデルの構築には、外れ値の処理と正規化の変換が伴います。これに加えて、新しく導出される属性の作成、ビジネス上の変換なども考えられます。通常、これらの変換は他のモデル作成にも再利用されるため、アプリケーションは変換シーケンスをAPIで名前付きオブジェクトとして保存することができます。
Transformation Sequenceは、個々のタスクとして変換を実行する場合や、モデル作成用の入力オブジェクトの1つとして指定してモデル作成プロセスに変換を組み込む場合に使用できます。