この章では、Oracle Data Miningで使用するPL/SQL、SQLおよびJavaインタフェースの概要を説明します。
この章は、次の項で構成されています。
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 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は、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パッケージには、様々なモデルの詳細のサブパッケージを指定可能。 |
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 |
変換に関連するオブジェクトを定義。 |
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は、データ・マイニング操作の入力として使用されるデータを表します。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に格納されます。
BuildSettingsオブジェクトは、モデルの作成に使用される高水準の指定入力を記録します。APIでは、分類、回帰、属性評価、相関、クラスタリングおよび特徴抽出といったマイニング機能を指定します。
Build Settingsでは、ユーザーが特定のアルゴリズムを指定することなく目的の結果の種類を指定できます。Build Settingsオブジェクトでは、アルゴリズムとその設定を指定できますが、アルゴリズムを設定しない場合は、構築設定(および利用できる場合は当該データの特性)に基づき、DMEによってアルゴリズムが選択されます。
Build Settingsのパラメータの適合性は、verifyメソッドを使用して検証することもできます。
BuildSettingsオブジェクトは永続オブジェクトで、ユーザーの指定した名前を持つ表としてユーザー・スキーマに格納されます。この設定表は、PL/SQL APIと相互運用性があります。Build Settings表を手動で変更しないことをお薦めします。
ConnectionオブジェクトのExecuteメソッドは、マイニング・タスクの実行を開始するために使用します。通常、マイニング操作は何百万ものレコードを持つ表を使用して行われるため、モデル作成などの操作には、長い時間がかかる場合があります。
JDMでは、データベース内でDBMS_SCHEDULER
を使用したマイニング・タスクの非同期実行をサポートしています。各マイニング・タスクは、DBMS_SCHEDULER
Jobオブジェクトとしてユーザー・スキーマに格納されます。ユーザーがTaskオブジェクトを保存すると、Jobオブジェクトが作成され、このオブジェクトがDISABLED
状態に設定されます。ユーザーがタスクを実行すると、ジョブが実行を開始できるようになります。
非同期に実行されるタスクを監視するために、Executeメソッドはjavax.datamining.ExecutionHandle
オブジェクトを戻します。このオブジェクトは、タスクの状態の詳細を取得するgetStatus
やwaitForCompletion
などのメソッドを提供します。
Modelオブジェクトは、BuildSettingsオブジェクトで指定されているようにアルゴリズムをデータに適用した結果です。
Modelは、様々な操作で使用できます。次のような使用方法があります。
検査(たとえば、ディシジョン・ツリーまたは相関から生成されたルールを調査)
精度のテスト
スコアリングを目的としたデータへの適用
固有形式やPMMLのような外部表現へのエクスポート
Modelはデータに適用される場合、解釈のためにDMEに送られます。Modelオブジェクトは、ModelのBuildSettings
オブジェクトおよびModelを作成したTask
を参照します。
TestMetricsオブジェクトは、テスト・データを使用した監視ありモデルのテスト結果です。様々なテスト・メトリックが、マイニング機能の種類に基づいて計算されます。分類モデルでは、精度、混同マトリックス、リフトおよび受信者操作特性が計算されてモデルへアクセスする場合があります。同様に回帰モデルでは、R-2乗およびRMSエラーが計算される場合があります。
ApplySettingsオブジェクトを使用すると、ユーザーは適用タスクの結果を調整できます。このオブジェクトの内容は、順序付けられた項目のセットです。出力は、次の要素で構成される場合があります。
入力データセットから出力に渡されるデータ(主要な属性)。
適用それ自体から計算された値(スコア、確率、ディシジョン・ツリーの場合はルール識別子)。
関連する確率の多クラス・カテゴリ。たとえば、ターゲットfavoriteColorの分類モデルでは、ユーザーは特定の色をいくつか選択して、ある1色が好みである確率を取得できます。
各マイニング機能クラスでは、デフォルトのApply Settingsオブジェクトが作成されるメソッドが定義されています。これにより、標準の出力しか必要ない場合にプログラマの作業が簡素化されます。たとえば、分類適用の典型的な出力には最高の予測とその確率が含まれます。
TransformationSequenceオブジェクトは、マイニング操作の一部として実行される変換のシーケンスを表します。たとえば、サポート・ベクター・マシン・モデルの作成には、外れ値の処理および正規化変換が伴います。他にも、新しい導出属性の作成やビジネス上の変換などが必要になる場合があります。一般的に、これらの変換は他のモデルを作成する際に再利用されるため、アプリケーションは、この変換シーケンスを名前付きオブジェクトとしてAPIに保存できます。
Transformation Sequenceは、個々のタスクとして変換を実行する場合や、モデル作成用の入力オブジェクトの1つとして指定してモデル作成プロセスに変換を組み込む場合に使用できます。