ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
10g リリース2(10.2)
B19245-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

25 DBMS_DATA_MINING

Oracle Data Mining(ODM)は、プログラマ、システム・アナリスト、プロジェクト・マネージャおよびその他のデータ・マイニング・アプリケーションの開発者を対象として設計されています。 データ・マイニングを使用すると、データ内の隠れたパターンを検出し、検出された情報に基づいて予測と要約を行うことができます。

DBMS_DATA_MININGパッケージは、ODMへのインタフェースです。 DBMS_DATA_MININGを使用すると、マイニング・モデルの作成とテストを行い、そのモデルをデータに適用できます。


関連項目:

  • 第26章「DBMS_DATA_MINING_TRANSFORM」。 このパッケージは、データ・マイニングの準備としてのデータの前処理をサポートしています。

  • 第72章「DBMS_PREDICTIVE_ANALYTICS」。 このパッケージは、予測データ・マイニングのプロセス全体(データの前処理からモデルの作成、新しいデータのスコアリングに至るまで)を自動化します。

  • データ・マイニングのSQLスコアリング・ファンクションについては、『Oracle Database SQLリファレンス』を参照してください。

  • データ・マイニングのサンプル・プログラムについては、『Oracle Data Mining管理者ガイド』を参照してください。

  • SQLおよびJavaでのデータ・マイニング・アプリケーションの開発については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。


この章では、次の項目について説明します。


DBMS_DATA_MININGの使用方法

この項では、DBMS_DATA_MININGパッケージの使用に関連する項目について説明します。


概要

Oracle Data Mining(ODM)は、データ・マイニング機能をOracleデータベースに埋め込みます。 データはデータベースから離れることはなく、データの準備、モデルの作成、モデルのスコアリング(適用)などのすべての作業がデータベースの内部で実行されます。 そのため、Oracleデータベースは、データ・アナリストやアプリケーション開発者がデータ・マイニング機能をデータベース・アプリケーションにシームレスに組み込むための基盤となります。

Oracle Data Mining概要

ODMでは、予測データ・マイニングと記述データ・マイニングの両方がサポートされています。 予測データ・マイニングでは、履歴モデルを使用して、ターゲット値が予測されます。 記述データ・マイニングでは、指定のデータ・セット内の自然なグループが識別されます。

予測データ・マイニングには、次の機能があります。

記述データ・マイニングには、次の機能があります。

モデルを作成してスコアリングする手順は、使用するデータ・マイニング機能およびアルゴリズムによって異なります。 ODMの機能およびアルゴリズムの詳細は、『Oracle Data Mining概要』を参照してください。

Oracle Data Mining API

ODMには、Graphical User Interface(Oracle Data Miner)とともに、SQLおよびJava用のApplication Program Interface(API)が用意されています。 SQLインタフェースは、PL/SQLパッケージおよびSQLファンクションで構成されています。 Javaインタフェースは、データ・マイニングのJDM 1.0標準をOracleで実装したものです。 SQLおよびJava APIは、完全に相互運用が可能です。

10g リリース2(10.2)で新しく導入されたデータ・マイニング用のSQLファンクションは、モデルのスコアリング結果を戻します。 これらのファンクションは、既存のモデルをSQL文のコンテキスト内で適用します。 ODMのスコアリング・ファンクションには、CLUSTER_IDCLUSTER_PROBABILITYCLUSTER_SETFEATURE_IDFEATURE_SETFEATURE_VALUEPREDICTIONPREDICTION_COSTPREDICTION_DETAILSPREDICTION_PROBABILITYおよびPREDICTION_SETがあります。 ODMのスコアリング・ファンクションについては、『Oracle Database SQLリファレンス』を参照してください。

DBMS_DATA_MININGパッケージは、すべてのODMマイニング機能に対して、モデルの作成、テストおよびスコアリングのプロセスをサポートしています。 ほとんどのマイニング・データは、マイニングを開始する前に前処理を行う必要があります。 これは、DBMS_DATA_MINING_TRANSFORMパッケージまたはサードパーティのユーティリティを使用して実行できます。 予測データ・マイニングのプロセス全体を自動化するには、DBMS_PREDICTIVE_ANALYTICSパッケージを使用します。


関連項目:

Oracle Data Miningでは、データ・マイニングのサンプル・プログラムを使用できます。 サンプル・プログラムの使用手順については、『Oracle Data Mining管理者ガイド』を参照してください。 Oracle Data Miningインタフェースの追加情報については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。


新機能

Oracle Database 10g リリース2(10.2)のDBMS_DATA_MININGパッケージには、次の新機能があります。

Oracle Data Miningの新機能の詳細は、『Oracle Data Mining概要』および『Oracle Database新機能』を参照してください。


モデル名

ODMモデルの名前は、有効なスキーマ・オブジェクト名である必要があります。 ただし、モデルのネーミング規則には、スキーマ・オブジェクトのネーミング規則より多くの制限があります。 モデル名は、次の要件も満たす必要があります。

スキーマ・オブジェクトのネーミング要件については、『Oracle Database SQLリファレンス』に詳しく記述されています。


定数

Oracle Data Miningは、定数を使用して、マイニング機能、そのアルゴリズム、およびモデルに関するその他の詳細情報を指定します。 モデルの機能(タイプ)は、モデルの作成時に指定されます。 デフォルト以外のモデルの特性は、そのモデルに関連付けられている設定表で指定します。

設定表は、ユーザーが作成する表で、次の列で構成されています。

(setting_name        VARCHAR2(30),
 setting_value       VARCHAR2(128))

setting_name列の各設定値は定数です。また、setting_value列に指定可能な値も、その多くは定数です。 数値は、暗黙的にVARCHAR2に変換されます。 明示的に変換する場合は、TOCHARファンクションを使用します。


関連項目:

設定表の作成、およびデフォルトの設定値と設定範囲については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

マイニング機能を指定する定数

Oracle Data Miningでは、多くの予測マイニング機能および記述マイニング機能がサポートされています。 マイニング機能は、CREATE_MODELプロシージャのパラメータとして指定されます。 詳細は、「CREATE_MODELプロシージャ」を参照してください。

mining_functionパラメータのデータ型はVARCHAR2(30)で、表25-1に示す値を指定できます。

表25-1 マイニング機能

定数 説明

association

相関は、記述マイニング機能の一種です。 相関モデルによって、データ・セット内に存在する関係とその発生確率が識別されます。

attribute_importance

属性重要度は、予測マイニング機能の一種です。 属性重要度モデルによって、特定の結果を予測する際の、属性の相対的な重要度が識別されます。

classification

分類は、予測マイニング機能の一種です。 分類モデルによって、新しい個別データまたはカテゴリ・データが履歴データを使用して予測されます。

classification機能は、異常検出にも使用できます。 この場合は、NULLターゲットを含むSVMアルゴリズムが使用されます(1クラスSVM)。

clustering

クラスタ化は、記述マイニング機能の一種です。 クラスタ化モデルによって、データ・セット内の自然なグループが識別されます。

feature_extraction

特徴抽出は、記述マイニング機能の一種です。 特徴抽出モデルによって、モデルのベースとなる最適なデータ・セットが作成されます。

regression

リグレッションは、予測マイニング機能の一種です。 リグレッション・モデルによって、新しい連続的な数値データが履歴データを使用して予測されます。


マイニング機能に関する情報を指定する定数

すべてのモデルが、表25-1に示したいずれかのマイニング機能に基づいています。 マイニング機能の構成は、表25-2に示す設定値で指定できます。

表25-2 マイニング機能の設定

定数 説明

algo_name

モデルで使用するアルゴリズムを指定する設定。 この設定値には、次の定数を指定できます。

           algo_adaptive_bayes_network

          動的なベイズ・ネットワーク(ABN)。分類のデフォルトのアルゴリズムです。

           algo_ai_mdl

          属性重要度の最小記述長(MDL)アルゴリズム。

           algo_apriori_association_rules

          相関のアプリオリ・アルゴリズム。

           algo_decision_tree

          分類のディシジョン・ツリー(DT)アルゴリズム。

           algo_kmeans

          k-Means(KM)。クラスタ化のデフォルトのアルゴリズム。

           algo_naive_bayes

          分類のNaive Bayes(NB)アルゴリズム。

          algo_nonnegative_matrix_factor

          特徴抽出のNon-Negative Matrix Factorization(NMF)アルゴリズム。

          algo_o_cluster

          クラスタ化のO-Cluster(OC)アルゴリズム。

           algo_support_vector_machines

          分類またはリグレッションのサポート・ベクター・マシン(SVM)アルゴリズム。

           異常検出に使用する1クラスSVMは、NULLターゲットを含むSVM分類です。

asso_max_rule_length

相関モデルで使用されるルールの最大長を指定する設定。

asso_min_confidence

相関モデルの最小信頼度を指定する設定。

asso_min_support

相関モデルの最小サポートを指定する設定。

clas_cost_table_name

分類モデルのコスト・マトリックス表の名前を指定する設定。

clas_priors_table_name

NBモデルおよびABNモデルの事前確率表の名前を指定する設定。 事前確率を使用しない分類アルゴリズムは、ディシジョン・ツリーのみです。

SVM分類モデルの場合は、この設定によって重みの表の名前が指定されます。

clus_num_clusters

クラスタ化モデルのクラスタ数を指定する設定。

feat_num_features

特徴抽出モデルの機能の個数を指定する設定。


アルゴリズムに関する情報を指定する定数

モデルで使用されるアルゴリズムは、algo_name設定(表25-2を参照)で指定します。 アルゴリズムの構成は、表25-3に示す設定値で指定できます。

表25-3 アルゴリズムの設定

アルゴリズム 定数 説明



ABN

abns_max_build_minutes

ABNモデルの作成が完了するまでの最長許容時間を指定する設定。


abns_max_nb_predictors

abns_naive_bayes型のABNモデルの作成に必要な予測変数の最大数(MDLランキングで測定)を指定する設定。


abns_max_predictors

abns_single_feature型またはabns_multi_feature型のABNモデルの作成に必要な予測変数の最大数(MDLランキングで測定)を指定する設定。


abns_model_type

ABNモデル型を指定する設定。 この設定値には、次の定数を指定できます。


          abns_multi_feature

          マルチ機能ABNモデル。


          abns_naive_bayes

          Naive Bayes ABNモデル。


          abns_single_feature

          単一機能ABNモデル。




DT

tree_impurity_metric

ディシジョン・ツリーのツリー不純メトリックを指定する設定。 この設定値には、次の定数を指定できます。


          tree_impurity_entropy

          エントロピ。


          tree_impurity_gini

          Gini。


tree_term_max_depth

ディシジョン・ツリーのツリー深さの最大終了基準を指定する設定。


tree_term_minpct_node

ディシジョン・ツリーの親ノードの終了基準にレコードの最小割合を指定する設定名。


tree_term_minpct_split

ディシジョン・ツリーの親ノードの分割基準にレコードの最小割合を指定する設定名。


tree_term_minrec_node

ディシジョン・ツリーの親ノードの終了基準にレコードの最小数を指定する設定名。


tree_term_minrec_split

ディシジョン・ツリーの親ノードの分割基準にレコードの最小数を指定する設定。




KM

kmns_block_growth

k-Meansのクラスタ・データを保持するために割り当てられるメモリーの増加係数を指定する設定。


kmns_conv_tolerance

k-Meansの収束許容値を指定する設定。


kmns_distance

k-Meansの距離関数を指定する設定。 この設定値には、次の定数を指定できます。


          kmns_cosine

          余弦距離関数。


          kmns_euclidean

          ユークリッド距離関数。


          kmns_fast_cosine

          高速余弦距離関数。


kmns_iterations

k-Meansの反復回数を指定する設定。


kmns_min_pct_attr_support

k-Meansクラスタのルールに属性を組み込むために必要な最小サポート値(%)を指定する設定。


kmns_num_bins

k-Meansのヒストグラムのビン数を指定する設定。


kmns_split_criterion

k-Meansの分割基準を指定する設定。 この設定値には、次の定数を指定できます。


          kmns_size

          サイズが分割基準。


          kmns_variance

          分散が分割基準。




NB

nabs_pairwise_threshold

Naive Bayesの組しきい値を指定する設定。


nabs_singleton_threshold

Naive Bayesの単一しきい値を指定する設定。




NMF

nmfs_conv_tolerance

NMFの収束許容度を指定する設定。


nmfs_num_iterations

NMFの反復回数を指定する設定。


nmfs_random_seed

NMFの乱数シードを指定する設定。




OC

oclt_max_buffer

O-Clusterのバッファ・サイズを指定する設定。


oclt_sensitivity

O-Clusterの感度を指定する設定。




SVM

svms_active_learning

能動学習を有効にするか無効にするかを指定する設定。 この設定値には、次の定数を指定できます。


          svms_al_disable

          能動学習は無効です。


          svms_al_enable

          能動学習は有効です。


svms_complexity_factor

SVMの複雑度を指定する設定。


svms_conv_tolerance

SVMの許容度を指定する設定。


svms_epsilon

SVMリグレッションのエプシロン係数を指定する設定。


svms_kernel_cache_size

SVMのガウシアン・カーネル・キャッシュ・サイズを指定する設定。


svms_kernel_function

SVMのカーネル関数を指定する設定。 この設定値には、次の定数を指定できます。


          svms_gaussian

          ガウシアン・カーネル。


          svms_linear

          線形カーネル。


svms_outlier_rate

トレーニング・データに外れ値の適切な割合を指定する設定。 1クラスSVMモデルに対してのみ有効です。


svms_std_dev

SVMガウシアン・カーネルの標準偏差を指定する設定。



データ型

DBMS_DATA_MININGパッケージには、アルゴリズムに固有のモデル情報を戻す多数のテーブル・ファンクションがあります。 これらのファンクションは、モデル名を入力に使用し、要求された情報を行のコレクションとして戻します。 テーブル・ファンクションは、GET_nという名前になります。nは、戻す情報のタイプを示します。 ODMのGETファンクションのリストは、「DBMS_DATA_MININGサブプログラムの要約」を参照してください。

すべてのGETファンクションでパイプライン出力が使用されているため、出力の各行は、モデルの記憶域から読み取られる際に実体化され、表オブジェクトが完全に生成されるまで待機する必要がありません。 パイプライン・テーブル・ファンクションの詳細は、『Oracle Database PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。

GETファンクションで戻される仮想表は、オブジェクト・データ型です。 その行は、別のオブジェクト・データ型で定義されます。 ネストした表を定義するオブジェクト・データ型を持つ列もあります。

ODMでは、ワイド・データの処理にもオブジェクト・データ型が使用されます。 これらの型(DM_NESTED_NUMERICALSおよびDM_NESTED_CATEGORICALS)によって、一連のマイニング属性を1つの列に格納する場合に使用可能なネストした表が定義されます。 ワイド・データの詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

表25-4に、ODMのオブジェクト・データ型を示します。

表25-4 DBMS_DATA_MININGのデータ型の要約

データ型 説明

DM_ABN_DETAIL

ABNモデルに関する情報を表します。

DM_ABN_DETAILS

DM_ABN_DETAILのコレクションを表します。 これは、GET_MODEL_DETAILS_ABNによって戻されます。

DM_CENTROID

クラスタの重心を表します。

DM_CENTROIDS

DM_CENTROIDのコレクションを表します。 これは、GET_MODEL_DETAILS_KMおよびGET_MODEL_DETAILS_OCによって戻されます。

DM_CHILD

クラスタの子ノードを表します。

DM_CHILDREN

DM_CHILDのコレクションを表します。

DM_CLUSTER

クラスタを表します。

DM_CLUSTERS

DM_CLUSTERのコレクションを表します。 これは、GET_MODEL_DETAILS_KMおよびGET_MODEL_DETAILS_OCによって戻されます。

DM_CONDITIONAL

NBモデルまたはABNモデルで使用されるマイニング属性に関連付けらた条件付き確率を表します。

DM_CONDITIONALS

DM_CONDITIONALのコレクションを表します。 これは、GET_MODEL_DETAILS_NBおよびGET_MODEL_DETAILS_ABNによって戻されます。

DM_HISTOGRAM_BIN

クラスタ識別子に関連付けられた1つのヒストグラムを表します。

DM_HISTOGRAMS

DM_HISTOGRAM_BINのコレクションを表します。 これは、GET_MODEL_DETAILS_KMによって戻されます。

DM_ITEMS

項目を表します。

DM_ITEMSET

DM_ITEMSのコレクションを表します。

DM_ITEMSETS

DM_ITEMSETのコレクションを表します。 これは、相関モデル内の頻度の高い項目セットです。

DM_MODEL_SETTING

モデルに対する設定表の設定/値の組合せを表します。

DM_MODEL_SETTINGS

DM_MODEL_SETTINGのコレクションを表します。 これは、GET_MODEL_SETTINGSによって戻されます。

DM_MODEL_SIGNATURE_ATTRIBUTE

モデルのシグネチャの属性を表します。

DM_MODEL_SIGNATURE

DM_MODEL_SIGNATUREのコレクションを表します。 これは、GET_MODEL_SIGNATUREによって戻されます。

DM_NB_DETAIL

NBモデルに関する情報を表します。

DM_NB_DETAILS

DM_DB_DETAILのコレクションを表します。 これは、GET_MODEL_DETAILS_NBによって戻されます。

DM_NESTED_CATEGORICAL

カテゴリ属性のネストした表を表します。

DM_NESTED_CATEGORICALS

DM_NESTED_CATEGORICALのコレクションを表します。 これは、ワイド・データを表すために使用されます。

DM_NESTED_NUMERICAL

数値属性のネストした表を表します。

DM_NESTED_NUMERICALS

DM_NESTED_NUMERICALのコレクションを表します。 これは、ワイド・データを表すために使用されます。

DM_NMF_ATTRIBUTE

NMFモデルのマイニング属性を表します。

DM_NMF_ATTRIBUTE_SET

DM_NMF_ATTRIBUTEのコレクションを表します。 これは、GET_MODEL_DETAILS_NMFによって戻されます。

DM_NMF_FEATURE

NMFモデルの機能を表します。

DM_NMF_FEATURE_SET

DM_NMF_FEATUREのコレクションを表します。 これは、GET_MODEL_DETAILS_NMFによって戻されます。

DM_PREDICATE

ルールの前件または後件のいずれかを表します。

DM_PREDICATES

DM_PREDICATEのコレクションを表します。

DM_RANKED_ATTRIBUTE

属性の重要度に基づいてランク付けされた属性集合内の1つの属性を表します。

DM_RANKED_ATTRIBUTES

DM_RANKED_ATTRIBUTEのコレクションを表します。 これは、GET_MODEL_DETAILS_AIによって戻されます。

DM_RULE

モデルのルールを表します。

DM_RULES

DM_RULEのコレクションを表します。 これは、k-meansモデルのGET_ASSOCIATION_RULESGET_MODEL_DETAILS_KMおよびGET_MODEL_DETAILS_OCによって戻されます。

DM_SVM_ATTRIBUTE

SVMモデルの属性を表します。

DM_SVM_ATTRIBUTE_SET

DM_SVM_ATTRIBUTEのコレクションを表します。 これは、線形モデルのGET_MODEL_DETAILS_SVMによって戻されます。

DM_SVM_LINEAR_COEFF

SVMの線形係数を表します。

DM_SVM_LINEAR_COEFF_SET

DM_SVM_LINEAR_COEFFのコレクションを表します。 これは、線形カーネルを使用して作成されたSVMモデルのGET_MODEL_DETAILS_SVMによって戻されます。



例外

次の表に、DBMS_DATA_MININGで発生する例外を示します。

表25-5 DBMS_DATA_MININGで発生する例外

Oracleエラー 説明

ORA-40201

入力パラメータ%sは無効です。

ORA-40202

列%sが入力表%sに存在しません。

ORA-40203

モデル%sが存在しません。

ORA-40204

モデル%sは、すでに存在しています。

ORA-40205

設定名%sは無効です。

ORA-40206

設定名%sに対する設定値が無効です。

ORA-40207

機能設定が重複しているか、複数あります。

ORA-40208

機能%sに対するアルゴリズム設定が重複しているか、複数あります。

ORA-40209

設定%は、%機能には無効です。

ORA-40211

アルゴリズム名%sは無効です。

ORA-40212

%s機能の入力データのターゲット・データ型が無効です。

ORA-40213

設定の値が矛盾しています: %s、%s

ORA-40214

重複した設定: %s

ORA-40215

モデル%sは現行の操作と互換性がありません。

ORA-40216

機能がサポートされていません。

ORA-40217

前の表がトレーニング・データと一致しません。

ORA-40219

適用結果表%sは現行の操作と互換性がありません。

ORA-40220

属性の最大数を超えています。

ORA-40221

最大ターゲット・カーディナリティを超えています。

ORA-40222

データ・マイニング・モデルのエクスポートに失敗しました。ジョブ名=%s、エラー=%s

ORA-40223

データ・マイニング・モデルのインポートに失敗しました。ジョブ名=%s、エラー=%s

ORA-40225

モデルは現在、別のプロセスで使用中です。

ORA-40226

モデルのアップグレード/ダウングレードは、SYSによって実行する必要があります。

ORA-40251

サポート・ベクトルが見つかりません。

ORA-40252

ターゲット値が見つかりません。

ORA-40253

ターゲット・カウンタの例が見つかりません。

ORA-40254

1クラス・モデルには事前指定できません。

ORA-40261

モデル作成用の入力データに負の値が含まれています。

ORA-40262

NMF: 機能の数は[1, %s]の間ではありません。

ORA-40271

統計的に重要な機能は見つかりませんでした。

ORA-40272

このモデル・モードでは、適用ルールは禁止されています。

ORA-40273

動的なベイズ・ネットワーク・アルゴリズムのモデル型%sが無効です。

ORA-40281

モデル名が無効です。

ORA-40282

コスト・マトリックスが無効です。

ORA-40283

コスト・マトリックスがありません。

ORA-40284

モデルが存在しません。

ORA-40285

ラベルがモデル内にありません。

ORA-40286

マイニング・モデルでは、リモート操作は許可されません。

ORA-40287

モデルに対するデータが無効です -- コサイン距離が有効範囲外です。

ORA-40289

重複した属性がデータ・マイニング関数に指定されています。

ORA-40290

データ・マイニング関数と互換性のないモデル。

ORA-40291

モデル・コストは使用できません。

ORA-40301

コスト・マトリックス指定が無効です。

ORA-40302

コスト・マトリックス指定のクラス名%sは無効です。

ORA-40303

確立の事前指定が無効です。

ORA-40304

確率の事前指定のクラス名%sは無効です。

ORA-40305

無効な不純メトリックが指定されています。

ORA-40306

ワイド・データは、ディシジョン・ツリー・モデルの作成ではサポートされません。

ORA-40321

ビン番号が無効です。値がゼロまたはマイナスです。

ORA-40322

ビン番号が大きすぎます。



ユーザー・ビュー

表25-6は、DM_USER_MODELSビューの説明です。このビューには、ユーザーのスキーマ内のモデルに関する情報が表示されます。

表25-6 DM_USER_MODELS

データ型 NULL 説明

name

VARCHAR2(25)

NOT NULL

モデルの名前。

function_name

VARCHAR2(30)


モデルの機能。 詳細は、表25-1を参照してください。

algorithm_name

VARCHAR2(30)


モデルで使用されるアルゴリズム。 詳細は、表25-2を参照してください。

creation_date

DATE


モデルの作成日。

build_duration

NUMBER


モデル作成プロセスの継続時間。

target_attribute

VARCHAR2(30)


分類モデルのターゲットとして指定された属性。

model_size

NUMBER


モデルのサイズ(メガバイト単位)。



DBMS_DATA_MININGサブプログラムの要約

表25-7に、DBMS_DATA_MININGパッケージに含まれているサブプログラムの要約を示します。

表25-7 DBMS_DATA_MININGパッケージのサブプログラム

サブプログラム 説明

APPLYプロシージャ

データ・セットにモデルを適用します(データのスコアリングを行います)。

COMPUTE_CONFUSION_MATRIXプロシージャ

分類モデルのテスト・データに対するAPPLYの結果からコンフュージョン・マトリックスを計算します。また、モデルの精度を取得します。

COMPUTE_LIFTプロシージャ


分類モデルをテスト・データに適用(APPLY)した結果に基づき、正数のターゲット値のリフトを計算します。

COMPUTE_ROCプロシージャ

分類モデルの受信者操作特性(ROC)を計算します。

CREATE_MODELプロシージャ

マイニング・モデルを作成します。

DROP_MODELプロシージャ


モデルを削除します。

EXPORT_MODELプロシージャ


モデルをダンプ・ファイルにエクスポートします。

GET_ASSOCIATION_RULESファンクション

相関モデルからルール集合を戻します。

GET_DEFAULT_SETTINGSファンクション

マイニング機能とマイニング・アルゴリズムのすべてのデフォルト設定を戻します。

GET_FREQUENT_ITEMSETSファンクション

頻度の高い項目セットを相関モデルから戻します。

GET_MODEL_DETAILS_ABNファンクション

動的なベイズ・ネットワーク・モデルのディテールを戻します。

GET_MODEL_DETAILS_AIファンクション


属性重要度モデルのディテールを戻します。

GET_MODEL_DETAILS_KMファンクション


k-Meansモデルのディテールを戻します。

GET_MODEL_DETAILS_NBファンクション

Naive Bayesモデルのディテールを戻します。

GET_MODEL_DETAILS_NMFファンクション


NMFモデルのディテールを戻します。

GET_MODEL_DETAILS_OCファンクション

O-Clusterモデルのディテールを戻します。

GET_MODEL_DETAILS_SVMファンクション

線形カーネルを使用するSVMモデルのディテールを戻します。

GET_MODEL_DETAILS_XMLファンクション

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

GET_MODEL_SETTINGSファンクション

モデルの作成に使用された設定を戻します。

GET_MODEL_SIGNATUREファンクション

モデルのシグネチャを戻します。

IMPORT_MODELプロシージャ

指定されたモデルをユーザー・スキーマにインポートします。

RANK_APPLYプロシージャ


分類モデルに対するAPPLYの結果に基づいて、予測結果をランク付けします。

RENAME_MODELプロシージャ

モデルの名前を変更します。



APPLYプロシージャ

このプロシージャは、対象データにマイニング・モデルを適用し、その結果(APPLY結果)を表に保存します。 APPLY操作は、スコアリングとも呼ばれます。

予測マイニング機能のAPPLY操作では、予測結果がターゲット列に生成されます。 クラスタ化などの記述マイニング機能のAPPLY操作では、各ケースにクラスタが確率付きで割り当てられます。

APPLY操作は、相関モデルおよび属性重要度モデルには適用できません。


注意:

ODMのスコアリング・ファンクションは、DBMS_DATA_MINING.APPLYプロシージャの代用として使用できます。 これらのSQLファンクションについては、『Oracle Database SQLリファレンス』を参照してください。 追加情報およびコード例については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

構文

DBMS_DATA_MINING.APPLY (
      model_name           IN VARCHAR2,
      data_table_name      IN VARCHAR2,
      case_id_column_name  IN VARCHAR2,
      result_table_name    IN VARCHAR2,
      data_schema_name     IN VARCHAR2 DEFAULT NULL);

パラメータ

表25-8 APPLYプロシージャのパラメータ

パラメータ 説明

model_name

モデルの名前。

data_table_name

スコアリング対象のデータが保存された表またはビューの名前。

case_id_column_name

ケースID列の名前。

result_table_name

適用結果が保存される表の名前。

data_schema_name

スコアリング対象のデータが保存されたスキーマの名前。


使用上の注意

APPLYに渡すデータは、CREATE_MODELに渡すデータと比較した場合に、スキーマ定義および関連属性が一致する必要があります。 これらの情報を取得するには、GET_MODEL_SIGNATUREファンクションを使用します。 CREATE_MODELへの入力として指定したデータが前処理されていた場合は、APPLYへの入力データも同じ方法で前処理する必要があります。 ケースIDは、APPLYによる処理時にマイニング属性とみなされません。

ユーザーは、適用操作の結果が保存される表の名前を指定する必要があります。 APPLYを実行すると、各アルゴリズムに固有の固定スキーマを持つ表が、モデルを所有するユーザー・スキーマ内に作成されます。

APPLYはプロシージャとしてパッケージされていますが、その動作はSQL問合せの動作と似ています。 APPLYによってモデルの内容は変更されません。またその動作は、CREATE_MODELDROP_MODELRENAME_MODELの動作と競合しません。 ただし、モデルがスコアリング・データに適用されているときに、モデルを削除するか、モデルの名前を変更すると、APPLY操作が途中で中止されたり、予測不可能な結果が発生する可能性があります。

以降の項では、サポートされる個々のアルゴリズムにおいて、適用結果が保存される表のスキーマを示します。 case_id列の値は、ユーザーが入力パラメータで指定したケースID列名と同じ値になります。 入力のcase_id列の型は、APPLYの出力でも維持されます。

分類アルゴリズム

分類モデルに対するAPPLYの結果が保存される表には、すべて同じ定義が適用されます。 ターゲットが数値である場合、適用結果は次の列を持つ表に保存されます。

case_id      VARCHAR2/NUMBER
prediction   NUMBER
probability  NUMBER

ターゲットがカテゴリである場合、適用結果は次の列を持つ表に保存されます。

case_id      VARCHAR2/NUMBER
prediction   VARCHAR2
probability  NUMBER

1クラスSVM(異常検出)

適用結果は次の列を持つ表に保存されます。

case_id       VARCHAR2/NUMBER
prediction    NUMBER
probability   NUMBER

prediction列の値は、0または1のいずれかです。1の場合、ケースは標準的な例です。 0の場合、ケースは外れ値です。

SVMを使用するリグレッション

適用結果は次の列を持つ表に保存されます。

case_id     VARCHAR2/NUMBER
prediction  NUMBER

k-MeansおよびO-Clusterを使用するクラスタ化

クラスタ化は非監視型のマイニング機能であるため、ターゲットは存在しません。 APPLY操作の結果は、単にケースに対応するクラスタ識別子と、ケースの確率のみになります。 適用結果は次の列を持つ表に保存されます。

case_id      VARCHAR2/NUMBER
cluster_id   NUMBER
probability  NUMBER

NMFを使用する特徴抽出

特徴抽出も非監視型のマイニング機能であるため、ターゲットは存在しません。 APPLY操作の結果は、単にケースに対応する機能識別子と、ケースの一致率のみになります。 適用結果は次の列を持つ表に保存されます。

case_id        VARCHAR2/NUMBER
feature_id     NUMBER
match_quality  NUMBER

BEGIN
/* build a model with name census_model.
 * (See example under CREATE_MODEL)
 */

/* if build data was pre-processed in any manner,
 * perform the same pre-processing steps on the
 * scoring data also.
 * (See examples in the section on DBMS_DATA_MINING_TRANSFORM)
 */

/* apply the model to data to be scored */
DBMS_DATA_MINING.APPLY(
  model_name          => 'census_model',
  data_table_name     => 'census_2d_apply',
  case_id_column_name => 'person_id',
  result_table_name   => 'census_apply_result');
END;
/

-- View Apply Results
SELECT case_id, prediction, probability
  FROM census_apply_result;

COMPUTE_CONFUSION_MATRIXプロシージャ

このプロシージャは、分類モデルのコンフュージョン・マトリックスを計算します。また、モデルの精度を取得します。 コンフュージョン・マトリックスの説明は、『Oracle Data Mining概要』を参照してください。

COMPUTE_CONFUSION_MATRIXプロシージャを実行する前に、次の操作を実行します。

この表またはビューおよび適用結果表は、プロシージャの入力として指定します。

構文

DBMS_DATA_MINING.COMPUTE_CONFUSION_MATRIX (
      accuracy                     OUT NUMBER,
      apply_result_table_name      IN  VARCHAR2,
      target_table_name            IN  VARCHAR2,
      case_id_column_name          IN  VARCHAR2,
      target_column_name           IN  VARCHAR2,
      confusion_matrix_table_name  IN  VARCHAR2,
      score_column_name            IN  VARCHAR2 DEFAULT 'PREDICTION',
      score_criterion_column_name  IN  VARCHAR2 DEFAULT 'PROBABILITY',
      cost_matrix_table_name       IN  VARCHAR2 DEFAULT NULL,
      apply_result_schema_name     IN  VARCHAR2 DEFAULT NULL,
      target_schema_name           IN  VARCHAR2 DEFAULT NULL,
      cost_matrix_schema_name      IN  VARCHAR2 DEFAULT NULL);

パラメータ

表25-9 COMPUTE_CONFUSION_MATRIXプロシージャのパラメータ

パラメータ 説明

accuracy

モデルの精度。

apply_result_table_name

テスト・データセットに対するAPPLY操作の結果を保存した表の名前(「使用上の注意」を参照)。

target_table_name

ケースID列値およびターゲット列値のみが定義された表またはビューの名前(「使用上の注意」を参照)。

case_id_column_name

テスト・データセット内のケースID列の名前。 この名前はターゲット表と適用結果表で共通の名前にする必要があります。

target_column_name

ターゲット表のターゲット列の名前。

confusion_matrix_table_name

コンフュージョン・マトリックスが格納される表の名前。

score_column_name

適用結果表の中でスコアを示す列の名前。 APPLYによって作成される固定スキーマ表では、この列の名前がデフォルトでPREDICTIONになります。

score_criterion_column_name

適用結果表内のスコアのランキング係数を表す列の名前。 APPLYによって分類モデル用に作成される固定スキーマ表では、この列の名前がデフォルトでPROBABILITYになります。 この列の値は数値で表現する必要があります。

cost_matrix_table_name

固定スキーマを持つコスト・マトリックス表の名前。

apply_result_schema_name

APPLYの適用結果表に適用されるスキーマの名前。

target_schema_name

ターゲット表に適用されるスキーマの名前。

cost_matrix_schema_name

コスト・マトリックス表に適用されるスキーマの名前。


使用上の注意

このプロシージャへのオプションの入力パラメータとしてコスト・マトリックスを指定すると、予測のコストを反映した結果が得られます。

COMPUTE_CONFUSION_MATRIXへの入力は、必ずしもAPPLYを使用して作成する必要がないことに十分注意してください。 2つの入力表の定義がこの項で説明した仕様に一致し、定義の内容が適正であれば、このプロシージャを使用してモデルのコンフュージョン・マトリックスと精度情報を生成できます。 出力結果の質はデータの質に依存します。

分類モデルのテストに使用するデータは、CREATE_MODELに渡したデータと比較した場合に、スキーマ定義および関連属性が一致する必要があります。 CREATE_MODELに入力として渡したデータが前処理されていた場合は、CREATE_MODELデータの前処理に関する統計情報に基づき、APPLYへの入力データも前処理する必要があります。

COMPUTE_CONFUSION_MATRIXプロシージャを使用する前に、テスト・データから2種類のデータ入力ストリームを準備する必要があります。

最初に、テスト・データにモデルを適用(APPLY)します。 APPLYで得られた結果表の名前を、COMPUTE_CONFUSION_MATRIXプロシージャのapply_result_table_nameに指定します。

次に、ケースID列とターゲット列のみがスキーマ内で定義された表またはビューを作成します。 この2つ目の表の名前を、target_table_nameに指定します。

ターゲット属性が数値である場合、2つ目の表またはビューの定義は次のようになります。

(case_identifier_column_name  VARCHAR2/NUMBER,
target_column_name            NUMBER)

ターゲット属性がカテゴリである場合、2つ目の表またはビューの定義は次のようになります。

(case_identifier_column_name  VARCHAR2/NUMBER,
target_column_name            NUMBER)

ユーザーは、コンフュージョン・マトリックスが格納される表の名前を指定する必要があります。 この固定スキーマ表は常に、モデルを所有するスキーマ内に作成されます。

ターゲット属性が数値である場合、コンフュージョン・マトリックス表の定義は次のようになります。

(actual_target_value    NUMBER,
predicted_target_value  NUMBER,
value                   NUMBER)

ターゲット属性がカテゴリである場合、コンフュージョン・マトリックス表の定義は次のようになります。

(actual_target_value     VARCHAR2,
predicted_target_value   VARCHAR2,
value                    NUMBER)

この例では、Naive Bayesアルゴリズムを使用して、census_modelという分類モデルを事前に作成していると想定します。テスト・データは、census_2d_testという表(ケースID列の名前はperson_id、ターゲット列の名前はclass)に保存されています。

DECLARE
  v_sql_stmt VARCHAR2(4000);
  v_accuracy NUMBER;
BEGIN

/* apply the model census_model on test data */
DBMS_DATA_MINING.APPLY(
  model_name           => 'census_model',
  data_table_name      => 'census_2d_test',
  case_id_column_name  => 'person_id',
  result_table_name    => 'census_test_result');
CREATE VIEW census_2d_test_view as select person_id, class from census_2d_test;

/* now compute the confusion matrix from the two
 * data streams, also providing a cost matrix as input.
 */
DBMS_DATA_MINING.COMPUTE_CONFUSION_MATRIX (
  accuracy                     => v_accuracy,
  apply_result_table_name      => 'census_test_result',
  target_table_name            => 'census_2d_test_view',
  case_id_column_name          => 'person_id',
  target_column_name           => 'class',
  confusion_matrix_table_name  => 'census_confusion_matrix',
  cost_matrix_table_name       => 'census_cost_matrix');
DBMS_OUTPUT.PUT_LINE('Accuracy of the model: ' || v_accuracy);
END;
/

-- View the confusion matrix using Oracle SQL
SELECT actual_target_value, predicted_target_value, value
  FROM census_confusion_matrix;

COMPUTE_LIFTプロシージャ

このプロシージャは、分類モデルをテスト・データに適用して、特定の正数ターゲットのリフト表を計算します。 リフトについては、『Oracle Data Mining概要』を参照してください。

COMPUTE_LIFTプロシージャを実行する前に、次の操作を実行します。

この表またはビューおよび適用結果表は、プロシージャの入力として指定します。

構文

DBMS_DATA_MINING.COMPUTE_LIFT (
      apply_result_table_name      IN VARCHAR2,
      target_table_name            IN VARCHAR2,
      case_id_column_name          IN VARCHAR2,
      target_column_name           IN VARCHAR2,
      lift_table_name              IN VARCHAR2,
      positive_target_value        IN VARCHAR2,
      score_column_name            IN VARCHAR2 DEFAULT 'PREDICTION',
      score_criterion_column_name  IN VARCHAR2 DEFAULT 'PROBABILITY',
      num_quantiles                IN NUMBER DEFAULT 10,
      cost_matrix_table_name       IN VARCHAR2 DEFAULT NULL,
      apply_result_schema_name     IN VARCHAR2 DEFAULT NULL,
      target_schema_name           IN VARCHAR2 DEFAULT NULL,
      cost_matrix_schema_name      IN VARCHAR2 DEFAULT NULL);

パラメータ

表25-10 COMPUTE_LIFTプロシージャのパラメータ

パラメータ 説明

apply_result_table_name

テスト・データセットに対するAPPLY操作の結果を保存した表の名前(「使用上の注意」を参照)。

target_table_name

ケースID列値およびターゲット列値のみが定義された表またはビューの名前(「使用上の注意」を参照)。

case_id_column_name

テスト・データセット内のケースID列の名前。 この名前はターゲット表と適用結果表で共通の名前にする必要があります。

target_column_name

ターゲット列の名前。

lift_table_name

リフト表が格納される表の名前。

positive_target_value

正数のターゲット値。 ターゲット列がNUMBER型である場合は、TO_CHAR()演算子を使用して数値を文字列に変換します。

score_column_name

適用結果表の中でスコアを示す列の名前。 APPLYによって作成される固定スキーマ表では、この列の名前がデフォルトでPREDICTIONになります。

score_criterion_column_name

適用結果表内のスコアのランキング係数を表す列の名前。 APPLYによって分類モデル用に作成される固定スキーマ表では、この列の名前がデフォルトでPROBABILITYになります。 この列は、数値タイプである必要があります。

num_quantiles

リフト表に必要なクオンタイル数。

cost_matrix_table_name

コスト・マトリックス表の名前。

apply_result_schema_name

APPLYの適用結果表に適用されるスキーマの名前。

target_schema_name

ターゲット表に適用されるスキーマの名前。

cost_matrix_schema_name

コスト・マトリックス表に適用されるスキーマの名前。


使用上の注意

このプロシージャへのオプションの入力パラメータとしてコスト・マトリックスを指定すると、予測のコストを反映した結果が得られます。

COMPUTE_LIFTに入力するデータは、必ずしもAPPLYを使用して作成する必要がないことに十分注意してください。 2つの入力表のスキーマがこの項で説明した仕様に一致し、スキーマの内容が適正であれば、このプロシージャを使用してリフト表を取得できます。 出力結果の質はデータの質に依存します。

分類モデルのテストに使用するデータは、CREATE_MODELに渡したデータと比較した場合に、スキーマ定義および関連属性が一致する必要があります。 CREATE_MODELの入力として指定したデータが前処理されていた場合は、APPLYへの入力データも、その作成前処理で使用したビニング表と同じビニング表を使用して、前処理する必要があります。

COMPUTE_LIFTプロシージャを使用する前に、テスト・データから2種類のデータ入力ストリームを準備する必要があります。

最初に、テスト・データにモデルを適用(APPLY)します。 COMPUTE_LIFTプロシージャのapply_result_table_nameパラメータには、APPLY操作の結果としてスキーマ内に作成される表の名前を指定します。

次に、ケースID列とターゲット列のみがスキーマ内で定義された表またはビューを作成します。 target_table_nameパラメータには、このような表またはビューの名前を指定します。 ターゲット属性が数値である場合、このような表またはビューの定義は次のようになります。

(case_identifier_column_name  VARCHAR2/NUMBER,
target_column_name             NUMBER)

ターゲット属性がカテゴリである場合、このような表またはビューの定義は次のようになります。

(case_identifier_column_name  VARCHAR2/NUMBER,
target_column_name            NUMBER)

ユーザーは、リフト表が格納される表の名前を指定する必要があります。 この固定スキーマ表は常に、モデルを所有するスキーマ内に作成されます。

出力のリフト表の定義は、次のようになります。

(quantile_number               NUMBER,
 probability_threshold         NUMBER,
 gain_cumulative               NUMBER,
 quantile_total_count          NUMBER,
 quantile_target_count         NUMBER,
 percent_records_cumulative    NUMBER,
 lift_cumulative               NUMBER,
 target_density_cumulative     NUMBER,
 targets_cumulative            NUMBER,
 non_targets_cumulative        NUMBER,
 lift_quantile                 NUMBER,
 target_density                NUMBER)

COMPUTE_LIFTプロシージャにコスト・マトリックスが渡されると、probability_threshold列にコストしきい値が戻されます。

出力列については、『Oracle Data Mining概要』を参照してください。

この例では、Naive Bayesアルゴリズムを使用して、census_modelという分類モデルを事前に作成していると想定します。テスト・データは、census_2d_testという表(ケースID列の名前はperson_id、ターゲット列の名前はclass)に保存されています。

DECLARE
  v_sql_stmt VARCHAR2(4000);
BEGIN

/* apply the model census_model on test data */
DBMS_DATA_MINING.APPLY(
  model_name           => 'census_model',
  data_table_name      => 'census_2d_test,
  case_id_column_name  => 'person_id',
  result_table_name    => 'census_test_result');

/* next create a view from test data that projects
 * only the case identifier and target column
 */

/* now compute lift with the default 10 quantiles
 * from the two data streams
 */
DBMS_DATA_MINING.COMPUTE_LIFT (
  apply_result_table_name   => 'census_test_result',
  target_table_name         => 'census_2d_test_view',
  case_id_column_name       => 'person_id',
  target_column_name        => 'class',
  lift_table_name           => 'census_lift',
  positive_target_value     => '1',
  cost_matrix_table_name    => 'census_cost_matrix');
END;
/

-- View the lift table contents using SQL
SELECT *
  FROM census_lift;

COMPUTE_ROCプロシージャ

このプロシージャは、バイナリ分類モデルのROC(受信者操作特性)を計算します。 ROC(受信者操作特性)については、『Oracle Data Mining概要』を参照してください。

COMPUTE_ROCプロシージャを実行する前に、次の操作を実行します。

この表またはビューおよび適用結果表は、プロシージャの入力として指定します。

構文

DBMS_DATA_MINING.COMPUTE_ROC (
      roc_area_under_curve         OUT NUMBER,
      apply_result_table_name      IN  VARCHAR2,
      target_table_name            IN  VARCHAR2,
      case_id_column_name          IN  VARCHAR2,
      target_column_name           IN  VARCHAR2,
      roc_table_name               IN  VARCHAR2,
      positive_target_value        IN  VARCHAR2,
      score_column_name            IN  VARCHAR2 DEFAULT 'PREDICTION',
      score_criterion_column_name  IN  VARCHAR2 DEFAULT 'PROBABILITY',
      apply_result_schema_name     IN  VARCHAR2 DEFAULT NULL,
      target_schema_name           IN  VARCHAR2 DEFAULT NULL);

パラメータ

表25-11 COMPUTE_ROCプロシージャのパラメータ

パラメータ 説明

roc_area_under_the_curve

モデルの精度(相対するクラスから無作為に選択した行のペアがモデルによって正しくランキングされる確率)。

apply_result_table_name

テスト・データセットに対するAPPLY操作の結果を保存した表の名前(「使用上の注意」を参照)。

target_table_name

テスト・データのケースIDおよびターゲット値を保存した表またはビューの名前 (「使用上の注意」を参照)。

case_id_column_name

テスト・データセット内のケースID列の名前。 この名前はターゲット表と適用結果表で共通の名前にする必要があります。

target_column_name

ターゲット列の名前。

roc_table_name

ROCの結果が格納される表の名前。 詳細は、表25-12「COMPUTE_ROCの出力」を参照してください。

positive_target_value

正数のターゲット値。 ターゲット列がNUMBER型である場合は、TO_CHAR()演算子を使用して数値を文字列に変換します。

score_column_name

適用結果表の中でスコアを示す列の名前。 APPLYによって作成される固定スキーマ表では、この列の名前がデフォルトでPREDICTIONになります。

score_criterion_column_name

適用結果表内のスコアのランキング係数を表す列の名前。 APPLYによって分類モデル用に作成される固定スキーマ表では、この列の名前がデフォルトでPROBABILITYになります。 この列の値は数値で表現する必要があります。

apply_result_schema_name

APPLYの適用結果表に適用されるスキーマの名前。

target_schema_name

ターゲット表に適用されるスキーマの名前。


使用上の注意

COMPUTE_ROCに入力するデータは、必ずしもAPPLYを使用して作成する必要がないことに十分注意してください。 2つの入力表のスキーマがこの項で説明した仕様に一致し、スキーマの内容が適正であれば、このプロシージャを使用してROC表を取得できます。 出力結果の質はデータの質に依存します。

分類モデルのテストに使用するデータは、CREATE_MODELに渡したデータと比較した場合に、スキーマ定義および関連属性が一致する必要があります。 CREATE_MODELに入力として渡したデータが前処理されていた場合は、CREATE_MODELデータの前処理に関する統計情報に基づき、APPLYへの入力データも前処理する必要があります。

COMPUTE_ROCプロシージャを使用する前に、テスト・データから2種類のデータ入力ストリームを準備する必要があります。

最初に、テスト・データにモデルを適用(APPLY)します。 COMPUTE_ROCプロシージャのapply_result_table_nameパラメータには、APPLY操作の結果として自分のスキーマ内に作成される表の名前を指定します。

次に、テスト・データのケースIDおよびターゲット値のみが含まれる表またはビューを作成します。 この表を、target_table_nameパラメータに指定します。 ターゲット属性が数値である場合、この表の列は次のようになります。

case_identifier_column_name  VARCHAR2/NUMBER,
target_column_name           NUMBER

ターゲット属性がカテゴリである場合、この表の列は次のようになります。

case_identifier_column_name  VARCHAR2/NUMBER,
target_column_name           VARCHAR2

ユーザーは、ROC表が格納される表の名前を指定する必要があります。 この表は、常にモデルを所有するスキーマ内に作成され、常に次の列があります。

(probability              NUMBER,
 true_positives           NUMBER,
 false_negatives          NUMBER,
 false_positives          NUMBER,
 true_negatives           NUMBER,
 true_positive_fraction   NUMBER,
 false_positive_fraction  NUMBER)

表25-12に、出力列を示します。

表25-12 COMPUTE_ROCの出力

出力列 説明

probability

ポジティブ・クラスに属すると予測されるポジティブ・クラス確率の最小値。 しきい値が異なると、ヒット率とfalse_alarm_ratesが異なる値になります。

true_negatives

テスト・データ内のネガティブ・ケースのうち、予測確率がprobability_thresholdを下回る(正しく予測された)ネガティブ・ケース。

true_positives

テスト・データ内のポジティブ・ケースのうち、予測確率がprobability_thresholdを上回る(正しく予測された)ポジティブ・ケース。

false_negatives

テスト・データ内のポジティブ・ケースのうち、予測確率がprobability_thresholdを下回る(正しく予測されていない)ポジティブ・ケース。

false_positives

テスト・データ内のネガティブ・ケースのうち、予測確率がprobability_thresholdを上回る(正しく予測されていない)ネガティブ・ケース。

true_positive_fraction

true_positives/(true_positives + false_negatives)

false_positive_fraction

false_positives/(false_positives + true_negatives)


これらの出力列の代表的な使用方法は、true_positive_fractionの値とfalse_positive_fractionの値を調べて、最適な確率しきい値(probability_threshold)を決定することです。 次に、この確率しきい値を使用して、以降の適用操作でクラス値を予測します。 たとえば、特定のprobability_thresholdが前提条件として与えられたときに、確率ランク順序内で肯定的に予測されたケースを適用結果表から取り出すには、次のようなSQL文を使用します。

select case_id_column_name from apply_result_table_name where probability > probability_threshold order by probability DESC;

最適な確率しきい値(probability_threshold)を決定するには、次の2通りの方法があります。 最初の方法は、ポジティブ・クラスとネガティブ・クラスを誤って予測した場合の相対コストが事前に判明しているときに適用できます。 2番目の方法は、そのような相対コストが明確にわかっていない場合に適用します。 最初の方法では、相対コストをROC表に適用して、相対コストが最小になるprobability_thresholdを計算します。 たとえば、相対コスト比率が20(ポジティブ・クラスの誤りコスト / ネガティブ・クラスの誤りコスト = 20)である場合は、次のような問合せを実行します。

WITH cost AS (
  SELECT probability_threshold, 20 * false_negatives + false positives cost
    FROM ROC_table
  GROUP BY probability_threshold),
    minCost AS (
      SELECT min(cost) minCost
        FROM cost)
      SELECT max(probability_threshold)probability_threshold
        FROM cost, minCost
    WHERE cost = minCost;

相対コストが明確にわかっていない場合は、ROC表のすべての値を確率しきい値の昇順に並べ替えて表示し、表示されたトレードオフ(誤って分類されたポジティブ・クラスとネガティブ・クラスの比率)のうち、どのトレードオフ値が最適であるのかを判断します。

select * from ROC_table order by probability_threshold

この例では、SVMアルゴリズムを使用して、census_modelという分類モデルを事前に作成していると想定します。テスト・データは、census_2d_testという表(ケースID列の名前はperson_id、ターゲット列の名前はclass)に保存されています。

DECLARE
  v_sql_stmt VARCHAR2(4000);
  v_accuracy NUMBER;
BEGIN

/* apply the model census_model on test data */
DBMS_DATA_MINING.APPLY(
  model_name           => 'census_model',
  data_table_name      => 'census_2d_test',
  case_id_column_name  => 'person_id',
  result_table_name    => 'census_test_result');

/* next create a view from test data that projects
 * only the case identifier and target column
 */
v_sql_stmt :=
'CREATE VIEW census_2d_test_view AS ' ||
'SELECT person_id, class FROM census_2d_test';
EXECUTE IMMEDIATE v_sql_stmt;

/* now compute the receiver operating characterestics from
 * the two data streams, also providing a cost matrix
 * as input.
 */
DBMS_DATA_MINING.COMPUTE_ROC (
  accuracy                 => v_accuracy,
  apply_result_table_name  => 'census_test_result',
  target_table_name        => 'census_2d_test_view',
  case_id_column_name      => 'person_id',
  target_column_name       => 'class',
  roc_table_name           => 'census_roc',
  cost_matrix_table_name   => 'census_cost_matrix');
END;
/

-- View the ROC results using Oracle SQL
SELECT *
  FROM census_roc;

CREATE_MODELプロシージャ

このプロシージャは、特定のマイニング機能用のマイニング・モデルを作成します。

構文

DBMS_DATA_MINING.CREATE_MODEL (
      model_name            IN VARCHAR2,
      mining_function       IN VARCHAR2,
      data_table_name       IN VARCHAR2,
      case_id_column_name   IN VARCHAR2,
      target_column_name    IN VARCHAR2 DEFAULT NULL,
      settings_table_name   IN VARCHAR2 DEFAULT NULL,
      data_schema_name      IN VARCHAR2 DEFAULT NULL,
      settings_schema_name  IN VARCHAR2 DEFAULT NULL);

パラメータ

表25-13 CREATE_MODELプロシージャのパラメータ

パラメータ 説明

model_name

モデルの名前。 詳細は、「モデル名」を参照してください。

mining_function

マイニング機能を表す定数。 詳細は、「マイニング機能を指定する定数」を参照してください。

data_table_name

トレーニング・データが保存された表またはビューの名前。

case_id_column_name

ケースID列の名前。

target_column_name

ターゲット列の名前。記述モデルおよび1クラスSVMモデルの場合はNULLです。

settings_table_name

マイニング機能の設定およびアルゴリズムの設定が保存された表またはビューの名前。

data_schema_name

トレーニング・データに適用されるスキーマの名前。

settings_schema_name

設定表/設定ビューに適用されるスキーマの名前。


使用上の注意

以降のすべての操作(APPLYなど)に渡すデータは、CREATE_MODELに渡したデータと比較した場合に、スキーマ定義および関連属性が一致する必要があります。 CREATE_MODELに入力として渡したデータが前処理されていた場合は、CREATE_MODELデータの前処理に関する統計情報に基づき、以降のすべての操作(APPLYなど)に渡す入力データも前処理する必要があります。 ケースID列は、CREATE_MODELによる処理時にマイニング属性とみなされません。

各アルゴリズムのデフォルト設定を表示するには、GET_DEFAULT_SETTINGSを使用します。 マイニング・アルゴリズムのデフォルト設定を変更するには、目的のアルゴリズムの名前と、そのアルゴリズムのデフォルト設定を上書きする値を指定した設定表を作成します。

モデルの作成が完了した後、GET_MODEL_SIGNATUREを使用して、モデルの作成に使用された属性に関する情報を取得できます。 モデルの内容を検証または確認するには、各アルゴリズムに固有のGET_MODEL_DETAILSファンクションを使用します。

CREATE_MODELの動作は、SQL DDL CREATEの動作と似ています。 CREATE_MODELの実行中には、RENAME_MODELおよびDROP_MODELはブロックされ実行できません。


注意:

CREATE_MODELを実行すると、所有者のスキーマ内に複数の表が作成され、特定のアルゴリズムのマイニング・モデルを形成する情報やパターンが格納されます。これらの表の名前には、DM$という接頭辞が付きます。 システム表の個数、スキーマ、内容などはオラクル固有の情報であり、リリースごとに変更される可能性があります。 これらのシステム表に対して問合せや更新を実行しないでください。

最初の例では、サポート・ベクター・マシン・アルゴリズムを使用して分類モデルを作成します。

/* prepare a settings table to override default
 * settings (Naive Bayes is the default classifier)
 */
CREATE TABLE census_settings (
  setting_name  VARCHAR2(30),
  setting_value VARCHAR2(128));

BEGIN
/* indicate that SVM is the chosen classifier */
INSERT INTO census_settings VALUES (
DBMS_DATA_MINING.ALGO_NAME, DBMS_DATA_MINING.ALGO_SUPPORT_VECTOR_MACHINES);

/* override the default value for complexity factor */
INSERT INTO census_settings (setting_name, setting_value)
VALUES (dbms_data_mining.svms_complexity_factor, TO_CHAR(0.081));
COMMIT;

/* build a model with name census_model */
DBMS_DATA_MINING.CREATE_MODEL(
  model_name           => 'census_model',
  mining_function      => DBMS_DATA_MINING.CLASSIFICATION,
  data_table_name      => 'census_2d_build',
  case_id_column_name  => 'person_id',
  target_column_name   => 'class',
  settings_table_name  => 'census_settings');
END;
/

類似したコードを使用して、1クラスSVMモデルを作成します。 主な違いは、ターゲット列が空であることです。

/* prepare a settings table to override default
 * settings (Naive Bayes is the default classifier)
 */
CREATE TABLE census_settings (
  setting_name  VARCHAR2(30),
  setting_value VARCHAR2(128));

BEGIN
/* indicate that SVM is the chosen classifier */
INSERT INTO census_settings VALUES (
DBMS_DATA_MINING.ALGO_NAME, DBMS_DATA_MINING.ALGO_SUPPORT_VECTOR_MACHINES);

/* override the default value for outlier rate */
INSERT INTO census_settings (setting_name, setting_value)
VALUES (dbms_data_mining.svms_outlier_rate, TO_CHAR(0.05));
COMMIT;

/* build a model with name census_model */
DBMS_DATA_MINING.CREATE_MODEL(
  model_name           => 'census_model',
  mining_function      => DBMS_DATA_MINING.CLASSIFICATION,
  data_table_name      => 'census_2d_build',
  case_id_column_name  => 'person_id',
  target_column_name   => NULL,
  settings_table_name  => 'census_settings');
END;
/

DROP_MODELプロシージャ

このプロシージャは、ユーザーのスキーマから既存のマイニング・モデルを削除します。

構文

DBMS_DATA_MINING.DROP_MODEL (model_name IN VARCHAR2);

パラメータ

表25-14 DROP_MODELプロシージャのパラメータ

パラメータ 説明

model_name

モデルの名前。


使用上の注意

DROP_MODELを使用すると、既存のマイニング・モデルを削除できます。

DROP_MODELの動作は、SQL DDL DROPの動作と似ています。 DROP_MODELの実行中には、RENAME_MODELおよびCREATE_MODELはブロックされ実行できません。 一方、APPLYでは、SQL問合せと同様にモデル・データは更新されないため、DROP_MODEの実行中でもAPPLYを実行できます。

ただし、APPLYでモデルを使用しているときに、そのモデルを削除すると、DROP操作は成功しますが、APPLYからは不確定な結果が戻されます。 この動作は、DDL操作によって問合せ操作がブロックされないというRDBMSの標準的な動作に準拠しています。

census_modelというモデルがあるとします。 次の例は、このモデルの削除方法を示しています。

BEGIN
  DBMS_DATA_MINING.DROP_MODEL(model_name => 'census_model');
END;
/

EXPORT_MODELプロシージャ

このプロシージャは、指定されたデータ・マイニング・モデルをダンプ・ファイル・セットにエクスポートします。 ダンプ・ファイル・セットからのインポートは、IMPORT_MODELプロシージャを使用して行うことができます。 EXPORT_MODELIMPORT_MODELの両方で、Oracle Data Pumpテクノロジが使用されています。


関連項目:

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

構文

DBMS_DATA_MINING.EXPORT_MODEL (
      filename          IN VARCHAR2,
      directory         IN VARCHAR2,
      model_filter      IN VARCHAR2 DEFAULT NULL,
      filesize          IN VARCHAR2 DEFAULT NULL,
      operation         IN VARCHAR2 DEFAULT NULL,
      remote_link       IN VARCHAR2 DEFAULT NULL,
      jobname           IN VARCHAR2 DEFAULT NULL);

パラメータ

表25-15 EXPORT_MODELプロシージャのパラメータ

パラメータ 説明

filename

モデルのエクスポート先のダンプ・ファイル・セットの名前。 この名前は、スキーマ内で一意である必要があります。

ダンプ・ファイル・セットには1つ以上のファイルを保存できます。 ファイルの個数は、エクスポートするモデルのサイズ(メタデータとデータの両方)および指定した(または推定された)最大ファイル・サイズによって決まります。 ファイル・サイズは、filesizeパラメータで指定できます。また、operationパラメータを使用して、Oracle Data Pumpでファイル・サイズを推定することもできます。 エクスポートするモデルのサイズが最大ファイル・サイズより大きい場合は、1つ以上の追加ファイルが作成されます。

エクスポート操作が正常に終了すると、ダンプ・ファイル・セット内にファイルが1つしか存在しない場合でも、ダンプ・ファイル・セットの名前が自動的にfilename01.dmpという形式に拡張されます。 追加ファイルがある場合は、filename02.dmpfilename03.dmpのように連続したファイル名が使用されます。

directory

ダンプ・ファイル・セットの作成場所を指定する、事前定義済のディレクトリ・オブジェクトの名前。

このディレクトリ・オブジェクト、およびこのディレクトリ・オブジェクトによって指定されるファイル・システム・ディレクトリに対する読取り/書込み権限が必要です。

model_filter

エクスポートするモデルを指定するパラメータ(オプション)。 model_filterの値を指定しない場合は、スキーマ内のすべてのモデルがエクスポートされます。 また、NULL(デフォルト)または'ALL'を指定しても、すべてのモデルをエクスポートできます。

名前に基づいて個々のモデルをエクスポートできます。また、同じ特性を持つモデルのグループをエクスポートすることもできます。 たとえば、すべてのNaive Bayesモデル、または同じターゲット属性を使用するすべてのモデルをエクスポートできます。 詳細は、「使用上の注意」を参照してください。 例は、表25-16を参照してください。

filesize

ダンプ・ファイル・セット内のファイルの最大サイズを指定するパラメータ(オプション)。 サイズは、バイト単位、キロバイト単位(KB)、メガバイト単位(MB)、ギガバイト単位(GB)で指定可能です。 デフォルトのサイズは50MBです。

エクスポートするモデルのサイズがfilesizeより大きい場合は、ダンプ・セット内に1つ以上の追加ファイルが作成されます。 詳細は、filenameパラメータの説明を参照してください。

operation

ダンプ・ファイル・セット内のファイルのサイズを推定するかどうかを指定するパラメータ(オプション)。 デフォルトでは、ファイルのサイズは推定されず、filesizeパラメータの値によって決まります。

operationには、次のいずれかの値を指定できます。

  • 'EXPORT': すべてのモデルまたは指定したモデルをエクスポートします (デフォルト)。

  • 'ESTIMATE': エクスポートするモデルのサイズを推定します。

remote_link

このリリースでは使用されないパラメータ(オプション)。 NULLに設定します。

jobname

エクスポート・ジョブの名前を指定するパラメータ(オプション)。 デフォルトでは、username_exp_nnnnという形式の名前になります(nnnnは数字です)。 たとえば、SCOTTスキーマ内のジョブ名は、SCOTT_exp_134のようになります。

ジョブ名を指定する場合は、スキーマ内で一意の名前を指定する必要があります。 ジョブ名の最大長は30文字です。

エクスポート・ジョブのログ・ファイルが、jobname.logという名前で、ダンプ・ファイル・セットと同じディレクトリに作成されます。


使用上の注意

エクスポートするモデルは、model_filterパラメータで指定します。 モデルは、名前に基づいて指定できます。また、同じ特性を持つモデルの集合を指定することもできます。 名前に基づいてモデルを指定する場合は、1つのモデル名を指定するか、または複数のモデル名をカンマで区切って指定します。 同じ特性を持つモデルの集合を指定する場合は、DM_USER_MODELSビューに対する問合せのWHERE句を完成する条件式を使用します。 DM_USER_MODELSには、現行のスキーマ内のモデルが表示されます。 次の列が表示されます。

 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 NAME                                      NOT NULL VARCHAR2(25)
 FUNCTION_NAME                                      VARCHAR2(30)
 ALGORITHM_NAME                                     VARCHAR2(30)
 CREATION_DATE                                      DATE
 BUILD_DURATION                                     NUMBER
 TARGET_ATTRIBUTE                                   VARCHAR2(30)
 MODEL_SIZE                                         NUMBER

DM_USER_MODELSの列については、「ユーザー・ビュー」を参照してください。

model_filterの条件式を作成するには、列名、サポートされている条件演算子、および値を指定します。 サポートされている条件演算子には、<<===>>LIKEおよびINがあります。 条件演算子およびWHERE句については、『Oracle Database SQLリファレンス』を参照してください。

表25-16に、モデル・フィルタの例を示します。

表25-16 モデル・フィルタ・パラメータのサンプル値

サンプル値 意味

'mymodel'

mymodelという名前のモデルをエクスポートします。

'mymodel2, mymodel3'

mymodel2およびmymodel3という名前のモデルをエクスポートします。

'name= ''mymodel'''

mymodelという名前のモデルをエクスポートします。

'name IN (''mymodel2'',''mymodel3'')'

mymodel2およびmymodel3という名前のモデルをエクスポートします。

'name LIKE ''AI%'''

名前がAIで始まるすべてのモデルをエクスポートします。

'ALGORITHM_NAME = ''NAIVE_BAYES'''

すべてのNaive Bayesモデルをエクスポートします。 アルゴリズム名のリストについては、表25-2を参照してください。

'FUNCTION_NAME =''CLASSIFICATION'''

すべての分類モデルをエクスポートします。 マイニング機能のリストについては、表25-1を参照してください。


次の文では、DMUSER3スキーマ内のすべてのモデルが、$ORACLE_HOME/rdbms/logディレクトリのmodels_outというダンプ・ファイル・セットにエクスポートされます。 このディレクトリは、DATA_PUMP_DIRというディレクトリ・オブジェクトにマップされています。 DMUSER3ユーザーには、このディレクトリおよびディレクトリ・オブジェクトへの読取り/書込みアクセス権があります。

SQL>execute dbms_data_mining.export_model ('models_out', 'DATA_PUMP_DIR');

SQL*Plusを終了し、作成されたダンプ・ファイルおよびログ・ファイルを表示できます。

SQL>exit
>cd $ORACLE_HOME/rdbms/log
>ls
>DMUSER3_exp_1027.log  models_out01.dmp

次の例は、同じディレクトリ・オブジェクトを使用し、同じユーザーによって実行されます。 NMF_SH_SAMPLEというモデルおよびSVMR_SH_REGR_SAMPLEというモデルが、同じディレクトリ内の別々のダンプ・ファイル・セットにエクスポートされます。

SQL>execute dbms_data_mining.export_model ( 'models2_out', 'DATA_PUMP_DIR',
            'name in (''NMF_SH_SAMPLE'', ''SVMR_SH_REGR_SAMPLE'')');
SQL>exit
>cd $ORACLE_HOME/rdbms/log
>ls
>DMUSER3_exp_1027.log  models_out01.dmp
 DMUSER3_exp_924.log  models2_out01.dmp

次の例では、同じディレクトリ・オブジェクトとスキーマを使用して、ターゲットがAFFINITY_CARDであるモデルがすべてエクスポートされます。

SQL>execute dbms_data_mining.export_model ('models050402_out',
                 'DATA_PUMP_DIR', 'target_attribute = ''AFFINITY_CARD''',
                 '1M', 'EXPORT', NULL, 'models050402_job');
SQL>exit
>cd $ORACLE_HOME/rdbms/log
>ls
>DMUSER3_exp_1027.log  models_out01.dmp
 DMUSER3_exp_924.log   models2_out01.dmp
 models050402_job.log  models050402_out01.dmp   models050402_out02.dmp

GET_ASSOCIATION_RULESファンクション

このテーブル・ファンクションは、ルールを表す行の集合を相関モデルから戻します。

フィルタ条件を指定して、ルールのサブセットをGET_ASSOCIATION_RULESから戻すことができます。 このテーブル・ファンクションのパフォーマンスは、フィルタ条件によって向上させることができます。 ルールの数が多い場合は、topnパラメータを指定するとパフォーマンスが最適化されます。

構文

DBMS_DATA_MINING.GET_ASSOCIATION_RULES (
   model_name            IN VARCHAR2,
   topn                  IN NUMBER DEFAULT NULL,
   rule_id               IN INTEGER DEFAULT NULL,
   min_confidence        IN NUMBER DEFAULT NULL,
   min_support           IN NUMBER DEFAULT NULL,
   max_rule_length       IN INTEGER DEFAULT NULL,
   min_rule_length       IN INTEGER DEFAULT NULL,
   sort_order            IN DMSYS.ORA_MINING_VARCHAR2_NT DEFAULT NULL,
   antecedent_items      IN DYSYS.ORA_MINING_VARCHAR2_NT DEFAULT NULL,
   consequent_items      IN DYSYS.ORA_MINING_VARCHAR2_NT DEFAULT NULL)
 RETURN DM_RULES PIPELINED;

パラメータ

表25-17 GET_ASSOCIATION_RULESファンクションのパラメータ

パラメータ 説明

model_name

モデルの名前。 GET_ASSOCIATION_RULESの必須パラメータはこれのみです。 他のすべてのパラメータは、戻すルールのフィルタをオプションで設定します。

topn

まず信頼度、次にサポート値に基づいて降順でルールを並べ、上位n個のルールを戻します。 ソート順序を指定すると、そのソートの実行後に上位n個のルールが導出されます。

topnが指定され、ルールの最大長も最小長も指定されていない場合、ソート順序に指定できる列はRULE_CONFIDENCEおよびRULE_SUPPORTのみです。 topnが指定され、ルールの最大長または最小長が指定されている場合は、RULE_CONFIDENCERULE_SUPPORTおよびNUMBER_OF_ITEMSをソート順序に指定できます。

rule_id

戻すルールの識別子。 rule_idの値を指定する場合は、他のフィルタ・パラメータの値は指定しないでください。

min_confidence

この数値以上の信頼度を持つルールを戻します。

min_support

この数値以上のサポート値を持つルールを戻します。

max_rule_length

この数値以下の長さを持つルールを戻します。

ルールの長さとは、ルール内の項目数のことです(表25-18の「NUMBER_OF_ITEMS」を参照)。 たとえば、ルールA=>B(AならばB)の項目の数は2です。

max_rule_lengthが指定されている場合は、ソート順序にNUMBER_OF_ITEMSを指定できます。

min_rule_length

この数値以上の長さを持つルールを戻します。 ルールの長さについては、「max_rule_length」を参照してください。

min_rule_lengthが指定されている場合は、ソート順序にNUMBER_OF_ITEMSを指定できます。

sort_order

戻される1つ以上の列の値に基づいてルールをソートします。 列名の後にASC(昇順)またはDESC(降順)を追加して、1つ以上の列名を指定します。

たとえば、結果セットを、まずNUMBER_OF_ITEMS列に基づいて降順でソートし、次にRULE_CONFIDENCE列に基づいて降順でソートする場合は、次のように指定します。

DMSYS.ORA_MINING_VARCHAR2_NT('NUMBER_OF_ITEMS DESC', 'RULE_CONFIDENCE DESC')

topnを指定した場合、結果はソート順序によって変わります。

デフォルトでは、結果は、まず信頼度に基づいて降順でソートされ、次にサポート値に基づいて降順でソートされます。

詳細は、例を参照してください。

antecedent_items

これらの項目が前件にあるルールを戻します。 詳細は、例を参照してください。

consequent_items

この項目が後件にあるルールを戻します。 詳細は、例を参照してください。


戻り値

表25-18 GET_ASSOCIATION RULESファンクションの戻り値

戻り値 説明

DM_RULES

DM_RULE型の行の集合。 この行には、次の列があります。

(rule_id              INTEGER,
 antecedent           DM_PREDICATES,
 consequent           DM_PREDICATES,
 rule_support         NUMBER,
 rule_confidence      NUMBER,
 antecedent_support   NUMBER,
 consequent_support   NUMBER,
 number_of_items      INTEGER )

antecedent列およびconsequent列は、それぞれDM_PREDICATES型のネストした表を戻します。その行(DM_PREDICATE型)には、次の列があります。

     (attribute_name            VARCHAR2(30),
      conditional_operator      CHAR(2)/*=,<>,<,>,<=,>=*/,
      attribute_num_value       NUMBER,
      attribute_str_value       VARCHAR2(4000),
      attribute_support         NUMBER,
      attribute_confidence      NUMBER)

使用上の注意

このテーブル・ファンクションは、DM_RULES型の行をパイプライン出力します。 ODMのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。

DMSYS.ORA_MINING_VARCHAR2_NT型は、VARCHAR2(4000)の表として定義されます。

次の例では、相関モデルを作成した後、テーブル・ファンクションGET_ASSOCIATION_RULESを数回コールしています。

-- prepare a settings table to override default settings
CREATE TABLE market_settings AS
SELECT *
  FROM TABLE(DBMS_DATA_MINING.GET_DEFAULT_SETTINGS)
 WHERE setting_name LIKE 'ASSO_%';
BEGIN
-- update the value of the minimum confidence
UPDATE census_settings
   SET setting_value = TO_CHAR(0.081)
 WHERE setting_name = DBMS_DATA_MINING.asso_min_confidence;

-- build an AR model
DBMS_DATA_MINING.CREATE_MODEL(
  model_name => 'market_model',
  function => DBMS_DATA_MINING.ASSOCIATION,
  data_table_name => 'market_build',
  case_id_column_name => 'item_id',
  target_column_name => NULL,
  settings_table_name => 'census_settings');
END;
/
-- View the (unformatted) rules
SELECT rule_id, antecedent, consequent, rule_support,
       rule_confidence
  FROM TABLE(DBMS_DATA_MINING.GET_ASSOCIATION_RULES('market_model'));

前述の例では、すべてのルールが表示されます。 上位20個のルールのみを表示するには、次の文を使用します。

-- View the top 20 (unformatted) rules
SELECT rule_id, antecedent, consequent, rule_support,
       rule_confidence
  FROM TABLE(DBMS_DATA_MINING.GET_ASSOCIATION_RULES('market_model', 20));

次の例では、前件に'AQUATIC'または'EGGS'があり、後件が'VENOMOUS'であるすべてのルールが戻されます。 ルールは、まずNUMBER_OF_ITEMS、次にRULE_CONFIDENCE、最後にRULE_SUPPORTに基づいて降順でソートされます。

SELECT * FROM TABLE
(    DBMS_DATA_MINING.GET_ASSOCIATION_RULES
       ('AR_Model_31', 120, NULL, 1, .51, 7,
         DMSYS.ORA_MINING_VARCHAR2_NT
          ('NUMBER_OF_ITEMS DESC', 'RULE_CONFIDENCE DESC', 'RULE_SUPPORT DESC'),
         DMSYS.ORA_MINING_VARCHAR2_NT('AQUATIC', 'EGGS'),
         DMSYS.ORA_MINING_VARCHAR2_NT('VENOMOUS')));

GET_DEFAULT_SETTINGSファンクション

このテーブル・ファンクションは、DBMS_DATA_MININGパッケージでサポートされるすべてのマイニング機能とマイニング・アルゴリズムのデフォルト設定を戻します。

構文

DBMS_DATA_MINING.GET_DEFAULT_SETTINGS
  RETURN DM_MODEL_SETTINGS PIPELINED;

戻り値

表25-19 GET_DEFAULT_SETTINGSファンクションの戻り値

戻り値 説明

DM_MODEL_SETTINGS

DM_MODEL_SETTING型の行の集合。 この行には、次の列があります。

(setting_name    VARCHAR2(30),
 setting_value   VARCHAR2(128))

使用上の注意

このテーブル・ファンクションは、DM_MODEL_SETTING型の行をパイプライン出力します。 ODMのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。

特定の機能やアルゴリズムで使用される設定がわからないときに、それらの設定の全部または一部を変更する場合は、このファンクションが特に便利です。

たとえば、k-Meansクラスタ化のすべての設定または一部の設定を変更する場合は、次の例のような設定表を作成し、必要に応じて個々の設定を更新します。

BEGIN
  CREATE TABLE mysettings AS
  SELECT *
  FROM TABLE(DBMS_DATA_MINING.GET_DEFAULT_SETTINGS)
   WHERE setting_name LIKE 'KMNS%';
  -- now update individual settings as required
  UPDATE mysettings
     SET setting_value = 0.02
   WHERE setting_name = DBMS_DATA_MINING.KMNS_MIN_PCT_ATTR_SUPPORT;
END;
/

GET_FREQUENT_ITEMSETSファンクション

このテーブル・ファンクションは、頻度の高い項目セットを表す行の集合を相関モデルから戻します。 頻度の高い項目セットの説明は、『Oracle Data Mining概要』を参照してください。

構文

DBMS_DATA_MINING.GET_FREQUENT_ITEMSETS (
    model_name        IN VARCHAR2,
    topn              IN NUMBER DEFAULT NULL)
  RETURN DM_ITEMSETS PIPELINED;

パラメータ

表25-20 GET_FREQUENT_ITEMSETSファンクションのパラメータ

パラメータ 説明

model_name

モデルの名前。

topn

NULL以外の場合は、サポート値に基づいて降順でルールを並べ、上位n個の行を戻します。


戻り値

表25-21 GET_FREQUENT_ITEMSETSファンクションの戻り値

戻り値 説明

DM_ITEMSETS

DM_ITEMSET型の行の集合。 この行には、次の列があります。

(itemsets_id      NUMBER,
items             DM_ITEMS,
support           NUMBER,
number_of_items   NUMBER)

items列は、DM_ITEMS型のネストした表を戻します。 この表には、VARCHAR2(4000)型の列が1つあり、その列には個々の項目名が含まれています。


使用上の注意

このテーブル・ファンクションは、DM_ITEMSETS型の行をパイプライン出力します。 ODMのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。

この例では、相関モデルを作成した後、Oracle SQLからテーブル・ファンクションGET_FREQUENT_ITEMSETSをコールする方法を示します。

-- prepare a settings table to override default settings
CREATE TABLE market_settings AS
    SELECT *
  FROM TABLE(DBMS_DATA_MINING.GET_DEFAULT_SETTINGS)
 WHERE setting_name LIKE 'ASSO_%';
BEGIN
-- update the value of the minimum confidence
UPDATE market_settings
   SET setting_value = TO_CHAR(0.081)
 WHERE setting_name = DBMS_DATA_MINING.asso_min_confidence;

/* build a AR model */
DBMS_DATA_MINING.CREATE_MODEL(
  model_name           => 'market_model',
  function             => DBMS_DATA_MINING.ASSOCIATION,
  data_table_name      => 'market_build',
  case_id_column_name  => 'item_id',
  target_column_name   => NULL,
  settings_table_name  => 'census_settings');
END;
/

-- View the (unformatted) Itemsets from SQL*Plus
SELECT itemset_id, items, support, number_of_items
  FROM TABLE(DBMS_DATA_MINING.GET_FREQUENT_ITEMSETS('market_model'));

前述の例では、すべての項目セットが表示されます。 上位20個の項目セットのみを表示するには、次の文を使用します。

-- View the top 20 (unformatted) Itemsets from SQL*Plus
SELECT itemset_id, items, support, number_of_items
  FROM TABLE(DBMS_DATA_MINING.GET_FREQUENT_ITEMSETS('market_model', 20));

GET_MODEL_DETAILS_ABNファンクション

このテーブル・ファンクションは、動的なベイズ・ネットワーク・モデルのディテールを表す行の集合を戻します。

構文

DBMS_DATA_MINING.GET_MODEL_DETAILS_ABN (
    model_name         IN VARCHAR2)
  RETURN DM_ABN_DETAILS PIPELINED;

パラメータ

表25-22 GET_MODEL_DETAILS_ABNファンクションのパラメータ

パラメータ 説明

model_name

モデルの名前。


戻り値

表25-23 GET_MODEL_DETAILS_ABNファンクションの戻り値

戻り値 説明

DM_ABN_DETAILS

DM_ABN_DETAIL型の行の集合。 この行には、次の列があります。

(rule_id           INTEGER,
 antecedent        DM_PREDICATES,
 consequent        DM_PREDICATES,
 rule_support      NUMBER)

DM_ABN_DETAILantecedent列およびconsequent列は、それぞれDM_PREDICATES型のネストした表を戻します。 その行(DM_PREDICATE型)には、次の列があります。

     (attribute_name          VARCHAR2(30),
      conditional_operator    CHAR(2), /*=,<>,<,>,<=,>=*/
      attribute_num_value     NUMBER,
      attribute_str_value     VARCHAR2(4000),
      attribute_support       NUMBER,
      attribute_confidence    NUMBER)

使用上の注意

このテーブル・ファンクションは、DM_ABN_DETAIL型の行をパイプライン出力します。 ODMのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。

このファンクションは、単一機能ABNモデルのみのディテールを戻します。

この例では、ABNモデルを作成した後、Oracle SQLからテーブル・ファンクションGET_MODEL_DETAILS_ABNをコールする方法を示します。

BEGIN
  -- prepare a settings table to override default algorithm and model type
  CREATE TABLE abn_settings (setting_name VARCHAR2(30),
  setting_value
VARCHAR2(128));
  INSERT INTO abn_settings VALUES (DBMS_DATA_MINING.ALGO_NAME,
    DBMS_DATA_MINING.ALGO_ADAPTIVE_BAYES_NETWORK);
  INSERT INTO abn_settings VALUES    (DBMS_DATA_MINING.ABNS_MODEL_TYPE,     DBMS_DATA_MINING.ABNS_SINGLE_FEATURE);
   COMMIT;
  -- create a model
  DBMS_DATA_MINING.CREATE_MODEL (
    model_name           => 'abn_model',
    function             => DBMS_DATA_MINING.CLASSIFICATION,
    data_table_name      => 'abn_build',
    case_id_column_name  => 'id',
    target_column_name   => NULL,
    settings_table_name  => 'abn_settings');
END;
/
-- View the (unformatted) results from SQL*Plus
SELECT *
    FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_ABN('abn_model'));

GET_MODEL_DETAILS_AIファンクション

このテーブル・ファンクションは、属性重要度モデルのディテールを表す行の集合を戻します。

構文

DBMS_DATA_MINING.GET_MODEL_DETAILS_AI (
  model_name         IN VARCHAR2)
 RETURN DM_RANKED_ATTRIBUTES PIPELINED;

パラメータ

表25-24 GET_MODEL_DETAILS_AIファンクションのパラメータ

パラメータ 説明

model_name

モデルの名前。


戻り値

表25-25 GET_MODEL_DETAILS_AIファンクションの戻り値

戻り値 説明

DM_RANKED_ATTRIBUTES

DM_RANKED_ATTRIBUTE型の行の集合。 この行には、次の列があります。

(attribute_name          VARCHAR2(30),
 importance_value        NUMBER,
 rank                    NUMBER(38))


GET_MODEL_DETAILS_KMファンクション

このテーブル・ファンクションは、k-Meansクラスタ化モデルのディテールを表す行の集合を戻します。

モデルに関する特定の情報を要求するようにGET_MODEL_DETAILS_KMの入力を指定すると、問合せのパフォーマンスが向上します。 フィルタ・パラメータを指定しない場合、GET_MODEL_DETAILS_KMはモデルに関するすべての情報を戻します。

構文

DBMS_DATA_MINING.GET_MODEL_DETAILS_KM (
          model_name         VARCHAR2,
          cluster_id         NUMBER    DEFAULT NULL,
          attribute          VARCHAR2  DEFAULT NULL,
          centroid           NUMBER    DEFAULT 1,
          histogram          NUMBER    DEFAULT 1,
          rules              NUMBER    DEFAULT 2)
RETURN DM_CLUSTERS PIPELINED;

パラメータ

表25-26 GET_MODEL_DETAILS_KMファンクションのパラメータ

パラメータ 説明

model_name

モデルの名前。

cluster_id

モデル内のクラスタのID。 指定したクラスタIDが有効な場合、そのクラスタのディテールのみが戻されます。 そうでない場合は、すべてのクラスタのディテールが戻されます。

attribute

属性の名前。 指定した属性名が有効な場合、その属性のディテールのみが戻されます。 そうでない場合は、すべての属性のディテールが戻されます。

centroid

次の値を指定できます。

  • 1 : 重心のディテールが戻されます(デフォルト)。

  • 0 : 重心のディテールは戻されません。

histogram

次の値を指定できます。

  • 1 : ヒストグラムのディテールが戻されます(デフォルト)。

  • 0 : ヒストグラムのディテールは戻されません。

rules

次の値を指定できます。

  • 2 : ルールのディテールが戻されます(デフォルト)。

  • 1 : ルールの要約が戻されます。

  • 0 : ルールに関する情報は戻されません。


戻り値

表25-27 GET_MODEL_DETAILS_KMファンクションの戻り値

戻り値 説明

DM_CLUSTERS

DM_CLUSTER型の行の集合。 この行には、次の列があります。

(id                   INTEGER,
 record_count         NUMBER,
 parent               NUMBER,
 tree_level           NUMBER,
 dispersion           NUMBER,
 split_predicate      DM_PREDICATES,
 child                DM_CHILDREN,
 centroid             DM_CENTROIDS,
 histogram            DM_HISTOGRAMS,
 rule                 DM_RULE)

DM_CLUSTERsplit_predicate列は、DM_PREDICATES型のネストした表を戻します。 各行(DM_PREDICATE型)には、次の列があります。

     (attribute_name           VARCHAR2(30),
      conditional_operator     CHAR(2) /*=,<>,<,>,<=,>=*/,
      attribute_num_value      NUMBER,
      attribute_str_value      VARCHAR2(4000),
      attribute_support        NUMBER,
      attribute_confidence     NUMBER)

DM_CLUSTERchild列は、DM_CHILDREN型のネストした表を戻します。 DM_CHILD型の行には、NUMBER型の列が1つあり、その列にはそれぞれの子の識別子が含まれます。


DM_CLUSTERcentroid列は、DM_CENTROIDS型のネストした表を戻します。 その行(DM_CENTROID型)には、次の列があります。

     (attribute_name   VARCHAR2(30),
      mean             NUMBER,
      mode_value       VARCHAR2(4000),
      variance         NUMBER)

DM_CLUSTERhistogram列は、DM_HISTOGRAMS型のネストした表を戻します。 その行(DM_HISTOGRAM_BIN型)には、次の列があります。

     (attribute_name    VARCHAR2(30),
      bin_id            NUMBER,
      lower_bound       NUMBER,
      upper_bound       NUMBER,
      label             VARCHAR2(4000),
      count             NUMBER)

DM_CLUSTERrule列は、DM_RULE型の単一行を戻します。 その列は次のとおりです。

     (rule_id            INTEGER,
      antecedent         DM_PREDICATES,
      consequent         DM_PREDICATES,
      rule_support       NUMBER,
      rule_confidence    NUMBER)

DM_RULEantecedent列およびconsequent列は、それぞれDM_PREDICATES型のネストした表を戻します。 その行(DM_PREDICATE型)には、次の列があります。

          (attribute_name           VARCHAR2(30),
           conditional_operator     CHAR(2)/*=,<>,<,>,<=,>=*/,
           attribute_num_value      NUMBER,
           attribute_str_value      VARCHAR2(4000),
           attribute_support        NUMBER,
           attribute_confidence     NUMBER)

使用上の注意

このテーブル・ファンクションは、DM_CLUSTERS型の行をパイプライン出力します。 ODMのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。

この例では、k-Meansクラスタ化モデルを作成した後、Oracle SQLからテーブル・ファンクションGET_MODEL_DETAILS_KMをコールする方法を示します。

BEGIN
-- create a settings table
UPDATE cluster_settings
   SET setting_value = 3
 WHERE setting_name = DBMS_DATA_MINING.KMEANS_BLOCK_GROWTH;

/* build a k-Means clustering model */
DBMS_DATA_MINING.CREATE_MODEL(
  model_name           => 'eight_clouds',
  function             => DBMS_DATA_MINING.CLUSTERING,
  data_table_name      => 'eight_clouds_build',
  case_id_column_name  => 'id',
  target_column_name   => NULL,
  settings_table_name  => 'cluster_settings');
END;
/

-- View the (unformatted) rules from SQL*Plus
SELECT id, record_count, parent, tree_level, dispersion,
       child, centroid, histogram, rule
  FROM TABLE(DBMS_DATA_MINING_GET_MODEL_DETAILS_KM('eight_clouds'));

GET_MODEL_DETAILS_NBファンクション

このテーブル・ファンクションは、Naive Bayesモデルのディテールを表す行の集合を戻します。

構文

DBMS_DATA_MINING.GET_MODEL_DETAILS_NB (
   model_name      IN       VARCHAR2)
 RETURN DM_NB_DETAILS PIPELINED;

パラメータ

表25-28 GET_MODEL_DETAILS_NBファンクションのパラメータ

パラメータ 説明

model_name

モデルの名前。


戻り値

表25-29 GET_MODEL_DETAILS_NBファンクションの戻り値

戻り値 説明

DM_NB_DETAILS

DM_NB_DETAIL型の行の集合。 この行には、次の列があります。

(target_attribute_name          VARCHAR2(30),
 target_attribute_str_value     VARCHAR2(4000),
 target_attribute_num_value     NUMBER,
 prior_probability              NUMBER,
 conditionals                   DM_CONDITIONALS)

DM_NB_DETAILconditionals列は、DM_CONDITIONALS型のネストした表を戻します。 その行(DM_CONDITIONAL型)には、次の列があります。

     (attribute_name             VARCHAR2(30),
      attribute_str_value        VARCHAR2(4000),
      attribute_num_value        NUMBER,
      conditional_probability    NUMBER)

使用上の注意

このテーブル・ファンクションは、DM_NB_DETAILS型の行をパイプライン出力します。 ODMのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。

この例では、Naive Bayesアルゴリズムを使用して、census_modelという分類モデルを事前に作成していると想定します。 このモデルのディテールを取り出すには、次のようにします。

-- You can view the Naive Bayes model details in many ways
-- Consult the Oracle Application Developer's Guide -
-- Object-Relational Features for different ways of
-- accessing Oracle Objects.

-- View the (unformatted) details from SQL*Plus
SELECT attribute_name, attribute_num_value, attribute_str_value,
       prior_probability, conditionals,
  FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_NB('census_model');

書式化のルールは、nbdemo.sqlを参照してください。


GET_MODEL_DETAILS_NMFファンクション

このテーブル・ファンクションは、Non-Negative Matrix Factorizationモデルのディテールを表す行の集合を戻します。

構文

DBMS_DATA_MINING.GET_MODEL_DETAILS_NMF (
   model_name        IN        VARCHAR2)
 RETURN DM_NMF_FEATURE_SET PIPELINED;

パラメータ

表25-30 GET_MODEL_DETAILS_NMFファンクションのパラメータ

パラメータ 説明

model_name

モデルの名前。


戻り値

表25-31 GET_MODEL_DETAILS_NMFファンクションの戻り値

戻り値 説明

DM_NMF_FEATURE_SET

DM_NMF_FEATURE型の行の集合。 この行には、次の列があります。

(feature_id       NUMBER,
 attribute_set    DM_NMF_ATTRIBUTE_SET)

DM_NMF_FEATUREattribute_set列は、DM_NMF_ATTRIBUTE_SET型のネストした表を戻します。 その行(DM_NMF_ATTRIBUTE型)には、次の列があります。

     (attribute_name    VARCHAR2(30),
      attribute_value   VARCHAR2(4000),
      coefficient       NUMBER)

使用上の注意

このテーブル・ファンクションは、DM_NMF_FEATURE_SET型の行をパイプライン出力します。 ODMのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。

この例では、my_nmf_modelというNMFモデルを事前に作成していると想定します。 このモデルのディテールを取り出すには、次のようにします。

--View (unformatted) details from SQL*Plus
SELECT feature_id, attribute_set
FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_NMF(
        'my_nmf_model'));

GET_MODEL_DETAILS_OCファンクション

このテーブル・ファンクションは、O-Clusterクラスタ化モデルのディテールを表す行の集合を戻します。 戻り値の行集合は、モデルの作成時に生成されたクラスタ化パターンを列挙しています。

モデルに関する特定の情報を要求するようにGET_MODEL_DETAILS_OCの入力を指定すると、問合せのパフォーマンスが向上します。 フィルタ・パラメータを指定しない場合、GET_MODEL_DETAILS_OCはモデルに関するすべての情報を戻します。

構文

DBMS_DATA_MINING.GET_MODEL_DETAILS_OC (
          model_name         VARCHAR2,
          cluster_id         NUMBER    DEFAULT NULL,
          attribute          VARCHAR2  DEFAULT NULL,
          centroid           NUMBER    DEFAULT 1,
          histogram          NUMBER    DEFAULT 1,
          rules              NUMBER    DEFAULT 2)
RETURN DM_CLUSTERS PIPELINED;

パラメータ

表25-32 GET_MODEL_DETAILS_OCファンクションのパラメータ

パラメータ 説明

model_name

モデルの名前。

cluster_id

モデル内のクラスタのID。 指定したクラスタIDが有効な場合、そのクラスタのディテールのみが戻されます。 そうでない場合は、すべてのクラスタのディテールが戻されます。

attribute

属性の名前。 指定した属性名が有効な場合、その属性のディテールのみが戻されます。 そうでない場合は、すべての属性のディテールが戻されます。

centroid

次の値を指定できます。

  • 1 : 重心のディテールが戻されます(デフォルト)。

  • 0 : 重心のディテールは戻されません。

histogram

次の値を指定できます。

  • 1 : ヒストグラムのディテールが戻されます(デフォルト)。

  • 0 : ヒストグラムのディテールは戻されません。

rules

次の値を指定できます。

  • 2 : ルールのディテールが戻されます(デフォルト)。

  • 1 : ルールの要約が戻されます。

  • 0 : ルールに関する情報は戻されません。


戻り値

表25-33 GET_MODEL_DETAILS_OCファンクションの戻り値

戻り値 説明

DM_CLUSTERS

DM_CLUSTER型の行の集合。 この行には、次の列があります。

(id               INTEGER,
 record_count     NUMBER,
 parent           NUMBER,
 tree_level       NUMBER,
 dispersion       NUMBER,
 split_predicate  DM_PREDICATES,
 child            DM_CHILDREN,
 centroid         DM_CENTROIDS,
 histogram        DM_HISTOGRAMS,
 rule             DM_RULE)

DM_CLUSTERsplit_predicate列は、DM_PREDICATES型のネストした表を戻します。 各行(DM_PREDICATE型)には、次の列があります。

     (attribute_name           VARCHAR2(30),
      conditional_operator     CHAR(2) /*=,<>,<,>,<=,>=*/,
      attribute_num_value      NUMBER,
      attribute_str_value      VARCHAR2(4000),
      attribute_support        NUMBER,
      attribute_confidence     NUMBER)

DM_CLUSTERchild列は、DM_CHILDREN型のネストした表を戻します。 DM_CHILD型の行には、NUMBER型の列が1つあり、その列にはそれぞれの子の識別子が含まれます。


DM_CLUSTERcentroid列は、DM_CENTROIDS型のネストした表を戻します。 その行(DM_CENTROID型)には、次の列があります。

      (attribute_name   VARCHAR2(30)
       mean             NUMBER,
       mode_value       VARCHAR2(4000),
       variance         NUMBER)

DM_CLUSTERhistogram列は、DM_HISTOGRAMS型のネストした表を戻します。 その行(DM_HISTOGRAM_BIN型)には、次の列があります。

    (attribute_name    VARCHAR2(30),
     bin_id            NUMBER,
     lower_bound       NUMBER,
     upper_bound       NUMBER,
     label             VARCHAR2(4000),
     count             NUMBER)

DM_CLUSTERrule列は、DM_RULE型の単一行を戻します。 その列は次のとおりです。

     (rule_id           INTEGER,
      antecedent        DM_PREDICATES,
      consequent        DM_PREDICATES,
      rule_support      NUMBER,
      rule_confidence   NUMBER)

antecedent列およびconsequent列は、それぞれDM_PREDICATES型のネストした表を戻します。その行(DM_PREDICATE型)には、次の列があります。

          (attribute_name           VARCHAR2(30),
           conditional_operator     CHAR(2)/*=,<>,<,>,<=,>=*/,
           attribute_num_value      NUMBER,
           attribute_str_value      VARCHAR2(4000),
           attribute_support        NUMBER,
           attribute_confidence     NUMBER)

使用上の注意

このテーブル・ファンクションは、DM_CLUSTER型の行をパイプライン出力します。 ODMのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。

この例では、my_oc_modelというOCモデルを事前に作成していると想定します。 このモデルのディテールから情報を取り出すには、次のようにします。

--View (unformatted) details from SQL*Plus
SELECT T.id           clu_id,
       T.record_count rec_cnt,
       T.parent       parent,
       T.tree_level   tree_level
  FROM (SELECT *
          FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_OC(
                 'my_oc_model'))
        ORDER BY id) T
 WHERE ROWNUM < 11;

GET_MODEL_DETAILS_SVMファンクション

このテーブル・ファンクションは、サポート・ベクター・マシン・モデルのディテールを表す行の集合を戻します。 このテーブル・ファンクションを適用できるのは、線形カーネルを使用して作成された分類モデルまたはリグレッション・モデルに限られます。 その他のカーネルについては、ORA-40215が戻されます。

構文

DBMS_DATA_MINING.GET_MODEL_DETAILS_SVM (
  model_name      IN       VARCHAR2)
 RETURN DM_SVM_LINEAR_COEFF_SET PIPELINED;

パラメータ

表25-34 GET_MODEL_DETAILS_SVMファンクションのパラメータ

パラメータ 説明

model_name

モデルの名前。


戻り値

表25-35 GET_MODEL_DETAILS_SVMファンクションの戻り値

戻り値 説明

DM_SVM_LINEAR_COEFF_SET

DM_SVM_LINEAR_COEFF型の行の集合。 この行には、次の列があります。

(class            VARCHAR2(4000),
 attribute_set    DM_SVM_ATTRIBUTE_SET)

attribute_set列は、DM_SVM_ATTRIBUTE_SET型のネストした表を戻します。 その行(DM_SVM_ATTRIBUTE型)には、次の列があります。

     (attribute_name      VARCHAR2(30),
      attribute_value     VARCHAR2(4000),
      coefficient         NUMBER)

詳細は、「使用上の注意」を参照してください。


使用上の注意

このテーブル・ファンクションは、DM_SVM_LINEAR_COEFF型の行をパイプライン出力します。 ODMのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。

DM_SVM_LINEAR_COEFFclass列は分類ターゲット値を表します。 リグレッションのターゲットの場合、classNULLです。 分類モデルの個々の分類ターゲット値の場合は、係数の集合が戻されます。 バイナリ分類モデル、1クラス分類子モデルおよびリグレッション・モデルの場合は、係数の単一集合のみが戻されます。

ネストした表DM_SVM_ATTRIBUTE_SETattribute_value列は、カテゴリ属性で使用されます。 coefficient列は、線形係数の値です。

この例では、SVMモデルを作成した後、Oracle SQLからテーブル・ファンクションGET_MODEL_DETAILS_SVMをコールする方法を示します。

 -- Create SVM model
BEGIN
  dbms_data_mining.create_model(
    model_name           => 'SVM_Clas_sample',
    mining_function      => dbms_data_mining.classification,
    data_table_name      => 'svmc_sample_build_prepared',
    case_id_column_name  => 'id',
    target_column_name   => 'affinity_card',
    settings_table_name  => 'svmc_sample_settings');
END;
/
-- Display model details
SELECT *
  FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_SVM('SVM_Clas_sample'))
ORDER BY class;

GET_MODEL_DETAILS_XMLファンクション

このテーブル・ファンクションは、ディシジョン・ツリー・モデルのディテールを示すXMLオブジェクトを戻します。

構文

DBMS_DATA_MINING.GET_MODEL_DETAILS_XML (
  model_name      IN       VARCHAR2)
 RETURN XMLTYPE;

パラメータ

表25-36 GET_MODEL_DETAILS_XMLファンクションのパラメータ

パラメータ 説明

model_name

モデルの名前。


戻り値

表25-37 GET_MODEL_DETAILS_XMLファンクションの戻り値

戻り値 説明

XMLTYPE

ディシジョン・ツリー・モデルのPMML 2.1 XML定義。


使用上の注意

このファンクションは、ディシジョン・ツリーを表すXMLを戻します。この定義は、Data Mining Group Predictive Model Markup Language(PMML)バージョン2.1の仕様で規定されている定義です。 この仕様については、http://www.dmg.orgを参照してください。


GET_MODEL_SETTINGSファンクション

このテーブル・ファンクションは、モデルの作成に使用された設定のリストを戻します。

構文

DBMS_DATA_MINING.GET_MODEL_SETTINGS(
   model_name           IN VARCHAR2)
 RETURN DM_MODEL_SETTINGS PIPELINED;

パラメータ

表25-38 GET_MODEL_SETTINGSファンクションのパラメータ

パラメータ 説明

model_name

モデルの名前。


戻り値

表25-39 GET_MODEL_SETTINGSファンクションの戻り値

戻り値 説明

DM_MODEL_SETTINGS

DM_MODEL_SETTING型の行の集合。 この行には、次の列があります。

(setting_name    VARCHAR2(30),
setting_value    VARCHAR2(128))

使用上の注意

このテーブル・ファンクションは、DM_MODEL_SETTING型の行をパイプライン出力します。 ODMのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。

このテーブル・ファンクションを使用すると、モデルの作成に使用された設定を確認できます。 このファンクションの目的は情報の参照に限られています。モデルの設定は変更できません。

この例では、Naive Bayesアルゴリズムを使用して、census_modelという分類モデルを事前に作成していると想定します。 Oracle SQLを使用してこのモデルの設定を参照するには、次の文を実行します。

SELECT setting_name, setting_value
  FROM TABLE(DBMS_DATA_MINING.GET_MODEL_SETTINGS('census_model'));

GET_MODEL_SIGNATUREファンクション

このテーブル・ファンクションはモデルのシグネチャを戻します。シグネチャは、APPLY操作への入力として必要になる個々のマイニング属性の名前と型を表す行の集合です。

ケースIDはマイニング属性とみなされません。 分類モデルとリグレッション・モデルでは、ターゲット属性もモデルのシグネチャに入りません。

構文

DBMS_DATA_MINING.GET_MODEL_SIGNATURE(
  model_name           IN VARCHAR2)
RETURN DM_MODEL_SIGNATURE PIPELINED;

パラメータ

表25-40 GET_MODEL_SIGNATUREファンクションのパラメータ

パラメータ 説明

model_name

モデルの名前。


戻り値

表25-41 GET_MODEL_SIGNATUREファンクションの戻り値

戻り値 説明

DM_MODEL_SIGNATURE

DM_MODEL_SIGNATURE_ATTRIBUTE型の行の集合。 この行には、次の列があります。

(attribute_name      VARCHAR2(30),
 attribute_type      VARCHAR2(106))

使用上の注意

このテーブル・ファンクションは、DM_MODEL_SIGNATURE型の行をパイプライン出力します。 ODMのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。

このテーブル・ファンクションを使用すると、モデルの作成に使用された属性のリスト(シグネチャ)を取得できます。 モデルを作成した時点、またはモデルを別の定義にインポートした時点からかなり長い時間が経った後で、テスト・データまたはスコアリング・データにモデルを適用(APPLY)する場合は、このファンクションを使用してモデルの属性リストを確認することをお薦めします。

この例では、Naive Bayesアルゴリズムを使用して、census_modelという分類モデルを事前に作成していると想定します。 Oracle SQLを使用してこのモデルのシグネチャを参照するには、次の文を実行します。

SELECT attribute_name, attribute_type
  FROM TABLE(DBMS_DATA_MINING.GET_MODEL_SIGNATURE('census_model');

IMPORT_MODELプロシージャ

このプロシージャは、EXPORT_MODELまたはexpdpエクスポート・ユーティリティによって作成されたダンプ・ファイル・セットから、指定されたデータ・マイニング・モデルをインポートします。 IMPORT_MODELEXPORT_MODELの両方で、Oracle Data Pumpテクノロジが使用されています。


関連項目:

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

構文

DBMS_DATA_MINING.IMPORT_MODEL (
    filename             IN  VARCHAR2,
    directory            IN  VARCHAR2,
    model_filter         IN  VARCHAR2 DEFAULT NULL,
    operation            IN  VARCHAR2 DEFAULT NULL,
    remote_link          IN  VARCHAR2 DEFAULT NULL,
    jobname              IN  VARCHAR2 DEFAULT NULL,
    schema_remap         IN  VARCHAR2 DEFAULT NULL);

パラメータ

表25-42 IMPORT_MODELプロシージャのパラメータ

パラメータ 説明

filename

モデルのインポート元のダンプ・ファイル・セットの名前。 ダンプ・ファイル・セットは、EXPORT_MODELプロシージャまたはOracle Data Pumpのexpdpエクスポート・ユーティリティで作成されている必要があります。

ダンプ・ファイル・セットには1つ以上のファイルを保存できます。 (詳細は、「EXPORT_MODELプロシージャ」を参照)。 ダンプ・ファイル・セット内に複数のダンプ・ファイルが存在する場合は、ファイルを列挙するかわりに'filename%U'を指定できます。 たとえば、ダンプ・ファイル・セット内にarchive01.dmparchive02.dmparchive03.dmpという3つのダンプ・ファイルが存在する場合は、'archive%U'と指定してそれらのファイルをインポートできます。

directory

ダンプ・ファイル・セットの場所を指定する、事前定義済のディレクトリ・オブジェクトの名前。

このディレクトリ・オブジェクト、およびこのディレクトリ・オブジェクトによって指定されるファイル・システム・ディレクトリに対する読取り/書込み権限が必要です。

model_filter

インポートするモデルを指定するパラメータ(オプション)。 model_filterの値を指定しない場合は、ダンプ・ファイル・セット内のすべてのモデルがインポートされます。 また、NULL(デフォルト)または'ALL'を指定しても、すべてのモデルをインポートできます。

名前に基づいて個々のモデルをインポートできます。また、同じ特性を持つモデルのグループをインポートすることもできます。 たとえば、すべてのNaive Bayesモデル、または同じターゲット属性を使用するすべてのモデルをインポートできます。 詳細は、「使用上の注意」を参照してください。 例は、表25-43を参照してください。

operation

モデルをインポートするか、モデルを作成するSQL文をインポートするかを指定するパラメータ(オプション)。 デフォルトでは、モデルがインポートされます。

operationには、次のいずれかの値を指定できます。

  • 'IMPORT': モデルをインポートします(デフォルト)。

  • 'SQL_FILE': モデルを作成するSQL DDLをテキスト・ファイルに書き出します。 テキスト・ファイルは、job_name.sqlという名前が付けられ、ダンプ・セット・ディレクトリに保存されます。

remote_link

このリリースでは使用されないパラメータ(オプション)。 NULLに設定します。

jobname

インポート・ジョブの名前を指定するパラメータ(オプション)。 デフォルトでは、username_imp_nnnnという形式の名前になります(nnnnは数字です)。 たとえば、SCOTTスキーマ内のジョブ名は、SCOTT_imp_134のようになります。

ジョブ名を指定する場合は、スキーマ内で一意の名前を指定する必要があります。 ジョブ名の最大長は30文字です。

インポート・ジョブのログ・ファイルが、jobname.logという名前で、ダンプ・ファイル・セットと同じディレクトリに作成されます。

schema_remap

別のスキーマにインポートするためのパラメータ(オプション)。 デフォルトでは、モデルのエクスポートとインポートは同じスキーマ内で行われます。

ダンプ・ファイル・セットが別のスキーマに属している場合は、export_user:import_userの形式でスキーマ・マッピングを指定する必要があります。 たとえば、SCOTTによってMARYスキーマにエクスポートされたモデルをインポートする場合は、'SCOTT:MARY'と指定します。

注意: 別のスキーマからモデルをインポートする際に、IMPORT_FULL_DATABASE権限またはSYSロールが必要な場合があります。


使用上の注意

インポートするモデルは、model_filterパラメータで指定します。 モデルは、名前に基づいて指定できます。また、同じ特性を持つモデルの集合を指定することもできます。 名前に基づいてモデルを指定する場合は、1つのモデル名を指定するか、または複数のモデル名をカンマで区切って指定します。 同じ特性を持つモデルの集合を指定する場合は、DM_USER_MODELSビューに対する問合せのWHERE句を完成する条件式を使用します。 DM_USER_MODELSには、現行のスキーマ内のモデルが表示されます。 次の列が表示されます。

 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 NAME                                      NOT NULL VARCHAR2(25)
 FUNCTION_NAME                                      VARCHAR2(30)
 ALGORITHM_NAME                                     VARCHAR2(30)
 CREATION_DATE                                      DATE
 BUILD_DURATION                                     NUMBER
 TARGET_ATTRIBUTE                                   VARCHAR2(30)
 MODEL_SIZE                                         NUMBER

DM_USER_MODELSの列については、「ユーザー・ビュー」を参照してください。

model_filterの条件式を作成するには、列名、サポートされている条件演算子、および値を指定します。 サポートされている条件演算子には、<<===>>LIKEおよびINがあります。 条件演算子およびWHERE句については、『Oracle Database SQLリファレンス』を参照してください。

表25-43に、モデル・フィルタの例を示します。

表25-43 モデル・フィルタ・パラメータのサンプル値

サンプル値 意味

'mymodel'

mymodelという名前のモデルをインポートします。

'mymodel2, mymodel3'

mymodel2およびmymodel3という名前のモデルをインポートします。

'name= ''mymodel'''

mymodelという名前のモデルをインポートします。

'name IN (''mymodel2'',''mymodel3'')'

mymodel2およびmymodel3という名前のモデルをインポートします。

'name LIKE ''AI%'''

名前がAIで始まるすべてのモデルをインポートします。

'ALGORITHM_NAME = ''NAIVE_BAYES'''

すべてのNaive Bayesモデルをインポートします。 アルゴリズム名のリストについては、表25-2を参照してください。

'FUNCTION_NAME =''CLASSIFICATION'''

すべての分類モデルをインポートします。 マイニング機能のリストについては、表25-1を参照してください。


この例では、dmuser2スキーマ内でモデルのエクスポートとインポートを行っています。 次に、同じモデルをdmuser3スキーマにインポートしています。 dmuser3ユーザーには、IMPORT_FULL_DATABASE権限があります。

SQL>CONNECT dmuser2/dmuser2_psw
SQL>SELECT name FROM dm_user_models;
    NAME
    -------------------------
    NMF_SH_SAMPLE
    SVMO_SH_CLAS_SAMPLE
    SVMR_SH_REGR_SAMPLE

-- export the model called NMF_SH_SAMPLE to a dump file in same schema
SQL>EXECUTE DBMS_DATA_MINING.EXPORT_MODEL ('NMF_SH_SAMPLE_out', 'DATA_PUMP_DIR',
                            'name = ''NMF_SH_SAMPLE''');
-- import the model back into the same schema
SQL>EXECUTE DBMS_DATA_MINING.IMPORT_MODEL ('NMF_SH_SAMPLE_out01.dmp',
                            'DATA_PUMP_DIR', 'name = ''NMF_SH_SAMPLE''');

-- connect as different user
-- import same model into that schema
SQL>CONNECT dmuser3/dmuser3_psw
SQL>EXECUTE DBMS_DATA_MINING.IMPORT_MODEL ('NMF_SH_SAMPLE_out01.dmp',
                            'DATA_PUMP_DIR', 'name = ''NMF_SH_SAMPLE''',
                            'IMPORT', NULL, 'nmf_imp_job', 'dmuser2:dmuser3');

この例では、ユーザーSCOTTが作成したダンプ・ファイルmodel_exp_001.dmpから、ユーザーMARYがすべてのモデルをインポートします。 ダンプ・ファイルは、DM_DUMPというディレクトリ・オブジェクトにマップされたファイル・システム・ディレクトリに保存されています。 ユーザーMARYIMPORT_FULL_DATABASE権限を持っていない場合は、IMPORT_MODELからエラーが戻されます。

-- import all models
DECLARE
  file_name       VARCHAR2(40);
BEGIN
  file_name := 'model_exp_001.dmp';
  DBMS_DATA_MINING.IMPORT_MODEL(
                filename=>file_name,
               directory=>'DM_DUMP',                                                schema_remap=>'SCOTT:MARY');
  DBMS_OUTPUT.PUT_LINE(
'DBMS_DATA_MINING.IMPORT_MODEL of all models from SCOTT done!');
END;
/

RANK_APPLYプロシージャ

このプロシージャは、予測モデルまたは記述モデルをデータに適用した結果(APPLY結果)を上位N番までのフィルタに基づいてランク付けします。 分類モデルの場合は、このプロシージャへの入力パラメータとしてコスト・マトリックスを指定すると、予測のコストを反映したランク付けされた結果が得られます。

構文

DBMS_DATA_MINING.RANK_APPLY (
      apply_result_table_name        IN VARCHAR2,
      case_id_column_name            IN VARCHAR2,
      score_column_name              IN VARCHAR2,
      score_criterion_column_name    IN VARCHAR2,
      ranked_apply_result_tab_name   IN VARCHAR2,
      top_N                          IN INTEGER DEFAULT 1,
      cost_matrix_table_name         IN VARCHAR2 DEFAULT NULL,
      apply_result_schema_name       IN VARCHAR2 DEFAULT NULL,
      cost_matrix_schema_name        IN VARCHAR2 DEFAULT NULL);

パラメータ

表25-44 RANK_APPLYプロシージャのパラメータ

パラメータ 説明

apply_result_table_name

テスト・データセットに対するAPPLY操作の結果を保存した表またはビューの名前(「使用上の注意」を参照)。

case_id_column_name

ケースID列の名前。 この名前は適用(APPLY)結果の作成時に使用したケースID列の名前と一致する必要があります。

score_column_name

適用結果表の予測列の名前。

score_criterion_column_name

適用結果表の確率列の名前。

ranked_apply_result_tab_name

ランク付けされた適用結果が保存される表の名前。

top_N

上位N番までが、精密なリコール計算のAPPLY結果によって予測されます。

cost_matrix_table_name

コスト・マトリックス表の名前。

apply_result_schema_name

APPLYの適用結果表に適用されるスキーマの名前。

cost_matrix_schema_name

コスト・マトリックス表に適用されるスキーマの名前。


使用上の注意

RANK_APPLYを使用すると、上位N番までのフィルタに基づいてランク付けされた適用結果を作成できます。また、モデルがコスト付きで作成されている場合は、予測のコストを反映した結果が得られます。

CREATE_MODELDROP_MODELRENAME_MODELなどの他のDDL操作の観点から見ると、RANK_APPLYの動作はAPPLYの動作と似ています。 このプロシージャの基本動作は、モデル型には依存しません。重要な入力パラメータは、APPLYによって固定スキーマ表に出力される適用結果です。

RANK_APPLYの主な使用目的は、本番環境においてモデルをスコアリング・データに適用(APPLY)して、最終的な適用結果を作成することです。 APPLYを使用してテスト・データにモデルを適用し、様々なコスト・マトリックス表に対するテスト指標値を計算した後、最適なコスト・マトリックスをRANK_APPLYへの入力として指定できます。

以降の項では、サポートされる個々のアルゴリズムにおいて、適用結果が保存される表のスキーマを示します。 case_id列の値は、適用結果のケースID列と同じ値になります。

分類モデル: NB、ABN、SVM

ターゲットが数値である場合、ランク付けされた適用結果は次の定義を持つ表に保存されます。

(case_id       VARCHAR2/NUMBER,
prediction     NUMBER,
probability    NUMBER,
cost           NUMBER,
rank           INTEGER)

ターゲットがカテゴリである場合、ランク付けされた適用結果は次の定義を持つ表に保存されます。

(case_id       VARCHAR2/NUMBER,
prediction     VARCHAR2,
probability    NUMBER,
cost           NUMBER,
rank           INTEGER)

k-MeansまたはO-Clusterを使用するクラスタ化

クラスタ化は非監視型のマイニング機能であるため、ターゲットは存在しません。 APPLY操作の結果は、単にケースに対応するクラスタ識別子と、ケースの確率のみになります。 コスト・マトリックスは考慮されません。 ランク付けされた適用結果は次の定義を持つ表に保存されます。この表のクラスタ識別子はtop-Nによってランク付けされます。

(case_id       VARCHAR2/NUMBER,
cluster_id     NUMBER,
probability    NUMBER,
rank           INTEGER)

NMFを使用する特徴抽出

特徴抽出も非監視型のマイニング機能であるため、ターゲットは存在しません。 APPLY操作の結果は、単にケースに対応する機能識別子と、ケースの一致率のみになります。 コスト・マトリックスは考慮されません。 ランク付けされた適用結果は次の定義を持つ表に保存されます。この表の機能識別子はtop-Nによってランク付けされます。

(case_id        VARCHAR2/NUMBER,
feature_id      NUMBER,
match_quality   NUMBER,
rank            INTEGER)

BEGIN
/* build a model with name census_model.
 * (See example under CREATE_MODEL)
 */

/* if build data was pre-processed in any manner,
 * perform the same pre-processing steps on apply
 * data also.
 * (See examples in the section on DBMS_DATA_MINING_TRANSFORM)
 */

/* apply the model to data to be scored */
DBMS_DATA_MINING.RANK_APPLY(
  apply_result_table_name       => 'census_apply_result',
  case_id_column_name           => 'person_id',
  score_column_name             => 'prediction',
  score_criterion_column_name   => 'probability
  ranked_apply_result_tab_name  => 'census_ranked_apply_result',
  top_N                         => 3,
  cost_matrix_table_name        => 'census_cost_matrix');
END;
/

-- View Ranked Apply Results
SELECT *
  FROM census_ranked_apply_result;

RENAME_MODELプロシージャ

このプロシージャは、データ・マイニング・モデルの名前を指定された新しい名前に変更します。

構文

DBMS_DATA_MINING.RENAME_MODEL (
     model_name            IN VARCHAR2,
     new_model_name        IN VARCHAR2);

パラメータ

表25-45 RENAME_MODELプロシージャのパラメータ

パラメータ 説明

model_name

モデルの現在の名前。

new_model_name

モデルの新しい名前(「モデル名」を参照)。


使用上の注意

RENAME_MODELを使用すると、既存のマイニング・モデルの名前を変更できます。

RENAME_MODELの動作は、SQL DDL RENAMEの動作と似ています。 その実行中には、DROP_MODELおよびCREATE_MODELはブロックされ実行できません。 一方、APPLYでは、SQL問合せと同様にモデル・データは更新されないため、RENAME_MODELの実行中でもAPPLYを実行できます。

ただし、APPLYでモデルを使用しているときに、そのモデルの名前を変更すると、RENAME操作は成功しますが、APPLYからは不確定な結果が戻されます。 この動作は、DDL操作によって問合せ操作がブロックされないというRDBMSの標準的な動作に準拠しています。

census_modelというモデルがあるとします。 次の例は、このモデルの名前を変更する方法を示しています。

BEGIN
  DBMS_DATA_MINING.RENAME_MODEL(
    model_name      => 'census_model',
    new_model_name  => 'census_new_model');
END;
/