ヘッダーをスキップ
Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス
11g リリース2(11.2)
B56262-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

44 DBMS_DATA_MINING

Oracle Data Miningは、Oracle Databaseのデータから実用的な情報を抽出する分析技術です。Oracle Data Miningを使用すると、今後イベントが発生する確率を評価したり、データ内の予期しない相関およびグループを検出できます。

DBMS_DATA_MININGパッケージは、データ・マイニング・モデル(マイニング・モデルのスキーマ・オブジェクト)の作成および管理のためのプログラム・インタフェースです。Oracle Data Miningでは、データ・マイニング・モデルをデプロイするためのSQLファンクション・ファミリもサポートされています。

Oracle Data MinerはOracle Data Miningのグラフィカル・インタフェースで、Oracle Technology Network(http://www.oracle.com/technetwork/database/options/odm/)からダウンロードして入手できます。


関連項目:

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

  • 第104章「DBMS_PREDICTIVE_ANALYTICS」。このパッケージは、自動データ・マイニングを実行するいくつかのルーチンをサポートしています。

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

  • Oracle Data Miningの概要は、『Oracle Data Mining概要』を参照してください。

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


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


DBMS_DATA_MININGの使用方法

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


概要

Oracle Data Miningでは、監視ありデータ・マイニング監視なしデータ・マイニングの両方がサポートされています。監視ありデータ・マイニングでは、履歴データに基づいてターゲット値が予測されます。監視なしデータ・マイニングでは、自然なグループが検出され、ターゲットは使用されません。


関連項目:

詳細は、『Oracle Data Mining概要』を参照してください。

データ・マイニング機能は、データ・マイニングに関する特定の種類の問題を解決するための方法です。マイニング機能は、モデルの作成時に指定する必要があります。詳細は、「マイニング機能」を参照してください。


用語に関する注意:

データ・マイニングにおいては、機能とは、データ・マイニングへの特定のアプローチによって解決される一般的な種類の問題のことです。SQL言語においては、ファンクションとは、値を戻す演算子のことを示します。

Oracle Data Miningドキュメントでは、機能およびマイニング機能とはデータ・マイニング機能を示し、SQLファンクションまたはSQLデータ・マイニング・ファンクションとは、データ・マイニング・モデルをスコアリング(デプロイ)するSQLファンクションを示します。SQLデータ・マイニング・ファンクションの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。


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

  • 分類

  • 回帰

  • 属性評価

監視なしデータ・マイニングには、次の機能があります。

  • クラスタリング

  • 相関

  • 特徴抽出

  • 異常検出(1クラス分類)

マイニング・モデルを作成して適用する手順は、使用するデータ・マイニング機能およびアルゴリズムによって異なります。表44-1に、Oracle Data Miningでサポートされているアルゴリズムを示します。

表44-1 Oracle Data Miningのアルゴリズム

アルゴリズム 略称 ファンクション

Adaptive Bayes Network(非推奨)

ABN

分類

Apriori

AP

相関

ディシジョン・ツリー

DT

分類

一般化線形モデル

GLM

分類と回帰

k-Means(デフォルトのクラスタリング・アルゴリズム)

KM

クラスタリング

最小記述長

MDL

属性評価

Naive Bayes(デフォルトの分類アルゴリズム)

NB

分類

Non-Negative Matrix Factorization

NMF

特徴抽出

直交パーティショニング・クラスタリング

O-Cluster

クラスタリング

サポート・ベクター・マシン(デフォルトの回帰アルゴリズム)

SVM

分類と回帰(および1クラス分類を使用した異常検出)



マイニング・モデルのオブジェクト

マイニング・モデルは、Oracle Databaseのスキーマ・オブジェクトです。マイニング・モデルでは、Oracle Databaseの標準セキュリティ機能がサポートされています。また、SQL COMMENTおよびSQL AUDITもサポートされています。


関連項目:

  • マイニング・モデルのオブジェクト、SQL COMMENTおよびSQL AUDITの詳細は、『Oracle Data Mining管理者ガイド』を参照してください。

  • マイニング・モデルのセキュリティの詳細は、『Oracle Data Mining管理者ガイド』を参照してください。

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


ALL_MINING_MODELS

データ・ディクショナリ・ビューALL_MINING_MODELSを問い合せると、アクセス可能なマイニング・モデルのリストを取得できます。

例44-1 ALL_MINING_MODELS

SQL> describe all_mining_models
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                     NOT NULL VARCHAR2(30)
 MODEL_NAME                                NOT NULL VARCHAR2(30)
 MINING_FUNCTION                                    VARCHAR2(30)
 ALGORITHM                                          VARCHAR2(30)
 CREATION_DATE                             NOT NULL DATE
 BUILD_DURATION                                     NUMBER
 MODEL_SIZE                                         NUMBER
 COMMENTS                                           VARCHAR2(4000)

関連項目:

ALL_MINING_MODELSおよび関連ビューの詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

マイニング・モデルのネーミングにおける制限

モデルのネーミング規則には、大部分のデータベース・スキーマ・オブジェクトのネーミング規則よりも多くの制限があります。モデル名は、次の要件も満たす必要があります。

  • 名前の長さは、25文字までにする必要があります。

  • 名前は、引用符で囲まれていない識別子である必要があります。引用符で囲まれていない識別子は、英数字、アンダースコア(_)、ドル記号($)および番号記号(#)のみで構成され、最初の文字はアルファベットである必要があります。引用符で囲まれていないリテラルに、ドル記号および番号記号は使用しないことを強くお薦めします。

スキーマ・オブジェクトのネーミング要件の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

ALL_MINING_MODEL_ATTRIBUTES

データ・ディクショナリ・ビューALL_MINING_MODEL_ATTRIBUTESを問い合せると、アクセス可能なマイニング・モデルごとにデータ属性のリストを取得できます。データ属性は、モデルの作成にアルゴリズムが使用するデータの列です。モデルを適用するデータに、これらの列の一部またはすべてが存在している必要があります。

データ属性は、モデルのシグネチャと呼ばれます。監視ありモデルの場合、ALL_MINING_MODEL_ATTRIBUTESビューでは、ターゲットのデータ属性を含め、モデルのシグネチャのデータ属性が表示されます。

アルゴリズムによって、データ属性の内部表記が作成され、質的(分類またはカテゴリ化されたデータ)または量的(連続データ)のいずれかとして使用されます。これらの内部のモデル属性を表示するには、GET_MODEL_DETAILSファンクションを使用します。

例44-2 ALL_MINING_MODEL_ATTRIBUTES

SQL> describe all_mining_model_attributes
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                     NOT NULL VARCHAR2(30)
 MODEL_NAME                                NOT NULL VARCHAR2(30)
 ATTRIBUTE_NAME                            NOT NULL VARCHAR2(30)
 ATTRIBUTE_TYPE                                     VARCHAR2(11)
 DATA_TYPE                                          VARCHAR2(12)
 DATA_LENGTH                                        NUMBER
 DATA_PRECISION                                     NUMBER
 DATA_SCALE                                         NUMBER
 USAGE_TYPE                                         VARCHAR2(8)
 TARGET                                             VARCHAR2(3)

関連項目:

属性およびALL_MINING_MODEL_ATTRIBUTESの詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

ALL_MINING_MODEL_SETTINGS

ALL_MINING_MODEL_SETTINGSビューでは、アクセス可能なマイニング・モデルごとの設定が戻されます。設定では、マイニング・モデルの様々な特性が制御されます。

すべての設定にはデフォルト値があります。一部の設定は、デフォルトでアルゴリズムによって生成されます。モデルの設定表に値を指定すると、デフォルトの設定値を上書きできます。ALL_MINING_MODEL_SETTINGSでは、すべての設定(デフォルトとユーザー指定の両方)が表示されます。

例44-3 ALL_MINING_MODEL_SETTINGS

SQL> describe all_mining_model_settings
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                     NOT NULL VARCHAR2(30)
 MODEL_NAME                                NOT NULL VARCHAR2(30)
 SETTING_NAME                              NOT NULL VARCHAR2(30)
 SETTING_VALUE                                      VARCHAR2(4000)
 SETTING_TYPE                                       VARCHAR2(7)

関連項目:

  • モデル設定

  • ALL_MINING_MODEL_SETTINGSの詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。



セキュリティ・モデル

DBMS_DATA_MININGパッケージは、ユーザーSYSによって所有され、データベース・インストールの一環としてインストールされます。このパッケージの実行権限は、PUBLICに付与されます。このパッケージ内のルーチンは、実行者権限(現行のユーザーの権限)を使用して実行されます。

DBMS_DATA_MININGパッケージは、Oracle Data Miningオプションによって利用されるAPIを公開します。独自のスキーマにマイニング・モデルを作成するユーザーは、CREATE TABLEおよびCREATE VIEWシステム権限に加え、CREATE MINING MODELシステム権限も必要です。他のスキーマにマイニング・モデルを作成するユーザーは、対応する表およびビューの作成権限に加え、CREATE ANY MINING MODELシステム権限も必要です。

ユーザーは、独自のスキーマ内に存在するモデルの管理を完全に制御できます。他のスキーマ内のデータ・マイニング・モデルを管理するために必要な追加のシステム権限には、ALTER ANY MINING MODELDROP ANY MINING MODELSELECT ANY MINING MODELCOMMENT ANY MINING MODELおよびAUDIT ANYがあります。

マイニング・モデルに対する個別のオブジェクト権限であるALTER MINING MODELおよびSELET MINING MODELを使用して、モデルに対する権限を異なるユーザーに選択的に付与できます。


関連項目:

Oracle Data Miningのセキュリティ機能の詳細は、『Oracle Data Mining管理者ガイド』を参照してください。


推奨されないサブプログラム

Oracle Data Mining 11gリリース1(11.1)では、次のサブプログラムの使用は推奨されていませんでした。

  • GET_DEFAULT_SETTINGS

    データ・ディクショナリ・ビューUSER/ALL/DBA_MINING_MODEL_SETTINGSと置き換えられています。

  • GET_MODEL_SETTINGS

    データ・ディクショナリ・ビューUSER/ALL/DBA_MINING_MODEL_SETTINGSと置き換えられています。

  • GET_MODEL_SIGNATURE

    データ・ディクショナリ・ビューUSER/ALL/DBA_MINING_MODEL_ATTRIBUTESと置き換えられています。

Oracle Data Mining 11gリリース1(11.1)では、次のビューの使用は推奨されていませんでした。

  • DM_USER_MODELS

    データ・ディクショナリ・ビューUSER/ALL/DBA_MINING_MODELSと置き換えられています。

Oracle Data Mining 11gリリース1(11.1)では、Adaptive Bayes Networkアルゴリズムの使用は推奨されていませんでした。


注意:

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

11gリリース1(11.1)以降、DMSYSスキーマはデータベースに存在していません。現在、Oracle Data Miningメタデータは、SYS内にあります。


マイニング機能

表44-2に、モデルのマイニング機能を指定する定数を示します。マイニング機能の概要は、「概要」を参照してください。

すべてのモデルは、マイニング機能を使用して作成されます。マイニング機能は、CREATE_MODELプロシージャの必須引数です。

表44-2 マイニング機能

説明

ASSOCIATION

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

相関モデルでは、Aprioriアルゴリズムが使用されます。

ATTRIBUTE_IMPORTANCE

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

属性評価モデルでは、最小記述長アルゴリズムが使用されます。

CLASSIFICATION

分類は、予測マイニング機能の一種です。分類モデルでは、履歴データを使用して、質的ターゲットが予測されます。

分類モデルでは、Naive Bayes、Adaptive Bayes Network(非推奨)、ディシジョン・ツリー、ロジスティック回帰またはサポート・ベクター・マシンの各アルゴリズムを使用できます。デフォルトはNaive Bayesです。

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

CLUSTERING

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

クラスタリング・モデルでは、k-MeansまたはO-Clusterアルゴリズムが使用されます。デフォルトはk-Meansです。

FEATURE_EXTRACTION

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

特徴抽出モデルでは、Non-negative Matrix Factorizationアルゴリズムが使用されます。

REGRESSION

回帰は、予測マイニング機能の一種です。回帰モデルでは、履歴データを使用して、量的ターゲットが予測されます。

回帰モデルでは、サポート・ベクター・マシンまたは線形回帰を使用できます。デフォルトはサポート・ベクター・マシンです。



モデル設定

Oracle Data Miningは、設定を使用してアルゴリズムおよびモデルに関するその他の特性を指定します。設定には、一般的な設定と、マイニング機能およびアルゴリズムに固有の設定があります。

すべての設定にはデフォルト値があります。モデルの1つ以上の設定を上書きするには、設定表を作成する必要があります。設定表には、表44-3で示す列名およびデータ・タイプを含める必要があります。

表44-3 モデル設定表に必要な列

列名 データ・タイプ

SETTING_NAME

VARCHAR2(30)

SETTING_VALUE

VARCHAR2(4000)


設定表に指定する情報は、モデルの作成時に使用されます。設定表の名前は、CREATE_MODELプロシージャのオプションの引数です。

データ・ディクショナリ・ビューALL_MINING_MODEL_SETTINGSを問い合せると、モデルで使用される設定を検索できます。このビューでは、アクセス権限を持つマイニング・モデルで使用されるモデル設定が表示されます。デフォルトまたはユーザー指定かに関係なく、ビューにはすべての設定値が含まれます。「ALL_MINING_MODEL_SETTINGS」を参照してください。

アルゴリズム名

ALGO_NAME設定では、モデルのアルゴリズムが指定されます。表44-4に、ALGO_NAME設定の値を示します。

表44-4 アルゴリズム名

ALGO_NAME値 説明 マイニング機能

ALGO_ADAPTIVE_BAYES_NETWORK

Adaptive Bayes Network(非推奨)

分類

ALGO_DECISION_TREE

ディシジョン・ツリー

分類

ALGO_NAIVE_BAYES

Naive Bayes

分類

ALGO_GENERALIZED_LINEAR_MODEL

一般化線形モデル

分類と回帰

ALGO_SUPPORT_VECTOR_MACHINES

サポート・ベクター・マシン

分類と回帰

ALGO_KMEANS

拡張k_Means

クラスタリング

ALGO_O_CLUSTER

O-Cluster

クラスタリング

ALGO_AI_MDL

最小記述長

属性評価

ALGO_APRIORI_ASSOCIATION_RULES

Apriori

相関ルール

ALGO_NONNEGATIVE_MATRIX_FACTOR

Non-Negative Matrix Factorization

特徴抽出


Oracle Data Miningでは、分類、回帰およびクラスタリングのマイニング機能に対して2つ以上のアルゴリズムがサポートされています。これらの各マイニング機能には、表44-5に示されているデフォルト・アルゴリズムがあります。

表44-5 デフォルト・アルゴリズム

マイニング機能 デフォルト・アルゴリズム

分類

Naive Bayes

回帰

サポート・ベクター・マシン

クラスタリング

k-Means


自動データ準備

PREP_AUTO設定は、モデルが自動データ準備(ADP)を使用するかどうかを指定します。デフォルトでは、ADPは無効です。

ADPを有効にすると、モデルでは、経験則を使用し、アルゴリズムの要件に応じて作成データを変換します。変換命令は、モデルに格納され、モデルが適用されるたびに再利用されます。変換命令は、モデルのディテールで表示できます。

モデルの作成時にxform_listパラメータに追加の変換を指定することによって、自動データ準備を補うことができます。(「CREATE_MODELプロシージャ」を参照)

ADPを使用せず(デフォルト)CREATE_MODELへのxform_listパラメータに変換を指定しない(デフォルト)場合、10.2モードで操作が続行されます。したがって、データの作成、テストおよびスコアリングを行う場合に、個別に独自の変換を実装する必要があります。各データ・セットでまったく同じ変換を実装するように、細心の注意が必要です。

ADPを使用せず、CREATE_MODELへのxform_listパラメータに変換を指定する場合は、Oracle Data Miningでは、モデルに変換定義が埋め込まれ、作成データと一致するようにテスト・データおよびスコアリング・データが準備されます。データ準備が自動的であり、埋め込まれているため、マイニング・モデルは、スーパーモデルとも呼ばれます。

表44-6に、PREP_AUTO設定の値を示します。

表44-6 PREP_AUTO設定

PREP_AUTOの値 説明

PREP_AUTO_OFF

自動データ準備を無効にします(デフォルト)。

PREP_AUTO_ON

自動データ準備を有効にします。



関連項目:

データ準備の詳細は、『Oracle Data Mining概要』を参照してください。

マイニング機能の設定

表44-7に示されている設定がマイニング機能に適用されます。

表44-7 マイニング機能の設定

マイニング機能 設定名 設定値 説明

相関

ASSO_MAX_RULE_LENGTH

TO_CHAR( 2<= numeric_expr <=20)

相関ルールの最大ルール長。

デフォルトは4です。

相関

ASSO_MIN_CONFIDENCE

TO_CHAR( 0<= numeric_expr <=1)

相関ルールの最小信頼度。

デフォルトは0.1です。

相関

ASSO_MIN_SUPPORT

TO_CHAR( 0<= numeric_expr <=1)

相関ルールの最小支持度。

デフォルトは0.1です。

分類

CLAS_COST_TABLE_NAME

table_name

(ディシジョン・ツリーのみ)モデル作成のアルゴリズムに使用されるコスト・マトリックスを格納する表の名前。コスト・マトリックスは、分類ミスに関連するコストを指定します。

作成時には、ディシジョン・ツリー・モデルのみがコスト・マトリックスを使用できます。適用時には、すべての分類アルゴリズムがコスト・マトリックスを使用できます。

コスト・マトリックス表は、ユーザーが作成します。列の要件については、「ADD_COST_MATRIXプロシージャ」を参照してください。

コストの詳細は、『Oracle Data Mining概要』を参照してください。

分類

CLAS_PRIORS_TABLE_NAME

table_name

(Naive Bayes)作成データとスコアリング・データの分布の差を埋めるために、事前確率を格納する表の名前。

事前確率表は、ユーザーが作成します。列の要件については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。事前確率の詳細は、『Oracle Data Mining概要』を参照してください。

分類

CLAS_WEIGHTS_TABLE_NAME

table_name

(GLMおよびSVMのみ)SVM分類およびGLMロジスティック回帰モデルの、各ターゲット値に関する重み情報を格納する表の名前。アルゴリズムでは、重みを使用して、より高い重み付けのクラスを優先するようにモデルにバイアスをかけます。

クラスの重み表は、ユーザーが作成します。列の要件については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。クラスの重みの詳細は、『Oracle Data Mining概要』を参照してください。

クラスタリング

CLUS_NUM_CLUSTERS

TO_CHAR( numeric_expr >=1)

クラスタリング・アルゴリズムで生成されるリーフ・クラスタの最大数。(『Oracle Data Mining概要』で説明されているとおり、Oracle Data Miningのクラスタリング・アルゴリズムは階層型です。)

通常、拡張k-Meansでは、個別のデータ・ポイントの数の方が多ければ、CLUS_NUM_CLUSTERSで指定された数に正確に一致する数のクラスタが生成されます。

O-Clusterでは、データによってはCLUS_NUM_CLUSTERSで指定されている数より少ないクラスタが生成される場合があります。

デフォルトは10です。

特徴抽出

FEAT_NUM_FEATURES

TO_CHAR(numeric_expr >=1)

特徴抽出モデルで抽出される特徴の数。

アルゴリズムによって、データからデフォルトが見積もられます。



関連項目:

マイニング機能の詳細は、『Oracle Data Mining概要』を参照してください。

グローバルな設定

表44-8の設定はあらゆるタイプのモデルに適用できますが、現在は特定のアルゴリズムに対してのみ実装されています。

データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS(接頭辞ALLUSERまたはDBAを使用)を問い合せると、モデルの設定値を確認できます。*_MINING_MODEL_SETTINGSについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

表44-8 グローバルな設定

設定名 設定値 説明

ODMS_ITEM_ID_COLUMN_NAME

column_name

(相関ルールのみ)トランザクションに項目を含む列の名前。この設定が指定されていると、アルゴリズムは、2つの列で構成されたネイティブ・トランザクション形式でデータが表されると想定します。

  • ケースID: 質的または量的のいずれか

  • 項目ID: 質的または量的のいずれか(ODMS_ITEM_ID_COLUMN_NAMEによって指定)

トランザクション・データの典型的な例としては、多くの項目を含む可能性があるバスケットがケースによって表されるマーケット・バスケット・データがあげられます。各項目は個別の行に格納され、1つのケースを表すのに多くの行が必要になる場合があります。ケースID値は各行を一意に識別しません。トランザクション・データはマルチレコード・ケース・データとも呼ばれます。

通常、相関ルールはトランザクション・データとともに使用されますが、単一レコード・ケース・データにも適用できます(他のアルゴリズムと同様)。

単一レコード・ケース・データおよびマルチレコード・ケース・データの詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

ODMS_ITEM_VALUE_COLUMN_NAME

column_name

(相関ルールのみ)トランザクションの各項目に関連付けられている値を含む列の名前。この設定は、データがネイティブ・トランザクション形式で表されることを示す値がODMS_ITEM_ID_COLUMN_NAMEに指定されている場合にのみ使用されます。

ODMS_ITEM_VALUE_COLUMN_NAMEが指定されている場合、アルゴリズムは、生成データが次の3つの列で構成されていると想定します。

  • ケースID: 質的または量的のいずれか

  • 項目ID: 質的または量的のいずれか(ODMS_ITEM_ID_COLUMN_NAMEによって指定)

  • 項目値: 質的または量的のいずれか(ODMS_ITEM_VALUE_COLUMN_NAMEによって指定)

この項目値列では、(リンゴ3個などの)項目数、(マッキントッシュのリンゴなどの)項目タイプなどの情報を指定できます。

ODMS_MISSING_VALUE_TREATMENT

ODMS_MISSING_VALUE_MEAN_MODE

ODMS_MISSING_VALUE_DELETE_ROW

(GLMのみ)トレーニング・データでの欠損値を処理する方法。この設定は、スコアリング・データに影響を与えません。

Oracle Data Miningでは、欠損値は、作成時と適用時に、平均値(量的属性)または最頻値(質的属性)に置き換えられます。ODMS_MISSING_VALUE_TREATMENTODMS_MISSING_VALUE_DELETE_ROWに設定すると、トレーニング・データでのこの動作を上書きできます。ODMS_MISSING_VALUE_TREATMENTODMS_MISSING_VALUE_DELETE_ROWに設定すると、欠損値を含むトレーニング・データの行は削除されます。ただし、スコアリング・データにおいてこのような欠損値の処理を行うには、明示的に変換を実行する必要があります。手順については、『Oracle Data Mining概要』を参照してください。

ODMS_MISSING_VALUE_DELETE_ROWは、ネストした列を含まない表でのみ有効です。ネストしたデータでこの値を使用すると、例外が発生します。

ODMS_ROW_WEIGHT_COLUMN_NAME

column_name

(GLMのみ)行の重み要素を含むトレーニング・データの列の名前。

行の重みは、特定の構成が複数回繰り返される試用を設計する場合のように、繰返し行のコンパクトな表現として使用できます。また、行の重みは、モデルの作成中に特定の行を強調するためにも使用できます。たとえば、より新しい行を優先し、古い可能性のあるデータを避けるようにバイアスをかける場合に使用できます。



関連項目:

GLMの詳細は、『Oracle Data Mining概要』を参照してください。

相関ルールの詳細は、『Oracle Data Mining概要』を参照してください。


アルゴリズムの設定: Adaptive Bayes Network(非推奨)

これらの設定は、Adaptive Bayes Networkアルゴリズムの動作に影響を与えます。

データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS(接頭辞ALLUSERまたはDBAを使用)を問い合せると、モデルの設定値を確認できます。*_MINING_MODEL_SETTINGSについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

表44-9 ABNの設定

設定 説明

ABNS_MAX_BUILD_MINUTES

TO_CHAR( numeric_expr >=0)

ABNモデルの作成を完了するまでの最大時間。

デフォルトは0です(時間制限がないことを示します)。

ABNS_MAX_NB_PREDICTORS

TO_CHAR( numeric_expr >0)

abns_naive_bayesタイプのABNモデルの作成に必要な予測子の最大数(MDLランキングで測定)。

デフォルトは10です。

ABNS_MAX_PREDICTORS

TO_CHAR(numeric_expr >0)

abns_single_featureタイプまたはabns_multi_featureタイプのABNモデルの作成に必要な予測子の最大数(MDLランキングで測定)。

デフォルトは25です。

ABNS_MODEL_TYPE

ABNS_MULTI_FEATURE

ABNS_NAIVE_BAYES

ABNS_SINGLE_FEATURE

ABNモデルのタイプ。

デフォルトはmulti_featureです。


アルゴリズムの設定: ディシジョン・ツリー

これらの設定は、ディシジョン・ツリー・アルゴリズムの動作に影響を与えます。

データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS(接頭辞ALLUSERまたはDBAを使用)を問い合せると、モデルの設定値を確認できます。*_MINING_MODEL_SETTINGSについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

表44-10 ディシジョン・ツリーの設定

設定 説明

TREE_IMPURITY_METRIC

TREE_IMPURITY_ENTROPY

TREE_IMPURITY_GINI

ディシジョン・ツリーのツリー不純メトリック。

ツリー・アルゴリズムでは、各ノードでのデータの分岐に最適なテスト質問が検索されます。最適な分岐および分岐値は、ノードのエンティティに対するターゲット値の同質性(純度)が最大限に高くなるものです。純度は、メトリックに従って測定します。ディシジョン・ツリーでは、純度メトリックとしてジニ(TREE_IMPURITY_GINI)またはエントロピ(TREE_IMPURITY_ENTROPY)のいずれかを使用できます。デフォルトではジニが使用されます。

TREE_TERM_MAX_DEPTH

TO_CHAR( 2<= numeric_expr <=20)

分岐の条件: ツリーの最大深度(ルート・ノードとリーフ・ノードとの間(リーフ・ノードを含む)の最大ノード数)。

デフォルトは7です。

TREE_TERM_MINPCT_MODE

TO_CHAR( 0<= numeric_expr <=10)

この数値より小さいレコードを子に含めることはできません。この数値は、トレーニング行の割合で表現されます。

デフォルトは0.05で、0.05%を表します。

TREE_TERM_MINPCT_SPLIT

TO_CHAR( 0 <= numeric_expr <=20)

分岐の条件: 親ノードのレコードの最小数で、モデルのトレーニングに使用される総レコード数の割合で表現されます。レコード数がこの値よりも少ない場合、分岐は試行されません。

デフォルトは0.1で、0.1%を表します。

TREE_TERM_MINREC_NODE

TO_CHAR(numeric_expr >=0)

この数値より小さいレコードは、子に含めることができません。

デフォルトは10です。

TREE_TERM_MINREC_SPLIT

TO_CHAR( numeric_expr >=0)

分岐の条件: 値として表現される親ノードのレコードの最小数。レコード数がこの値よりも少ない場合、分岐は試行されません。

デフォルトは20です。


アルゴリズムの設定: 一般化線形モデル

これらの設定は、GLMモデルの動作に影響を与えます。GLMは、分類(ロジスティック回帰)または回帰(線形回帰)で使用できます。

データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS(接頭辞ALLUSERまたはDBAを使用)を問い合せると、モデルの設定値を確認できます。*_MINING_MODEL_SETTINGSについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

表44-11 GLMの設定

設定名 設定値 説明

GLMS_CONF_LEVEL

TO_CHAR(0< numeric_expr <1)

信頼区間の信頼水準。

デフォルトの信頼水準は0.95です。

GLMS_DIAGNOSTICS_TABLE_NAME

table_name

GLMモデルに関する行レベルの診断情報を含む表の名前。この表は、モデルの作成中に作成されます。

診断表を作成する場合は、モデルの作成時にケースIDを指定する必要があります。(CREATE_MODELプロシージャを参照してください。)診断表を指定し、ケースIDを指定しない場合は、例外が発生します。

GLM診断の詳細は、『Oracle Data Mining概要』を参照してください。

GLMS_REFERENCE_CLASS_NAME

target_value

ロジスティック回帰モデルで参照値として使用されるターゲット値。その他(非参照)のクラスの場合は、確率が生成されます。

デフォルトでは、参照クラスの場合、最も普及率の高い値(ほとんどのケース)がアルゴリズムによって選択されます。

GLMS_RIDGE_REGRESSION

GLMS_RIDGE_REG_ENABLE

GLMS_RIDGE_REG_DISABLE

リッジ回帰が有効かどうかの指定。

デフォルトでは、リッジを使用するかどうかはアルゴリズムによって決定されます。GLMS_RIDGE_REGRESSIONGLMS_RIDGE_REG_ENABLEに設定すると、明示的にリッジを有効にできます。

リッジは、回帰と分類の両方のマイニング機能に適用されます。

リッジを有効にすると、PREDICTION_BOUNDS SQL演算子によって予測限界は生成されません。

GLMS_RIDGE_VALUE

TO_CHAR(0< numeric_expr)

アルゴリズムで使用されるリッジ・パラメータの値。この設定は、GLMS_RIDGE_REGRESSIONGLMS_RIDGE_REG_ENABLEに設定して明示的にリッジ回帰を有効にした場合にのみ使用されます。

リッジ回帰がアルゴリズムによって内部的に有効になっている場合、リッジ・パラメータはアルゴリズムによって決定されます。

GLMS_VIF_FOR_RIDGE

GLMS_VIF_RIDGE_ENABLE

GLMS_VIF_RIDGE_DISABLE

(線形回帰のみ)リッジが使用されたときにVariance Inflation Factor(VIF)統計を作成するかどうかの指定。

デフォルトでは、リッジを有効にするとVIFは生成されません。

GLMS_RIDGE_REGRESSIONGLMS_RIDGE_REG_ENABLEに設定して明示的にリッジ回帰を有効にすると、GLMS_VIF_FOR_RIDGEGLMS_VIF_RIDGE_ENABLEに設定してVIF統計を要求できます。十分なシステム・リソースを使用できる場合、アルゴリズムによってVIFが作成されます。



関連項目:

GLMの詳細は、『Oracle Data Mining概要』を参照してください。

アルゴリズムの設定: k-Means

これらの設定は、k-Meansアルゴリズムの動作に影響を与えます。

データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS(接頭辞ALLUSERまたはDBAを使用)を問い合せると、モデルの設定値を確認できます。*_MINING_MODEL_SETTINGSについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

表44-12 k-Meansの設定

設定名 設定値 説明

KMNS_BLOCK_GROWTH

TO_CHAR(1< numeric_expr <=5)

クラスタ・データを保持するために割り当てられるメモリーの増加因数。

デフォルト値は2です。

KMNS_CONV_TOLERANCE

TO_CHAR(0< numeric_expr <=0.5)

k-Meansアルゴリズムの収束許容値。

デフォルトは0.01です。

KMNS_DISTANCE

KMNS_COSINE

KMNS_EUCLIDEAN

KMNS_FAST_COSINE

k-Meansクラスタリングの距離関数。デフォルトはユークリッドです。

KMNS_ITERATIONS

TO_CHAR(0< numeric_expr <=20)

k-Meansアルゴリズムの反復回数。

デフォルトは3です。

KMNS_MIN_PCT_ATTR_SUPPORT

TO_CHAR( 0<= numeric_expr <=1)

クラスタのルール記述にその属性を含めるために必要な、非NULL値でなければならない属性値の割合。

欠損値を含むデータでこのパラメータ値の設定が高すぎると、非常に短いルールや空のルールとなる可能性があります。

デフォルトは0.1です。

KMNS_NUM_BINS

TO_CHAR(numeric_expr >0)

ヒストグラムのビンの数。k-Meansで生成される属性ヒストグラムでのビンの数を指定します。各属性のビンの境界は、トレーニング・データ・セット全体でグローバルに計算されます。ビニングの方法は等幅です。すべての属性でビンの数は同じですが、単一の値を持つ属性では、ビンは1つのみです。

デフォルトは10です。

KMNS_SPLIT_CRITERION

KMNS_SIZE

KMNS_VARIANCE

k-Meansクラスタリングの分割基準。デフォルトの基準はKMNS_VARIANCEです。



関連項目:

k-Meansの詳細は、『Oracle Data Mining概要』を参照してください。

アルゴリズムの設定: Naive Bayes

これらの設定は、Naive Bayesアルゴリズムの動作に影響を与えます。

データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS(接頭辞ALLUSERまたはDBAを使用)を問い合せると、モデルの設定値を確認できます。*_MINING_MODEL_SETTINGSについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

表44-13 Naive Bayesの設定

設定名 設定値 説明

NABS_PAIRWISE_THRESHOLD

TO_CHAR( 0<= numeric_expr <=1)

NBアルゴリズムでの組しきい値。

デフォルトは0.01です。

NABS_SINGLETON_THRESHOLD

TO_CHAR( 0<= numeric_expr <=1)

NBアルゴリズムでの単一しきい値。

デフォルトは0.01です。



関連項目:

Naive Bayesの詳細は、『Oracle Data Mining概要』を参照してください。

アルゴリズムの設定: Non-Negative Matrix Factorization

これらの設定は、Non-Negative Matrix Factorizationの動作に影響を与えます。

データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS(接頭辞ALLUSERまたはDBAを使用)を問い合せると、モデルの設定値を確認できます。*_MINING_MODEL_SETTINGSについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

表44-14 NMFの設定

設定名 設定値 説明

NMFS_CONV_TOLERANCE

TO_CHAR(0< numeric_expr <=0.5)

NMFアルゴリズムでの収束許容値。

デフォルトは0.05です。

NMFS_NONNEGATIVE_SCORING

NMFS_NONNEG_SCORING_ENABLE

NMFS_NONNEG_SCORING_DISABLE

スコアリング結果で負数を許可するかどうか。NMFS_NONNEG_SCORING_ENABLEに設定すると、負の素性値が0(ゼロ)に置き換えられます。NMFS_NONNEG_SCORING_DISABLEに設定すると、負の素性値が許可されます。

デフォルトはNMFS_NONNEG_SCORING_ENABLEです。

NMFS_NUM_ITERATIONS

TO_CHAR(1 <= numeric_expr <=500)

NMFアルゴリズムの反復回数。

デフォルトは50です。

NMFS_RANDOM_SEED

TO_CHAR(numeric_expr)

NMFアルゴリズムのランダム・シード。

デフォルトは–1です。



関連項目:

NMFの詳細は、『Oracle Data Mining概要』を参照してください。

アルゴリズムの設定: O-Cluster

これらの設定は、O-Clusterアルゴリズムの動作に影響を与えます。

データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS(接頭辞ALLUSERまたはDBAを使用)を問い合せると、モデルの設定値を確認できます。*_ALL_MINING_MODEL_SETTINGSについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

表44-15 O-CLusterの設定

設定名 設定値 説明

OCLT_MAX_BUFFER

TO_CHAR(numeric_expr >0)

O-Clusterのバッファ・サイズ。

デフォルトは50,000です。

OCLT_SENSITIVITY

TO_CHAR(0 <=numeric_expr <=1)

新しいクラスタを分割するために必要な最大密度を指定する割合。この割合は、全体の均一密度と関連しています。

デフォルトは0.5です。



関連項目:

O-Clusterの詳細は、『Oracle Data Mining概要』を参照してください。

アルゴリズムの設定: サポート・ベクター・マシン

これらの設定は、サポート・ベクター・マシン・アルゴリズムの動作に影響を与えます。SVMは、分類、回帰または異常検出(NULLターゲットを含む分類)に使用できます。

データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS(接頭辞ALLUSERまたはDBAを使用)を問い合せると、モデルの設定値を確認できます。*_MINING_MODEL_SETTINGSについては、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

表44-16 SVMの設定

設定名 設定値 説明

SVMS_ACTIVE_LEARNING

SVMS_AL_DISABLE

SVMS_AL_ENABLE

能動学習を有効にするか無効にするかの設定。デフォルトでは、能動学習は有効になっています。

能動学習を有効にすると、SVMアルゴリズムでは能動学習を使用して、サイズが縮小されたモデルが作成されます。能動学習を無効にすると、SVMアルゴリズムでは標準モデルが作成されます。

SVMS_COMPLEXITY_FACTOR

TO_CHAR(numeric_expr >0)

SVMアルゴリズム(分類と回帰の両方)の複雑度の値。

デフォルト値は、アルゴリズムによってデータから概算されます。

SVMS_CONV_TOLERANCE

TO_CHAR(numeric_expr >0)

SVMアルゴリズムでの収束許容値。

デフォルトは0.001です。

SVMS_EPSILON

TO_CHAR(numeric_expr >0)

SVM回帰のイプシロン係数の値。

デフォルト値は、アルゴリズムによってデータから概算されます。

SVMS_KERNEL_CACHE_SIZE

TO_CHAR(numeric_expr >0)

SVMアルゴリズムのカーネル・キャッシュ・サイズの値。ガウス・カーネルにのみ適用されます。

デフォルトは50000000バイトです。

SVMS_KERNEL_FUNCTION

svm_gaussian

svms_linear

サポート・ベクター・マシンのカーネル。デフォルトは、トレーニング・データでの属性の数に基づいて、アルゴリズムによって決定されます。多数の属性がある場合はアルゴリズムでは線形カーネルが使用されますが、そうでない場合は、非線形(ガウス)カーネルが使用されます。

属性の数は、トレーニング・データの列の数とは一致しません。アルゴリズムによって、質的属性が2項の量的属性に展開されます。また、Oracle Data Miningでは、ネストした列の各行が別々の属性として処理されます。SVMでは、カーネル機能の選択時にこれらの要素が考慮されます。

SVMS_OUTLIER_RATE

TO_CHAR(0< numeric_expr <1)

トレーニング・データでの目標となる外れ値率。1クラスSVMモデル(異常検出)に対してのみ有効です。

デフォルトは1です。

SVMS_STD_DEV

TO_CHAR(numeric_expr >0)

SVMアルゴリズムの標準偏差の値。

これは、ガウス・カーネルにのみ適用されます。

デフォルト値は、アルゴリズムによってデータから概算されます。



関連項目:

SVMの詳細は、『Oracle Data Mining概要』を参照してください。


データ・タイプ

DBMS_DATA_MININGパッケージでは、モデル属性に関する情報を格納するためにオブジェクト・データ・タイプが使用されます。これらのタイプの大部分は、テーブル・ファンクションGET_nによって戻され、nは戻す情報のタイプを表します。これらのファンクションは、モデル名を入力に使用し、要求された情報を行のコレクションとして戻します。

GETファンクションのリストは、「DBMS_DATA_MININGサブプログラムの要約」を参照してください。

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

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

表44-17に、データ・マイニングのオブジェクト・データ・タイプを示します。

表44-17 DBMS_DATA_MININGのデータ・タイプの要約

データ・タイプ 説明

DM_ABN_DETAIL

Adaptive Bayes Networkモデルの属性に関する情報。

DM_ABN_DETAILS

DM_ABN_DETAILのコレクション。GET_MODEL_DETAILS_ABNファンクションによって戻されます。

DM_CENTROID

クラスタの重心。

DM_CENTROIDS

DM_CENTROIDのコレクション。DM_CLUSTERのメンバー。

DM_CHILD

クラスタの子ノード。

DM_CHILDREN

DM_CHILDのコレクション。DM_CLUSTERのメンバー。

DM_CLUSTER

クラスタ。クラスタには、DM_PREDICATESDM_CHILDRENDM_CENTROIDSおよびDM_HISTOGRAMSが含まれます。また、DM_RULEも含まれます。

DM_CLUSTERS

DM_CLUSTERのコレクション。GET_MODEL_DETAILS_KMファンクションおよびGET_MODEL_DETAILS_OCファンクションによって戻されます。

DM_CONDITIONAL

Naive Bayesモデルの属性の条件付き確率。

DM_CONDITIONALS

DM_CONDITIONALのコレクション。GET_MODEL_DETAILS_NBファンクションによって戻されます。

DM_COST_ELEMENT

コスト・マトリックスの実際の値および予測値。

DM_COST_MATRIX

DM_COST_ELEMENTのコレクション。GET_MODEL_COST_MATRIXファンクションによって戻されます。

DM_GLM_COEFF

一般化線形モデルの属性の係数および関連付けられている統計。

DM_GLM_COEFF_SET

DM_GLM_COEFFのコレクション。GET_MODEL_DETAILS_GLMファンクションによって戻されます。

DM_HISTOGRAM_BIN

クラスタに関連付けられたヒストグラム。

DM_HISTOGRAMS

DM_HISTOGRAM_BINのコレクション。DM_CLUSTERのメンバー。

DM_ITEM

相関ルールの項目。

DM_ITEMS

DM_ITEMのコレクション。

DM_ITEMSET

DM_ITEMSのコレクション。

DM_ITEMSETS

DM_ITEMSETのコレクション。GET_FREQUENT_ITEMSETSファンクションによって戻されます。

DM_MODEL_GLOBAL_DETAIL

モデルに関する高水準の統計。

DM_MODEL_GLOBAL_DETAILS

DM_MODEL_GLOBAL_DETAILのコレクション。GET_MODEL_DETAILS_GLOBALファンクションによって戻されます。

DM_MODEL_SETTING

モデルの設定。

DM_MODEL_SETTINGS

DM_MODEL_SETTINGのコレクション。GET_MODEL_SETTINGSファンクションおよびGET_DEFAULT_SETTINGSファンクションによって戻されます。

DM_MODEL_SIGNATURE_ATTRIBUTE

モデルのシグネチャの属性。

DM_MODEL_SIGNATURE

DM_MODEL_SIGNATUREのコレクション。GET_MODEL_SIGNATUREファンクションによって戻されます。

DM_NB_DETAIL

Naive Bayesモデルの属性に関する情報。

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

Non-negative Matrix Factorizationモデルの機能の属性。

DM_NMF_ATTRIBUTE_SET

DM_NMF_ATTRIBUTEのコレクション。DM_NMF_FEATUREのメンバー。

DM_NMF_FEATURE

Non-negative Matrix Factorizationモデルの機能。

DM_NMF_FEATURE_SET

DM_NMF_FEATUREのコレクション。GET_MODEL_DETAILS_NMFファンクションによって戻されます。

DM_PREDICATE

前件および後件の属性。

DM_PREDICATES

DM_PREDICATEのコレクション。DM_RULEDM_CLUSTERおよびDM_ABN_DETAILのメンバー。

DM_RANKED_ATTRIBUTE

属性評価モデルで重要度別にランク付けされた属性。

DM_RANKED_ATTRIBUTES

DM_RANKED_ATTRIBUTEのコレクション。GET_MODEL_DETAILS_AIファンクションによって戻されます。

DM_RULE

条件付きの関係を定義するルール。

このルールには、GET_ASSOCIATION_RULESファンクションによって戻される相関ルールのいずれか、またはGET_MODEL_DETAILS_KMファンクションおよびGET_MODEL_DETAILS_OCファンクションによって戻されるクラスタのコレクションでクラスタに関連付けられたルールを指定できます。

DM_RULES

DM_RULEのコレクション。GET_ASSOCIATION_RULESファンクションによって戻されます。

DM_SVM_ATTRIBUTE

サポート・ベクター・マシン・モデルの属性の名前、値および係数。

DM_SVM_ATTRIBUTE_SET

DM_SVM_ATTRIBUTEのコレクション。GET_MODEL_DETAILS_SVMファンクションによって戻されます。DM_SVM_LINEAR_COEFFのメンバーでもあります。

DM_SVM_LINEAR_COEFF

サポート・ベクター・マシン・モデルの各属性の線形係数。

DM_SVM_LINEAR_COEFF_SET

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

DM_TRANSFORM

属性の変換式および逆変換式。

DM_TRANSFORMS

DM_TRANSFORMのコレクション。GET_MODEL_TRANSFORMATIONSファンクションによって戻されます。

TRANSFORM_LIST

モデルのユーザー定義変換のリスト。パラメータとしてCREATE_MODELプロシージャで使用されます。

このコレクション・タイプは、DBMS_DATA_MINING_TRANSFORMパッケージで定義されます。



DBMS_DATA_MININGサブプログラムの要約

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

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

データ・タイプ 用途

ADD_COST_MATRIXプロシージャ


分類モデルにコスト・マトリックスを追加します。

ALTER_REVERSE_EXPRESSIONプロシージャ


逆変換式を指定した式に変更します。

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_COST_MATRIXファンクション


モデルのコスト・マトリックスを戻します。

GET_MODEL_DETAILS_ABNファンクション

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

GET_MODEL_DETAILS_AIファンクション


属性評価モデルのディテールを戻します。

GET_MODEL_DETAILS_GLMファンクション


一般化線形モデルのディテールを戻します。

GET_MODEL_DETAILS_GLOBALファンクション


モデルに関する高水準の統計を戻します。

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ファンクション

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

GET_MODEL_TRANSFORMATIONSファンクション


数多くのADP変換に加えて、モデルに埋め込まれたユーザー指定の変換定義を戻します。

GET_TRANSFORM_LISTプロシージャ


2つの異なる変換仕様形式との間を変換します。

IMPORT_MODELプロシージャ

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

RANK_APPLYプロシージャ


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

REMOVE_COST_MATRIXプロシージャ


モデルからコスト・マトリックスを削除します。

RENAME_MODELプロシージャ

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



ADD_COST_MATRIXプロシージャ

このプロシージャは、コスト・マトリックス表を分類モデルに関連付けます。コスト・マトリックスでは、コストまたは利益を特定のモデル結果に割り当てることによって、そのモデルにバイアスをかけます。

コスト・マトリックスはモデルとともに格納され、モデルのスコアリング時に考慮されます。格納されるコスト・マトリックスは、モデルのデフォルトのスコアリング・マトリックスです。

また、スコアリングのためにData Mining SQLファンクションを起動したときに、コスト・マトリックスをインラインに指定できます。インラインのコスト・マトリックスを指定すると、デフォルトのかわりに、格納されたコスト・マトリックスが使用されます(存在する場合)。

モデルのデフォルト・スコアリング・マトリックスを取得するには、GET_MODEL_COST_MATRIXファンクションを使用します。モデルからデフォルト・スコアリング・マトリックスを削除するには、REMOVE_COST_MATRIXプロシージャを使用します。「GET_MODEL_COST_MATRIXファンクション」および「REMOVE_COST_MATRIXプロシージャ」を参照してください。


関連項目:

  • コストの詳細は、『Oracle Data Mining概要』の「分類モデルのバイアス」を参照してください。

  • インラインのコスト・マトリックスの構文は、『Oracle Database SQL言語リファレンス』を参照してください。


構文

DBMS_DATA_MINING.ADD_COST_MATRIX (
       model_name                IN VARCHAR2,
       cost_matrix_table_name    IN VARCHAR2,
       cost_matrix_schema_name   IN VARCHAR2 DEFAULT NULL);

パラメータ

表44-19 ADD_COST_MATRIXプロシージャのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、ユーザー独自のスキーマが使用されます。

cost_matrix_table_name

コスト・マトリックス表の名前(表44-20を参照)。

cost_matrix_schema_name

コスト・マトリックス表のスキーマ。スキーマが指定されない場合は、現行のスキーマが使用されます。


使用上の注意

  1. モデルがスキーマにない場合、ADD_COST_MATRIXでは、ALTER ANY MINING MODELシステム権限またはそのマイニング・モデルに対するALTERオブジェクト権限が必要です。

  2. コスト・マトリックス表には、表44-20に示す列が必要です。実際のターゲット値と予測されるターゲット値のデータ・タイプは、同じである必要があります。

    表44-20 コスト・マトリックス表に必要な列

    列名 データ・タイプ

    ACTUAL_TARGET_VALUE

    質的ターゲットの場合はVARCHAR2(4000)

    量的ターゲットの場合はNUMBER

    PREDICTED_TARGET_VALUE

    質的ターゲットの場合はVARCHAR2(4000)

    量的ターゲットの場合はNUMBER

    COST

    NUMBER


  3. 利益は負のコストとして表示できるため、コスト・マトリックス表のCOST列に負の数値を指定すると、特定の結果に利益を指定できます。

  4. すべての分類アルゴリズムで、スコアリングのためにコスト・マトリックスを使用できます。また、ディシジョン・ツリー・アルゴリズムでは、作成時でもコスト・マトリックスを使用できます。コスト・マトリックスを使用してディシジョン・ツリー・モデルを作成する場合、モデルの設定表のCLAS_COST_TABLE_NAME設定にコスト・マトリックス表の名前を指定します。表44-7「マイニング機能の設定」を参照してください。

    ディシジョン・ツリー・モデルを作成する場合に使用するコスト・マトリックスは、そのモデルに対するデフォルトのスコアリング・マトリックスになります。スコアリング用に異なるコストを指定する場合は、REMOVE_COST_MATRIXプロシージャを使用してコスト・マトリックスを削除し、ADD_COST_MATRIXプロシージャを使用して新規コスト・マトリックスを追加します。

この例では、COSTS_NBというコスト・マトリックス表を作成し、NB_SH_CLAS_SAMPLEというNaive Bayesモデルに追加します。このモデルにはバイナリ・ターゲットがあり、1は顧客がプロモーションに応答することを表し、0は顧客が応答しないことを表します。コスト・マトリックスは、応答しない顧客の分類ミスに0.25のコストを割り当て、応答する顧客の分類ミスに0.75のコストを割り当てます。これは、応答しない顧客の分類ミスよりも、応答する顧客の分類ミスの方が3倍コストがかかることを意味します。

CREATE TABLE costs_nb (
  actual_target_value           NUMBER,
  predicted_target_value        NUMBER,
  cost                          NUMBER);
INSERT INTO costs_nb values (0, 0, 0);
INSERT INTO costs_nb values (0, 1, .25);
INSERT INTO costs_nb values (1, 0, .75);
INSERT INTO costs_nb values (1, 1, 0);
COMMIT;
 
EXEC dbms_data_mining.add_cost_matrix('nb_sh_clas_sample', 'costs_nb');
 
SELECT cust_gender, COUNT(*) AS cnt, ROUND(AVG(age)) AS avg_age
   FROM mining_data_apply_v
   WHERE PREDICTION(nb_sh_clas_sample COST MODEL
      USING cust_marital_status, education, household_size) = 1
   GROUP BY cust_gender
   ORDER BY cust_gender;
   
C        CNT    AVG_AGE
- ---------- ----------
F         72         39
M        555         44

ALTER_REVERSE_EXPRESSIONプロシージャ

このプロシージャは、逆変換式を指定した式に置換します。属性に反転式が含まれない場合、このプロシージャは指定した式から反転式を作成します。

このプロシージャを使用して、クラスタリング、特徴抽出および異常検出の各モデルの出力をカスタマイズすることもできます。

構文

DBMS_DATA_MINING. ALTER_REVERSE_EXPRESSION (
         model_name             VARCHAR2,
         expression             CLOB,
         attribute_name         VARCHAR2 DEFAULT NULL,
         attribute_subname      VARCHAR2 DEFAULT NULL);

パラメータ

表44-21 ALTER_REVERSE_EXPRESSIONプロシージャのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。

expression

SQL式。

attribute_name

属性の名前。expressionをクラスタ、機能または1クラスSVMの予測に適用する場合は、NULLに設定します。

attribute_subname

attribute_nameがネストされた列の場合はネストされた属性の名前。それ以外の場合はNULL


使用上の注意

  1. Oracle Data Miningでは、モデルの透過性を目的として、モデルに埋め込まれた変換に対して逆変換が提供されます。逆変換は、モデルのディテールおよびスコアリングの結果で使用されます。


    注意:

    コスト・マトリックスが含まれるモデルのターゲットの反転式を変更する場合は注意してください。コスト・マトリックス表のターゲット値と一致しない反転式を指定すると、モデルをスコアリングできません。

    コスト・マトリックスの詳細は、「ADD_COST_MATRIXプロシージャ」および『Oracle Data Mining概要』を参照してください。


  2. 属性の逆変換が行われないようにするために、expressionNULLを指定できます。

  3. ALTER_REVERSE_EXPRESSIONを使用して、クラスタリング・モデルによって生成されたクラスタと、特徴抽出によって生成された特徴にラベルを付けることができます。

    また、ALTER_REVERSE_EXPRESSIONを使用すると、異常検出モデルによって戻された0(ゼロ)および1を置き換えることができます。デフォルトでは、異常検出モデルによって、異常レコードには0のラベルが付けられ、他のすべてのレコードには1のラベルが付けられます。


    関連項目:

    異常検出の詳細は、『Oracle Data Mining概要』を参照してください。

  1. この例では、モデルCLASS_MODELのターゲット(affinity_card)が、内部的に1または0のかわりにyesまたはnoで操作されます(ただし、スコアリング時には1および0が戻されます)。ALTER_REVERSE_EXPRESSIONプロシージャによって、ターゲット値がTRUEまたはFALSEとして戻されます。

    Oracle Data Miningのサンプル・プログラムには、データ・セットのMINING_DATA_BUILDおよびMINING_DATA_TESTが付属しています。サンプル・プログラムについては、『Oracle Data Mining管理者ガイド』を参照してください。

    DECLARE
            v_xlst dbms_data_mining_transform.TRANSFORM_LIST;
      BEGIN
        dbms_data_mining_transform.SET_TRANSFORM(v_xlst,
              'affinity_card', NULL,
              'decode(affinity_card, 1, ''yes'', ''no'')',
              'decode(affinity_card, ''yes'', 1, 0)');
        dbms_data_mining.CREATE_MODEL(
          model_name             => 'CLASS_MODEL',
          mining_function        => dbms_data_mining.classification,
          data_table_name        => 'mining_data_build',
          case_id_column_name    => 'cust_id',
          target_column_name     => 'affinity_card',
          settings_table_name    => NULL,
          data_schema_name       => 'dmuser',
          settings_schema_name   => NULL,
          xform_list             => v_xlst );
      END;
    /
    SELECT cust_income_level, occupation,
               PREDICTION(CLASS_MODEL USING *) predict_response
          FROM mining_data_test WHERE age = 60 AND cust_gender IN 'M'
          ORDER BY cust_income_level;
     
    CUST_INCOME_LEVEL              OCCUPATION                PREDICT_RESPONSE
    ------------------------------ --------------------- --------------------
    A: Below 30,000                Transp.                                  1
    E: 90,000 - 109,999            Transp.                                  1
    E: 90,000 - 109,999            Sales                                    1
    G: 130,000 - 149,999           Handler                                  0
    G: 130,000 - 149,999           Crafts                                   0
    H: 150,000 - 169,999           Prof.                                    1
    J: 190,000 - 249,999           Prof.                                    1
    J: 190,000 - 249,999           Sales                                    1
     
    BEGIN
      dbms_data_mining.ALTER_REVERSE_EXPRESSION (
         model_name      => 'CLASS_MODEL',
         expression      => 'decode(affinity_card, ''yes'', ''TRUE'', ''FALSE'')',
         attribute_name  => 'affinity_card');
    END;
    /
    column predict_response on
    column predict_response format a20
    SELECT cust_income_level, occupation,
                 PREDICTION(CLASS_MODEL USING *) predict_response
          FROM mining_data_test WHERE age = 60 AND cust_gender IN 'M'
          ORDER BY cust_income_level;
     
    CUST_INCOME_LEVEL              OCCUPATION            PREDICT_RESPONSE
    ------------------------------ --------------------- --------------------
    A: Below 30,000                Transp.               TRUE
    E: 90,000 - 109,999            Transp.               TRUE
    E: 90,000 - 109,999            Sales                 TRUE
    G: 130,000 - 149,999           Handler               FALSE
    G: 130,000 - 149,999           Crafts                FALSE
    H: 150,000 - 169,999           Prof.                 TRUE
    J: 190,000 - 249,999           Prof.                 TRUE
    J: 190,000 - 249,999           Sales                 TRUE
    
  2. この例では、sh_clusモデルから生成されたクラスタにラベルを指定します。このラベルは、「クラスタ」という単語およびクラスタの内部数値識別子で構成されます。

    BEGIN
      dbms_data_mining.ALTER_REVERSE_EXPRESSION( 'sh_clus', '''Cluster ''||value');
    END;
    /
     
    SELECT cust_id, cluster_id(sh_clus using *) cluster_id
       FROM sh_aprep_num
           WHERE cust_id < 100011
           ORDER by cust_id;
     
    CUST_ID CLUSTER_ID
    ------- ------------------------------------------------
     100001 Cluster 18
     100002 Cluster 14
     100003 Cluster 14
     100004 Cluster 18
     100005 Cluster 19
     100006 Cluster 7
     100007 Cluster 18
     100008 Cluster 14
     100009 Cluster 8
     100010 Cluster 8
    

APPLYプロシージャ

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

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

Oracle Data Miningでは、適用操作は、相関モデルおよび属性評価モデルには適用できません。


注意:

データ・マイニング機能を使用すると、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);

パラメータ

表44-22 APPLYプロシージャのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。

data_table_name

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

case_id_column_name

ケースID列の名前。

result_table_name

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

data_schema_name

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


使用上の注意

  1. APPLYに指定したデータでは、モデルの作成およびテストに使用されるデータと同じ事前処理が実行される必要があります。自動データ準備を使用する場合、アルゴリズムで必要な事前処理は、作成時と適用時の両方で、ユーザーのかわりにモデルによって処理されます。(「自動データ準備」を参照)

  2. APPLYでは、ユーザーのスキーマに表を作成して結果を保存します。列はアルゴリズム固有です。

    結果表の列は、表44-23から表44-27で説明します。結果表のケースID列名は、ユーザーが指定したケースID列名と同じ値になります。入力のケースID列のタイプは、APPLYの出力でも維持されます。


    注意:

    ケースID列が、APPLYで作成されるいずれの列の名前とも同じにならないことを確認してください。たとえば、分類モデルを適用した場合、スコアリング・データのケースIDは、PREDICTIONPROBABILITYのいずれにもならないようにする必要があります(表44-23を参照)。

  3. 出力列'PREDICTION'、'CLUSTER_ID'および'FEATURE_ID'のデータ・タイプは、ユーザーがモデルに埋め込んだ反転式によって影響を受けます。ユーザーがスコアリング値のタイプを変更する反転式を指定しない場合は、そのタイプは次の表の説明に従います。詳細は、「ALTER_REVERSE_EXPRESSIONプロシージャ」を参照してください。

分類

分類の結果表には、表44-23に示す列があります。モデルが質的ターゲットの場合、PREDICTION列のデータ・タイプはVARCHAR2になります。モデルが量的ターゲットの場合、PREDICTION列のデータ・タイプはNUMBERになります。

表44-23 分類に対するAPPLYの適用結果表

列名 データ・タイプ

ケースID列の名前

VARCHAR2またはNUMBER

PREDICTION

VARCHAR2またはNUMBER

PROBABILITY

NUMBER


1クラスSVM(異常検出)

異常検出の結果表には、表44-24に示す列があります。

表44-24 異常検出に対するAPPLYの適用結果表

列名 データ・タイプ

ケースID列の名前

VARCHAR2またはNUMBER

PREDICTION

NUMBER

PROBABILITY

NUMBER


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

SVMまたはGLMを使用した回帰

回帰の結果表には、表44-25に示す列があります。

表44-25 回帰に対するAPPLYの適用結果表

列名 データ・タイプ

ケースID列の名前

VARCHAR2またはNUMBER

PREDICTION

NUMBER


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

クラスタリングは監視なしのマイニング機能であるため、ターゲットは存在しません。APPLY操作の結果は、単にケースに対応するクラスタ識別子と、ケースの確率のみになります。結果表には、表44-26に示す列があります。

表44-26 クラスタリングに対するAPPLYの適用結果表

列名 データ・タイプ

ケースID列の名前

VARCHAR2またはNUMBER

CLUSTER_ID

NUMBER

PROBABILITY

NUMBER


NMFを使用する特徴抽出

特徴抽出も監視なしのマイニング機能であるため、ターゲットは存在しません。APPLY操作の結果は、単にケースに対応する機能識別子と、ケースの一致率のみになります。結果表には、表44-27に示す列があります。

表44-27 特徴抽出に対するAPPLYの適用結果表

列名 データ・タイプ

ケースID列の名前

VARCHAR2またはNUMBER

FEATURE_ID

NUMBER

MATCH_QUALITY

NUMBER


この例では、GLM回帰モデルGLMR_SH_REGR_SAMPLEMINING_DATA_APPLY_Vビューのデータに適用します。適用結果は、REGRESSION_APPLY_RESULT表に出力されます。

SQL> BEGIN
       DBMS_DATA_MINING.APPLY (
       model_name     => 'glmr_sh_regr_sample',
       data_table_name     => 'mining_data_apply_v',
       case_id_column_name => 'cust_id',
       result_table_name   => 'regression_apply_result');
    END;
    /
 
SQL> SELECT * FROM regression_apply_result WHERE cust_id >  101485;
 
   CUST_ID PREDICTION
---------- ----------
    101486 22.8048824
    101487 25.0261101
    101488 48.6146619
    101489   51.82595
    101490 22.6220714
    101491 61.3856816
    101492 24.1400748
    101493  58.034631
    101494 45.7253149
    101495 26.9763318
    101496 48.1433425
    101497 32.0573434
    101498 49.8965531
    101499  56.270656
    101500 21.1153047

COMPUTE_CONFUSION_MATRIXプロシージャ

このプロシージャは、コンフュージョン・マトリックスを計算してユーザーのスキーマにある表に格納し、モデルの精度を戻します。

コンフュージョン・マトリックスは、分類モデルに対するテスト指標値です。一連のテスト・データにおいて、モデルによって生成された予測結果が実際のターゲット値と比較されます。このマトリックスはn×nの行列(nはクラスの数)です。コンフュージョン・マトリックスには、各クラスが正しく予測された回数と、各クラスが他のクラスのいずれかになると予測された回数がリストされます。

COMPUTE_CONFUSION_MATRIXは、次の3つの入力ストリームを受け入れます。

  • テスト・データに対して生成された予測結果。この情報は、次の3つの列で渡されます。

    • ケースID列

    • 予測列

    • 確率とコストのいずれかが格納されているスコアリング基準列

  • テスト・データの既知のターゲット値。この情報は、次の2つの列で渡されます。

    • ケースID列

    • 既知のターゲット値が格納されているターゲット列

  • (オプション)事前定義された列を持つコスト・マトリックス表。列の要件については、「使用上の注意」を参照してください。


関連項目:

コンフュージョン・マトリックスおよび分類用の他のテスト指標値の詳細は、『Oracle Data Mining概要』を参照してください。

「COMPUTE_LIFTプロシージャ」

「COMPUTE_ROCプロシージャ」


構文

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,
      score_criterion_type         IN  VARCHAR2 DEFAULT 'PROBABILITY');

パラメータ

表44-28 COMPUTE_CONFUSION_MATRIXプロシージャのパラメータ

パラメータ 説明

accuracy

予測の全体的な精度(パーセント)が含まれる出力パラメータ。

apply_result_table_name

予測結果が含まれる表。

target_table_name

テスト・データの既知のターゲット値が含まれる表。

case_id_column_name

適用結果表のケースID列。ターゲット表のケースIDと一致する必要があります。

target_column_name

ターゲット表のターゲット列。テスト・データの既知のターゲット値が格納されます。

confusion_matrix_table_name

コンフュージョン・マトリックスが含まれる表。この表は、このプロシージャによってユーザーのスキーマ内に作成されます。

コンフュージョン・マトリックス表の列については、「使用上の注意」を参照してください。

score_column_name

適用結果表の予測結果が格納される列。

デフォルトの列名はPREDICTIONです。この列名は、APPLYプロシージャで作成されるデフォルト名です(「APPLYプロシージャ」を参照)。

score_criterion_column_name

適用結果表のスコアリング基準値が格納される列。予測を決定する確率またはコストが格納されます。

デフォルトでは、スコアリングは確率に基づくため、各ケースに対して最も確率の高いクラスが予測されます。スコアリングがコストに基づく場合は、最もコストの低いクラスが予測されます。

score_criterion_typeパラメータは、スコアリングに確率またはコストのいずれを使用するのかを示します。

デフォルトの列名は'PROBABILITY'です。この列名は、APPLYプロシージャで作成されるデフォルト名です(「APPLYプロシージャ」を参照)。

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

cost_matrix_table_name

(オプション)分類ミスに関連付けられたコストを定義する表。コスト・マトリックス表があり、score_criterion_typeパラメータが'COSTS'に設定されている場合は、スコアリング基準としてこの表のコストが使用されます。

コスト・マトリックス表の列については、「使用上の注意」を参照してください。

apply_result_schema_name

適用結果表のスキーマ。

NULLの場合、ユーザーのスキーマと想定されます。

target_schema_name

既知のターゲットが含まれている表のスキーマ。

NULLの場合、ユーザーのスキーマと想定されます。

cost_matrix_schema_name

コスト・マトリックス表のスキーマ(指定されている場合)。

NULLの場合、ユーザーのスキーマと想定されます。

score_criterion_type

スコアリング基準として確率またはコストのいずれを使用するか。確率またはコストは、score_criterion_column_nameパラメータで識別される列に渡されます。

score_criterion_typeのデフォルト値は'PROBABILITY'です。スコアリング基準としてコストを使用するには、'COST'と指定します。

score_criterion_typeが'COST'に設定されているにもかかわらずコスト・マトリックスがない場合に、モデルにスコアリング・コスト・マトリックスが関連付けられていると、この関連付けられているコストがスコアリングに使用されます。

「使用上の注意」および「例」を参照してください。


使用上の注意

  • COMPUTE_CONFUSION_MATRIXに渡す予測情報は、SQLファンクションPREDICTIONDBMS_DATA_MINING.APPLYプロシージャまたはその他のメカニズムを使用して生成できます。プロシージャは、渡すデータが適切な場合にかぎり、コンフュージョン・マトリックスを計算できます。

  • COMPUTE_CONFUSION_MATRIXにコスト・マトリックスを渡すかわりに、モデルに関連付けられているスコアリング・コスト・マトリックスを使用できます。スコアリング・コスト・マトリックスは、モデルに埋め込むか、またはモデルの適用時に動的に定義できます。スコアリング・コスト・マトリックスを使用するには、SQLファンクションPREDICTION_COSTを起動して、スコア基準列を移入します。

  • COMPUTE_CONFUSION_MATRIXに渡す予測情報は、apply_result_table_nameで指定した表またはビューに格納されます。

    CREATE TABLE apply_result_table_name AS (
                case_id_column_name            VARCHAR2, 
                score_column_name              VARCHAR2,
                score_criterion_column_name    VARCHAR2);
    
  • コスト・マトリックスには、表44-29に示す列が必要です。

    表44-29 コスト・マトリックスの列

    列名 データ・タイプ

    actual_target_value

    NUMBERまたはVARCHAR2

    predicted_target_value

    NUMBERまたはVARCHAR2

    cost

    NUMBER



    関連項目:

    コスト・マトリックスの詳細は、『Oracle Data Mining概要』を参照してください。

  • COMPUTE_CONFUSION_MATRIXで作成されるコンフュージョン・マトリックスには、表44-30に示す列があります。

    表44-30 コンフュージョン・マトリックスの列

    列名 データ・タイプ

    actual_target_value

    NUMBERまたはVARCHAR2

    predicted_target_value

    NUMBERまたはVARCHAR2

    value

    NUMBER



    関連項目:

    コンフュージョン・マトリックスの詳細は、『Oracle Data Mining概要』を参照してください。

ここに示す例では、Naive Bayesモデルnb_sh_clas_sampleが使用されています。このモデルは、Oracle Data Miningのサンプル・プログラムによって作成されます。

確率に基づくコンフュージョン・マトリックスの計算

次の文は、テスト・データにモデルを適用し、予測結果と確率を表に格納します。

CREATE TABLE nb_apply_results AS
       SELECT cust_id,
              PREDICTION(nb_sh_clas_sample USING *) prediction,
              PREDICTION_PROBABILITY(nb_sh_clas_sample USING *) probability
       FROM mining_data_test_v;

スコアリング基準として確率を使用する場合は、次のようにコンフュージョン・マトリックスを計算できます。

DECLARE
   v_accuracy    NUMBER;
      BEGIN
        DBMS_DATA_MINING.COMPUTE_CONFUSION_MATRIX (
                   accuracy                     => v_accuracy,
                   apply_result_table_name      => 'nb_apply_results',
                   target_table_name            => 'mining_data_test_v',
                   case_id_column_name          => 'cust_id',
                   target_column_name           => 'affinity_card',
                   confusion_matrix_table_name  => 'nb_confusion_matrix',
                   score_column_name            => 'PREDICTION',
                   score_criterion_column_name  => 'PROBABILITY'
                   cost_matrix_table_name       =>  null,
                   apply_result_schema_name     =>  null,
                   target_schema_name           =>  null,
                   cost_matrix_schema_name      =>  null,
                   score_criterion_type         => 'PROBABILITY');
        DBMS_OUTPUT.PUT_LINE('**** MODEL ACCURACY ****: ' || ROUND(v_accuracy,4));
      END;
      /

コンフュージョン・マトリックスとモデルの精度は、次のとおりです。

 **** MODEL ACCURACY ****: .7847

SQL>SELECT * from nb_confusion_matrix;
ACTUAL_TARGET_VALUE PREDICTED_TARGET_VALUE      VALUE
------------------- ---------------------- ----------
                  1                      0         60
                  0                      0        891
                  1                      1        286
                  0                      1        263

コスト・マトリックス表に基づくコンフュージョン・マトリックスの計算

前述の例のコンフュージョン・マトリックスは、高い偽陽性率を示しています。263のケースで、実際の値が0(ゼロ)であるにもかかわらず、モデルでは1と予測されました。コスト・マトリックスを使用すると、このようなエラーを最小限に抑えることができます。

コスト・マトリックス表nb_cost_matrixから、偽陽性は偽陰性の3倍以上のコストがかかることがわかります。

SQL> SELECT * from nb_cost_matrix;
ACTUAL_TARGET_VALUE PREDICTED_TARGET_VALUE       COST
------------------- ---------------------- ----------
                  0                      0          0
                  0                      1        .75
                  1                      0        .25
                  1                      1          0

次の文は、APPLYを使用して予測を生成する方法を示しています。

BEGIN
    DBMS_DATA_MINING.APPLY(
          model_name          => 'nb_sh_clas_sample',
          data_table_name     => 'mining_data_test_v',
          case_id_column_name => 'cust_id',
          result_table_name   => 'nb_apply_results');
 END;
/

この文では、コスト・マトリックス表を使用してコンフュージョン・マトリックスが計算されます。スコア基準列の名前は'PROBABILITY'で、この列名は、APPLYで生成される名前です。

DECLARE
  v_accuracy    NUMBER;
     BEGIN
       DBMS_DATA_MINING.COMPUTE_CONFUSION_MATRIX (
                accuracy                     => v_accuracy,
                apply_result_table_name      => 'nb_apply_results',
                target_table_name            => 'mining_data_test_v',
                case_id_column_name          => 'cust_id',
                target_column_name           => 'affinity_card',
                confusion_matrix_table_name  => 'nb_confusion_matrix',
                score_column_name            => 'PREDICTION',
                score_criterion_column_name  => 'PROBABILITY',
                cost_matrix_table_name       => 'nb_cost_matrix',
                apply_result_schema_name     => null,
                target_schema_name           => null,
                cost_matrix_schema_name      => null,
                score_criterion_type         => 'COST');
       DBMS_OUTPUT.PUT_LINE('**** MODEL ACCURACY ****: ' || ROUND(v_accuracy,4));
    END;
    /

生成されるコンフュージョン・マトリックスは、(263から212に)偽陽性が低下したことを示しています。

**** MODEL ACCURACY ****: .798

SQL> SELECT * FROM nb_confusion_matrix;
ACTUAL_TARGET_VALUE PREDICTED_TARGET_VALUE      VALUE
------------------- ---------------------- ----------
                  1                      0         91
                  0                      0        942
                  1                      1        255
                  0                      1        212

埋め込まれたコストに基づくコンフュージョン・マトリックスの計算

ADD_COST_MATRIXプロシージャを使用すると、モデルにコスト・マトリックスを埋め込むことができます。埋め込まれたコストは、確率のかわりにスコアリングに使用できます。次の文は、以前に定義済のコスト・マトリックスをモデルに追加します。

BEGIN    DBMS_DATA_MINING.ADD_COST_MATRIX ('nb_sh_clas_sample', 'nb_cost_matrix');END;/

次の文は、埋め込まれたコストを使用してテスト・データにモデルを適用し、結果を表に格納します。

CREATE TABLE nb_apply_results AS
         SELECT cust_id,
              PREDICTION(nb_sh_clas_sample COST MODEL USING *) prediction,
              PREDICTION_COST(nb_sh_clas_sample COST MODEL USING *) cost
          FROM mining_data_test_v;

埋め込まれたコストを使用してコンフュージョン・マトリックスを計算できます。

DECLARE
   v_accuracy         NUMBER;
   BEGIN
       DBMS_DATA_MINING.COMPUTE_CONFUSION_MATRIX (
            accuracy                     => v_accuracy,
            apply_result_table_name      => 'nb_apply_results',
            target_table_name            => 'mining_data_test_v',
            case_id_column_name          => 'cust_id',
            target_column_name           => 'affinity_card',
            confusion_matrix_table_name  => 'nb_confusion_matrix',
            score_column_name            => 'PREDICTION',
            score_criterion_column_name  => 'COST',
            cost_matrix_table_name       => null,
            apply_result_schema_name     => null,
            target_schema_name           => null,
            cost_matrix_schema_name      => null,
            score_criterion_type         => 'COST');
   END;
   /

結果は次のとおりです。

**** MODEL ACCURACY ****: .798

SQL> SELECT * FROM nb_confusion_matrix;
ACTUAL_TARGET_VALUE PREDICTED_TARGET_VALUE      VALUE
------------------- ---------------------- ----------
                  1                      0         91
                  0                      0        942
                  1                      1        255
                  0                      1        212

COMPUTE_LIFTプロシージャ

このプロシージャは、リフトを計算し、ユーザーのスキーマにある表に結果を格納します。

リフトは、バイナリ分類モデルに対するテスト指標値です。リフトを計算するには、ターゲット値のいずれかをポジティブ・クラスに指定する必要があります。COMPUTE_LIFTでは、一連のテスト・データにおいて、モデルによって生成された予測結果が実際のターゲット値と比較されます。リフトでは、モデルによるポジティブ・クラスの予測結果が、ランダムに選択した場合と比較してどの程度向上しているかが測定されます。

リフトは、確率(またはコスト)によってランク付けされてクオンタイルに分割されたスコアリング結果に対して計算されます。各クオンタイルには、同じ数のケースのスコアが含まれます。

COMPUTE_LIFTでは、クオンタイルに基づく累積統計情報が計算されます。クオンタイルの数およびポジティブ・クラスはユーザーが指定します。また、COMPUTE_LIFTは、次の3つの入力ストリームを受け入れます。

  • テスト・データに対して生成された予測結果。この情報は、次の3つの列で渡されます。

    • ケースID列

    • 予測列

    • 予測に関連付けられた確率とコストのいずれかが格納されているスコアリング基準列

  • テスト・データの既知のターゲット値。この情報は、次の2つの列で渡されます。

    • ケースID列

    • 既知のターゲット値が格納されているターゲット列

  • (オプション)事前定義された列を持つコスト・マトリックス表。列の要件については、「使用上の注意」を参照してください。


関連項目:

リフトおよび分類用のテスト指標値の詳細は、『Oracle Data Mining概要』を参照してください。

「COMPUTE_CONFUSION_MATRIXプロシージャ」

「COMPUTE_ROCプロシージャ」


構文

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
      score_criterion_type         IN VARCHAR2 DEFAULT 'PROBABILITY');

パラメータ

表44-31 COMPUTE_LIFTプロシージャのパラメータ

パラメータ 説明

apply_result_table_name

予測結果が含まれる表。

target_table_name

テスト・データの既知のターゲット値が含まれる表。

case_id_column_name

適用結果表のケースID列。ターゲット表のケースIDと一致する必要があります。

target_column_name

ターゲット表のターゲット列。テスト・データの既知のターゲット値が格納されます。

lift_table_name

リフト統計情報が含まれる表。この表は、このプロシージャによってユーザーのスキーマ内に作成されます。

リフト表の列については、「使用上の注意」を参照してください。

positive_target_value

ポジティブ・クラス。リフトの計算対象となるクラスです。

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

score_column_name

適用結果表の予測結果が格納される列。

デフォルトの列名は'PREDICTION'です。この列名は、APPLYプロシージャで作成されるデフォルト名です(「APPLYプロシージャ」を参照)。

score_criterion_column_name

適用結果表のスコアリング基準値が格納される列。予測を決定する確率またはコストが格納されます。

デフォルトでは、スコアリングは確率に基づくため、各ケースに対して最も確率の高いクラスが予測されます。スコアリングがコストに基づく場合は、最もコストの低いクラスが予測されます。

score_criterion_typeパラメータは、スコアリングに確率またはコストのいずれを使用するのかを示します。

デフォルトの列名は'PROBABILITY'です。この列名は、APPLYプロシージャで作成されるデフォルト名です(「APPLYプロシージャ」を参照)。

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

num_quantiles

リフト計算に使用するクオンタイル数。デフォルトは10です。

cost_matrix_table_name

(オプション)分類ミスに関連付けられたコストを定義する表。コスト・マトリックス表があり、score_criterion_typeパラメータが'COST'に設定されている場合、スコアリング基準としてこの表のコストが使用されます。

コスト・マトリックス表の列については、「使用上の注意」を参照してください。

apply_result_schema_name

適用結果表のスキーマ。

NULLの場合、ユーザーのスキーマと想定されます。

target_schema_name

既知のターゲットが含まれている表のスキーマ。

NULLの場合、ユーザーのスキーマと想定されます。

cost_matrix_schema_name

コスト・マトリックス表のスキーマ(指定されている場合)。

NULLの場合、ユーザーのスキーマと想定されます。

score_criterion_type

スコアリング基準として確率またはコストのいずれを使用するか。確率またはコストは、score_criterion_column_nameパラメータで識別される列に渡されます。

score_criterion_typeのデフォルト値は'PROBABILITY'です。スコアリング基準としてコストを使用するには、'COST'と指定します。

score_criterion_typeが'COST'に設定されているにもかかわらずコスト・マトリックスがない場合に、モデルにスコアリング・コスト・マトリックスが関連付けられていると、この関連付けられているコストがスコアリングに使用されます。

「使用上の注意」および「例」を参照してください。


使用上の注意

  • COMPUTE_LIFTに渡す予測情報は、SQLファンクションPREDICTIONDBMS_DATA_MINING.APPLYプロシージャまたはその他のメカニズムを使用して生成できます。プロシージャは、渡すデータが適切な場合にかぎり、リフトを計算できます。

  • COMPUTE_LIFTにコスト・マトリックスを渡すかわりに、モデルに関連付けられているスコアリング・コスト・マトリックスを使用できます。スコアリング・コスト・マトリックスは、モデルに埋め込むか、またはモデルの適用時に動的に定義できます。スコアリング・コスト・マトリックスを使用するには、SQLファンクションPREDICTION_COSTを起動して、スコア基準列を移入します。

  • COMPUTE_LIFTに渡す予測情報は、apply_results_table_nameで指定した表またはビューに格納されます。

    CREATE TABLE apply_result_table_name AS (
                case_id_column_name            VARCHAR2, 
                score_column_name              VARCHAR2,
                score_criterion_column_name    VARCHAR2);
    
  • コスト・マトリックスには、表44-32に示す列が必要です。

    表44-32 コスト・マトリックスの列

    列名 データ・タイプ

    actual_target_value

    NUMBERまたはVARCHAR2

    predicted_target_value

    NUMBERまたはVARCHAR2

    cost

    NUMBER



    関連項目:

    コスト・マトリックスの詳細は、『Oracle Data Mining概要』を参照してください。

  • COMPUTE_LIFTで作成される表には、表44-33に示す列があります。

    表44-33 リフト表の列

    列名 データ・タイプ

    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



    関連項目:

    リフト表の詳細は、『Oracle Data Mining概要』を参照してください。

  • COMPUTE_LIFTにコスト・マトリックスが渡されると、リフト表のprobability_threshold列にコストしきい値が戻されます。

ここに示す例では、Naive Bayesモデルnb_sh_clas_sampleが使用されています。このモデルは、Oracle Data Miningのサンプル・プログラムによって作成されます。

この例は、確率に基づくリフトを示しています。コストに基づく計算を示す例については、「COMPUTE_CONFUSION_MATRIXプロシージャ」を参照してください。

次の文は、テスト・データにモデルを適用し、予測結果と確率を表に格納します。

CREATE TABLE nb_apply_results AS
    SELECT cust_id, t.prediction, t.probability
    FROM mining_data_test_v, TABLE(PREDICTION_SET(nb_sh_clas_sample USING *)) t;

スコアリング基準として確率を使用する場合は、次のようにリフトを計算できます。

BEGIN
           DBMS_DATA_MINING.COMPUTE_LIFT (
              apply_result_table_name              => 'nb_apply_results',
              target_table_name                => 'mining_data_test_v',
              case_id_column_name              => 'cust_id',
              target_column_name               => 'affinity_card',
              lift_table_name                             => 'nb_lift',
              positive_target_value                 =>  to_char(1),
              score_column_name                => 'PREDICTION',
              score_criterion_column_name    => 'PROBABILITY',
              num_quantiles                                =>  10,
              cost_matrix_table_name                =>  null,
              apply_result_schema_name            =>  null,
              target_schema_name               =>  null,
              cost_matrix_schema_name              =>  null,
              score_criterion_type                   =>  'PROBABILITY');
        END;
        /

この問合せにより、生成されるリフト表の統計情報の一部が表示されます。

SQL>SELECT quantile_number, probability_threshold, gain_cumulative,
           quantile_total_count
           FROM nb_lift;

QUANTILE_NUMBER PROBABILITY_THRESHOLD GAIN_CUMULATIVE QUANTILE_TOTAL_COUNT 
--------------- --------------------- --------------- --------------------  
              1            .989335775       .15034965                   55 
              2            .980534911       .26048951                   55  
              3            .968506098      .374125874                   55  
              4            .958975196      .493006993                   55 
              5            .946705997      .587412587                   55  
              6            .927454174       .66958042                   55  
              7            .904403627      .748251748                   55  
              8            .836482525      .839160839                   55  
             10            .500184953               1                   54  

COMPUTE_ROCプロシージャ

このプロシージャは、受信者操作特性(ROC)を計算してユーザーのスキーマにある表に結果を格納し、モデルの精度を戻します。

ROCは、バイナリ分類モデルに対するテスト指標値です。ROCを計算するには、ターゲット値のいずれかをポジティブ・クラスに指定する必要があります。COMPUTE_ROCでは、一連のテスト・データにおいて、モデルによって生成された予測結果が実際のターゲット値と比較されます。

ROCは、確率しきい値における変化の影響を測定します。確率しきい値は、モデルが予測に使用する決定ポイントです。バイナリ分類では、デフォルトの確率しきい値は0.5です。それぞれのケースに対して、確率が50%を超える値が予測されます。

ROCは、X-Y軸上の曲線として描くことができます。X軸を偽陽性率にします。Y軸を真陽性率にします。偽陽性とは、陰性であるものがテスト・データで陽性と予測されることです。真陽性とは、陽性であるものがテスト・データで陽性と予測されることです。

COMPUTE_ROCは、次の2つの入力ストリームを受け入れます。

  • テスト・データに対して生成された予測結果。この情報は、次の3つの列で渡されます。

    • ケースID列

    • 予測列

    • 確率が格納されているスコアリング基準列

  • テスト・データの既知のターゲット値。この情報は、次の2つの列で渡されます。

    • ケースID列

    • 既知のターゲット値が格納されているターゲット列


関連項目:

ROCおよび分類用のテスト指標値の詳細は、『Oracle Data Mining概要』を参照してください。

「COMPUTE_CONFUSION_MATRIXプロシージャ」

「COMPUTE_LIFTプロシージャ」


構文

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);

パラメータ

表44-34 COMPUTE_ROCプロシージャのパラメータ

パラメータ 説明

roc_area_under_the_curve

ROC曲線(AUC)の下部の面積が含まれる出力パラメータ。AUCによって、実際の陽性が陽性として予測される可能性が測定されます。

AUCが大きいほど、ポジティブ・クラスの予測とネガティブ・クラスの予測の間のトレードオフに対応するモデルの柔軟性が高くなります。AUCは、あるターゲット・クラスが別のターゲット・クラスと比較して、特定されるのが稀な場合または特定することがより重要な場合に、特に重要となります。

apply_result_table_name

予測結果が含まれる表。

target_table_name

テスト・データの既知のターゲット値が含まれる表。

case_id_column_name

適用結果表のケースID列。ターゲット表のケースIDと一致する必要があります。

target_column_name

ターゲット表のターゲット列。テスト・データの既知のターゲット値が格納されます。

roc_table_name

ROC出力が含まれる表。この表は、このプロシージャによってユーザーのスキーマ内に作成されます。

ROC表の列については、「使用上の注意」を参照してください。

positive_target_value

ポジティブ・クラス。ROCの計算対象となるクラスです。

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

score_column_name

適用結果表の予測結果が格納される列。

デフォルトの列名は'PREDICTION'です。この列名は、APPLYプロシージャで作成されるデフォルト名です(「APPLYプロシージャ」を参照)。

score_criterion_column_name

適用結果表のスコアリング基準値が格納される列。予測を決定する確率が格納されます。

デフォルトの列名は'PROBABILITY'です。この列名は、APPLYプロシージャで作成されるデフォルト名です(「APPLYプロシージャ」を参照)。

apply_result_schema_name

適用結果表のスキーマ。

NULLの場合、ユーザーのスキーマと想定されます。

target_schema_name

既知のターゲットが含まれている表のスキーマ。

NULLの場合、ユーザーのスキーマと想定されます。


使用上の注意

  • COMPUTE_ROCに渡す予測情報は、SQLファンクションPREDICTIONDBMS_DATA_MINING.APPLYプロシージャまたはその他のメカニズムを使用して生成できます。プロシージャは、渡すデータが適切な場合にかぎり、受信者操作特性を計算できます。

  • COMPUTE_ROCに渡す予測情報は、apply_results_table_nameで指定した表またはビューに格納されます。

    CREATE TABLE apply_result_table_name AS (
                case_id_column_name            VARCHAR2, 
                score_column_name              VARCHAR2,
                score_criterion_column_name    VARCHAR2);
    
  • COMPUTE_ROCで作成される表には、表44-35に示す列があります。

    表44-35 COMPUTE_ROCの出力

    データ・タイプ

    probability

    NUMBER

    true_positives

    NUMBER

    false_negatives

    NUMBER

    false_positives

    NUMBER

    true_negatives

    NUMBER

    true_positive_fraction

    NUMBER

    false_positive_fraction

    NUMBER



    関連項目:

    COMPUTE_ROCの出力の詳細は、『Oracle Data Mining概要』を参照してください。

  • ROCは、通常、最適な確率しきい値を決定するために使用されます。最適な確立しきい値を決定するには、真陽性率と偽陽性率を調べます。真陽性率とは、陽性であるものが、テスト・データで正しく陽性と予測される割合のことです。偽陽性率とは、陰性であるものが、テスト・データで誤って陽性と予測される割合のことです。

    確率しきい値を指定すると、次の文では、適用結果表内の陽性の予測が確率順に戻されます。

    SELECT case_id_column_name 
           FROM apply_result_table_name 
           WHERE probability > probability_threshold 
           ORDER BY probability DESC;
    
  • 最適な確率しきい値を特定するには、2つの方法があります。どちらの方法を採用するかは、ポジティブ・クラスとネガティブ・クラスを誤って予測した場合の相対コストがわかっているかどうかで決まります。

    コストがわかっている場合は、相対コストをROC表に適用して、コストが最小になる確率しきい値を計算します。相対コスト比率が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;
    

ここに示す例では、Naive Bayesモデルnb_sh_clas_sampleが使用されています。このモデルは、Oracle Data Miningのサンプル・プログラムによって作成されます。

次の文は、テスト・データにモデルを適用し、予測結果と確率を表に格納します。

CREATE TABLE nb_apply_results AS
    SELECT cust_id, t.prediction, t.probability
    FROM mining_data_test_v, TABLE(PREDICTION_SET(nb_sh_clas_sample USING *)) t;

テスト・データの予測値とターゲット値を使用して、次のようにROCを計算できます。

DECLARE
     v_area_under_curve NUMBER;
  BEGIN
         DBMS_DATA_MINING.COMPUTE_ROC (
               roc_area_under_curve                  => v_area_under_curve,
               apply_result_table_name       => 'nb_apply_results',
               target_table_name               => 'mining_data_test_v',
               case_id_column_name            => 'cust_id',
               target_column_name             => 'affinity_card',
               roc_table_name                     => 'nb_roc',
               positive_target_value         => '1',
               score_column_name               => 'PREDICTION',
               score_criterion_column_name   => 'PROBABILITY');
           DBMS_OUTPUT.PUT_LINE('**** AREA UNDER ROC CURVE ****: ' ||
           ROUND(v_area_under_curve,4));
  END;
 /

生成されるAUCおよび選択されたROC表の列は、次のように表示されます。

**** AREA UNDER ROC CURVE ****: .8212

SQL> SELECT probability, true_positive_fraction, false_positive_fraction 
            FROM nb_roc;
 
PROBABILITY  TRUE_POSITIVE_FRACTION  FALSE_POSITIVE_FRACTION
-----------  ----------------------  -----------------------
     .00000                       1                        1
     .50018              .826589595               .227902946
     .53851              .823699422               .221837088
     .54991              .820809249               .217504333
     .55628              .815028902               .215771231
     .55628              .817919075               .215771231
     .57563              .800578035               .214904679
     .57563              .812138728               .214904679
      .                   .                        .
      .                   .                        .
      .                   .                        .


CREATE_MODELプロシージャ

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

xform_listCREATE_MODELに渡すと、入力データで実行される変換のリストを指定できます。PREP_AUTO設定を有効にすると、自動変換に加えてその変換が使用されます。PREP_AUTO設定を無効にすると、指定した変換のみがモデルで実装されます。いずれの場合も、変換定義はモデルに埋め込まれ、モデルが適用されるたびに自動的に実行されます。「自動データ準備」を参照してください。

構文

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,
      xform_list            IN TRANSFORM_LIST DEFAULT NULL);

パラメータ

表44-36 CREATE_MODELプロシージャのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。「マイニング・モデルのネーミングにおける制限」も参照してください。

mining_function

マイニング機能。この値のリストについては、表44-2「マイニング機能」を参照してください。

data_table_name

作成データが含まれる表またはビュー。

case_id_column_name

作成データのケースID列。

target_column_name

監視ありモデルの場合は、作成データのターゲット列。監視なしモデルの場合は、NULL

settings_table_name

モデルの作成設定が含まれる表。設定表がない(デフォルトの設定のみが使用されている)場合は、NULL

data_schema_name

作成データに適用されるスキーマ。NULLの場合、ユーザーのスキーマと想定されます。

settings_schema_name

設定表に適用されるスキーマ。NULLの場合、ユーザーのスキーマと想定されます。

xform_list

自動変換に加えて、または自動変換のかわりに使用される変換のリストで、PREP_AUTO設定の値によって異なります。(「自動データ準備」を参照)

データ・タイプはTRANSFORM_LISTです。これは、TRANSFORM_RECタイプのレコードで構成されます。

TYPE
  TRANFORM_REC     IS RECORD (
     attribute_name       VARCHAR2(4000),
     attribute_subname    VARCHAR2(4000),
     expression           EXPRESSION_REC,
     reverse_expression   EXPRESSION_REC,
     attribute_spec       VARCHAR2(4000));

TRANSFORM_RECは、属性の変換および逆変換について説明しています。EXPRESSION_RECには、SQL式が格納されます。

EXPRESSION_RECに格納されているSQL式は、DBMS_DATA_MINING_TRANSFORMパッケージのルーチンを使用して操作できます。例として、SET_EXPRESSIONGET_EXPRESSIONおよびSET_TRANSFORMがあります。

ATTRIBUTE_SPECを使用すると、個々の属性に対して自動データ準備(ADP)を無効にできます。ADPが有効になっている場合にこの属性が自動で準備されないようにするには、'NOPREP'と指定します。ADPが無効になっている場合、値'NOPREP'は無視されます。

ネストした属性の個々のサブ名に対しては、値'NOPREP'を使用できません。ADPが有効になっている場合に個々のサブ名に対して'NOPREP'と指定すると、エラーが発生します。


使用上の注意

次のデータ・ディクショナリ・ビューを問い合せると、モデルに関する情報を取得できます。


ALL_MINING_MODELS
ALL_MINING_MODEL_ATTRIBUTES
ALL_MINING_MODEL_SETTINGS

ユーザー独自のスキーマのモデルに関する情報のみを取得するには、ALLのかわりにUSER接頭辞を指定します。


関連項目:

データ・ディクショナリ・ビューの詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

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

-- Create the settings table 
CREATE TABLE svm_model_settings (
  setting_name  VARCHAR2(30),
  setting_value VARCHAR2(30));

-- Populate the settings table
-- Specify SVM. By default, Naive Bayes is used for classification.
-- Specify ADP. By default, ADP is not used.
BEGIN 
  INSERT INTO svm_model_settings (setting_name, setting_value) VALUES
     (dbms_data_mining.algo_name, dbms_data_mining.algo_support_vector_machines);
  INSERT INTO svm_model_settings (setting_name, setting_value) VALUES
     (dbms_data_mining.prep_auto,dbms_data_mining.prep_auto_on);
  COMMIT;
END;
/
-- Create the model using the specified settings 
BEGIN
  DBMS_DATA_MINING.CREATE_MODEL(
    model_name          => 'svm_model',
    mining_function     => dbms_data_mining.classification,
    data_table_name     => 'mining_data_build_v',
    case_id_column_name => 'cust_id',
    target_column_name  => 'affinity_card',
    settings_table_name => 'svm_model_settings');
END;
/

モデル設定は、次の問合せで表示できます。

SELECT * FROM user_mining_model_settings 
       WHERE model_name IN 'SVM_MODEL';

MODEL_NAME     SETTING_NAME            SETTING_VALUE                  SETTING
-------------  ----------------------  -----------------------------  -------
SVM_MODEL      ALGO_NAME               ALGO_SUPPORT_VECTOR_MACHINES  INPUT
SVM_MODEL      SVMS_KERNEL_CACHE_SIZE  50000000                      DEFAULT
SVM_MODEL      SVMS_ACTIVE_LEARNING    SVMS_AL_ENABLE                DEFAULT
SVM_MODEL      SVMS_STD_DEV            3.004524                      DEFAULT
SVM_MODEL      PREP_AUTO               ON                            INPUT
SVM_MODEL      SVMS_COMPLEXITY_FACTOR  1.887389                      DEFAULT
SVM_MODEL      SVMS_KERNEL_FUNCTION    SVMS_GAUSSIAN                 DEFAULT
SVM_MODEL      SVMS_CONV_TOLERANCE     .001                          DEFAULT

次の例では、異常検出モデルを作成します。異常検出では、ターゲットなしでSVM分類が使用されます。この例では、最初の例でSVM分類モデル用に作成した設定表と同じ設定表を使用します。

BEGIN
  DBMS_DATA_MINING.CREATE_MODEL(
    model_name          => 'anomaly_detect_model',
    mining_function     => dbms_data_mining.classification,
    data_table_name     => 'mining_data_build_v',
    case_id_column_name => 'cust_id',
    target_column_name  => null,
    settings_table_name => 'svm_model_settings');
END;
/

この問合せは、これらの例で作成されたモデルが、スキーマで唯一のモデルであることを示しています。

SELECT model_name, mining_function, algorithm FROM user_mining_models;
 
MODEL_NAME              MINING_FUNCTION      ALGORITHM
----------------------  -------------------- ------------------------------
SVM_MODEL               CLASSIFICATION       SUPPORT_VECTOR_MACHINES
ANOMALY_DETECT_MODEL    CLASSIFICATION       SUPPORT_VECTOR_MACHINES

この問合せは、ターゲットがあるのはこのSVM分類モデルのみであることを示しています。

SELECT model_name, attribute_name, attribute_type, target 
       FROM user_mining_model_attributes 
       WHERE target = 'YES';
 
MODEL_NAME          ATTRIBUTE_NAME   ATTRIBUTE_TYPE     TARGET
------------------  ---------------  -----------------  ------
SVM_MODEL           AFFINITY_CARD    CATEGORICAL         YES

DROP_MODELプロシージャ

このプロシージャは、指定したマイニング・モデルを削除します。

構文

DBMS_DATA_MINING.DROP_MODEL (model_name IN VARCHAR2,
                             force      IN BOOLEAN DEFAULT FALSE);

パラメータ

表44-37 DROP_MODELプロシージャのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のマイニング・モデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。

force

無効な場合でも、マイニング・モデルの消去を強制実行。マイニング・モデルは、モデルの作成プロセスが重大なシステム・エラーで中断された場合に無効になることがあります。


使用上の注意

マイニング・モデルを削除するには、そのモデルの所有者であるか、またはDROP ANY MINING MODEL権限が必要です。データ・マイニングの権限の詳細は、『Oracle Data Mining管理者ガイド』を参照してください。

次のコマンドを使用すると、スキーマに存在するnb_sh_clas_sampleという名前の有効なマイニング・モデルを削除できます。

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

EXPORT_MODELプロシージャ

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

Oracle Data Pumpを使用してスキーマ全体またはデータベース全体をエクスポートまたはインポートする場合、そのスキーマまたはデータベースのマイニング・モデルが含められます。ただし、EXPORT_MODELおよびIMPORT_MODELは、個々のモデルのエクスポートとインポートをサポートする唯一のユーティリティです。


関連項目:

Oracle Data Pumpの詳細は、『Oracle Databaseユーティリティ』を参照してください。

マイニング・モデルのエクスポートおよびインポートの詳細は、『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);

パラメータ

表44-38 EXPORT_MODELプロシージャのパラメータ

パラメータ 説明

filename

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

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

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

directory

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

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

ディレクトリ・オブジェクトの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

model_filter

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

マイニング機能またはアルゴリズムに基づいて、モデルの名前およびグループ別に個々のモデルをエクスポートできます。たとえば、すべての回帰モデルまたはすべてのNaive Bayesモデルをエクスポートできます。例は、表44-39を参照してください。

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パラメータは、エクスポートするモデルを指定します。名前別にモデルを指定したり、同じマイニング機能またはアルゴリズムを持つモデルをすべて指定できます。USER_MINING_MODELSビューを問い合せると、スキーマ内のモデルを表示できます。

SQL> describe user_mining_models
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 MODEL_NAME                                NOT NULL VARCHAR2(30)
 MINING_FUNCTION                                    VARCHAR2(30)
 ALGORITHM                                          VARCHAR2(30)
 CREATION_DATE                             NOT NULL DATE
 BUILD_DURATION                                     NUMBER
 MODEL_SIZE                                         NUMBER
 COMMENTS                                           VARCHAR2(4000)

マイニング・モデルのデータ・ディクショナリ・ビューの詳細は、「マイニング・モデルのオブジェクト」を参照してください。

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

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

サンプル値 意味

'mymodel'

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

'name= ''mymodel'''

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

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

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

'ALGORITHM_NAME = ''NAIVE_BAYES'''

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

'FUNCTION_NAME =''CLASSIFICATION'''

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


次の文では、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

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 ORA_MINING_VARCHAR2_NT DEFAULT NULL,
   antecedent_items      IN DM_ITEMS DEFAULT NULL,
   consequent_items      IN DM_ITEMS DEFAULT NULL,
   min_lift              IN NUMBER DEFAULT NULL)
 RETURN DM_RULES PIPELINED;

パラメータ

表44-40 GET_ASSOCIATION_RULESファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]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

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

ルールの長さとは、ルール内の項目数のことです(表44-41の「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列に基づいて降順でソートする場合は、次のように指定します。

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

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

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

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

antecedent_items

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

consequent_items

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

min_lift

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


戻り値

表44-41 GET_ASSOCIATION RULESファンクションの戻り値

戻り値 説明

DM_RULES

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

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

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

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

使用上の注意

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

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));

次の問合せでは、相関モデルAR_SH_SAMPLEが使用されていますが、このモデルは、Oracle Data Miningのサンプル・プログラムから作成されます。(サンプル・プログラムについては、『Oracle Data Mining管理者ガイド』を参照してください。)

SELECT * FROM TABLE (
   DBMS_DATA_MINING.GET_ASSOCIATION_RULES (
      'AR_SH_SAMPLE', 10, NULL, 0.5, 0.01, 2, 1,
         ORA_MINING_VARCHAR2_NT (
         'NUMBER_OF_ITEMS DESC', 'RULE_CONFIDENCE DESC', 'RULE_SUPPORT DESC'),
         DM_ITEMS(DM_ITEM('CUSTPRODS', 'Mouse Pad', 1, NULL), 
                  DM_ITEM('CUSTPRODS', 'Standard Mouse', 1, NULL)),
         DM_ITEMS(DM_ITEM('CUSTPRODS', 'Extension Cable', 1, NULL))));

この問合せは、次のように3つのルールを戻します。

13  DM_PREDICATES(
       DM_PREDICATE('CUSTPRODS', 'Mouse Pad', '= ', 1, NULL, NULL, NULL), 
       DM_PREDICATE('CUSTPRODS', 'Standard Mouse', '= ', 1, NULL, NULL, NULL))
    DM_PREDICATES(
       DM_PREDICATE('CUSTPRODS', 'Extension Cable', '= ', 1, NULL, NULL, NULL))
    .15532      .84393   2.7075     .18404     .3117   2
 
11  DM_PREDICATES(
       DM_PREDICATE('CUSTPRODS', 'Standard Mouse', '= ', 1, NULL, NULL, NULL))
    DM_PREDICATES(
       DM_PREDICATE('CUSTPRODS', 'Extension Cable', '= ', 1, NULL, NULL, NULL))
    .18085      .56291   1.8059     .32128     .3117   1
 
9   DM_PREDICATES(
       DM_PREDICATE('CUSTPRODS', 'Mouse Pad', '= ', 1, NULL, NULL, NULL))
    DM_PREDICATES(
       DM_PREDICATE('CUSTPRODS', 'Extension Cable', '= ', 1, NULL, NULL, NULL))
      .17766    .55116   1.7682     .32234     .3117   1




GET_DEFAULT_SETTINGSファンクション

GET_DEFAULT_SETTINGSファンクションは、Oracle Data Mining 11gリリース1(11.1)では推奨されていませんでした。このファンクションは、データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGSに置き換えられました。このビューのUSER_ALL_およびDBA_のバージョンは使用できます。『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

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


注意:

詳細は、「推奨されないサブプログラム」を参照してください。

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

構文

DBMS_DATA_MINING.GET_DEFAULT_SETTINGS
  RETURN DM_MODEL_SETTINGS PIPELINED;

戻り値

表44-42 GET_DEFAULT_SETTINGSファンクションの戻り値

戻り値 説明

DM_MODEL_SETTINGS

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

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

使用上の注意

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

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

たとえば、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,
    max_itemset_length  IN NUMBER DEFAULT NULL)
  RETURN DM_ITEMSETS PIPELINED;

パラメータ

表44-43 GET_FREQUENT_ITEMSETSファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。

topn

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

max_itemset_length

項目セットの最大長。


戻り値

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

戻り値 説明

DM_ITEMSETS

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

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

items列は、DM_ITEMSタイプのネストした表を戻します。この行のタイプは、DM_ITEMです。

(attribute_name      VARCHAR2(4000),
attribute_subname    VARCHAR2(4000),
attribute_num_value  NUMBER,
attribute_str_value  VARCHAR2(4000))

使用上の注意

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

この例では、相関モデルを作成した後、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_COST_MATRIXファンクション

このファンクションは、指定したモデルに関連付けられたデフォルトのスコアリング・マトリックスの行を戻します。

デフォルトでは、このファンクションは、ADD_COST_MATRIXプロシージャを使用してモデルに追加されたスコアリング・マトリックスを戻します。モデルの作成に使用されるコスト・マトリックスを取得する場合は、matrix_typecost_matrix_type_createを指定します。詳細は、表44-45を参照してください。

「ADD_COST_MATRIXプロシージャ」も参照してください。

構文

DBMS_DATA_MINING.GET_MODEL_COST_MATRIX (
      model_name        IN VARCHAR2,
      matrix_type       IN VARCHAR2 DEFAULT cost_matrix_type_score)
RETURN DM_COST_MATRIX PIPELINED;

パラメータ

表44-45 GET_MODEL_COST_MATRIXファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。

matrix_type

コスト・マトリックスのタイプ。

COST_MATRIX_TYPE_SCORE: スコアリングに使用されるコスト・マトリックス。(デフォルト。)

COST_MATRIX_TYPE_CREATE: モデルの作成に使用されるコスト・マトリックス(ディシジョン・ツリーのみ)。


戻り値

表44-46 GET_MODEL_COST_MATRIXファンクションの戻り値

戻り値 説明

DM_COST_MATRIX

DM_COST_ELEMENTタイプの行の集合。この行には、次の列があります。

actual          VARCHAR2(4000), predicted       VARCHAR2(4000), cost            NUMBER)

使用上の注意

コスト・マトリックスを使用して作成できるのは、ディシジョン・ツリー・モデルのみです。コスト・マトリックスを使用してディシジョン・ツリー・モデルを作成する場合、モデルの設定表のCLAS_COST_TABLE_NAME設定にコスト・マトリックス表の名前を指定します。表44-7「マイニング機能の設定」を参照してください。

ディシジョン・ツリー・モデルを作成する場合に使用するコスト・マトリックスは、そのモデルに対するデフォルトのスコアリング・マトリックスになります。スコアリング用に異なるコストを指定する場合は、コスト・マトリックス表の値を変更するか、またはREMOVE_COST_MATRIXプロシージャを使用してコスト・マトリックスを削除し、ADD_COST_MATRIXプロシージャを使用して新規コスト・マトリックスを追加できます。

この例では、Naive BayesモデルNB_SH_CLAS_SAMPLEに関連付けられたスコアリング・コスト・マトリックスを戻します。

column actual format a10
column predicted format a10
SELECT *
    FROM TABLE(dbms_data_mining.get_model_cost_matrix('nb_sh_clas_sample'))
    ORDER BY predicted, actual;
 
ACTUAL     PREDICTED   COST
---------- ---------- -----
0          0            .00
1          0            .75
0          1            .25
1          1            .00

GET_MODEL_DETAILS_ABNファンクション

Oracle Data Mining 11gリリース1(11.1)では、Adaptive Bayes Networkアルゴリズム(ABNアルゴリズム)の使用は推奨されていませんでした。

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


注意:

詳細は、「推奨されないサブプログラム」を参照してください。

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

構文

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

パラメータ

表44-47 GET_MODEL_DETAILS_ABNファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。


戻り値

表44-48 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(4000),
      attribute_subname       VARCHAR2(4000),
      conditional_operator    CHAR(2), /*=,<>,<,>,<=,>=*/
      attribute_num_value     NUMBER,
      attribute_str_value     VARCHAR2(4000),
      attribute_support       NUMBER,
      attribute_confidence    NUMBER)

使用上の注意

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

このファンクションは、単一機能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;

パラメータ

表44-49 GET_MODEL_DETAILS_AIファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。


戻り値

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

戻り値 説明

DM_RANKED_ATTRIBUTES

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

(attribute_name          VARCHAR2(4000,
 attribute_subname       VARCHAR2(4000),
 importance_value        NUMBER,
 rank                    NUMBER(38))

次の例では、サンプル・プルグラムdmaidemo.sqlで作成された属性評価モデルAI_SH_sampleに関するモデルのディテールが戻されます。サンプル・プログラムについては、『Oracle Data Mining管理者ガイド』を参照してください。

SELECT attribute_name, importance_value, rank
    FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_AI('AI_SH_sample'))
    ORDER BY RANK;
 
ATTRIBUTE_NAME                           IMPORTANCE_VALUE       RANK
---------------------------------------- ---------------- ----------
HOUSEHOLD_SIZE                                 .151685183          1
CUST_MARITAL_STATUS                            .145294546          2
YRS_RESIDENCE                                   .07838928          3
AGE                                            .075027496          4
Y_BOX_GAMES                                    .063039952          5
EDUCATION                                      .059605314          6
HOME_THEATER_PACKAGE                           .056458722          7
OCCUPATION                                     .054652937          8
CUST_GENDER                                    .035264741          9
BOOKKEEPING_APPLICATION                        .019204751         10
PRINTER_SUPPLIES                                        0         11
OS_DOC_SET_KANJI                               -.00050013         12
FLAT_PANEL_MONITOR                             -.00509564         13
BULK_PACK_DISKETTES                            -.00540822         14
COUNTRY_NAME                                   -.01201116         15
CUST_INCOME_LEVEL                              -.03951311         16

GET_MODEL_DETAILS_GLMファンクション

このテーブル・ファンクションは、一般化線形モデルの係数統計を戻します。

線形回帰とロジスティック回帰の両方に対して同じ統計セットが戻されますが、マイニング機能に適用されない統計はNULLとして戻されます。詳細は、「使用上の注意」を参照してください。

構文

DBMS_DATA_MINING.GET_MODEL_DETAILS_GLM (
             model_name             VARCHAR2)
RETURN DM_GLM_COEFF_SET PIPELINED;

パラメータ

表44-51 GET_MODEL_DETAILS_GLMファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。


戻り値

表44-52 GET_MODEL_DETAILS_GLMの戻り値

戻り値 説明

DM_GLM_COEFF_SET

DM_GLM_COEFFタイプの行の集合。この行には、次の列があります。

(class                   VARCHAR2(4000),
 attribute_name          VARCHAR2(4000),
 attribute_subname       VARCHAR2(4000),
 attribute_value         VARCHAR2(4000),
 coefficient             NUMBER,
 std_error               NUMBER,
 test_statistic          NUMBER,
 p_value                 NUMBER,
 VIF                     NUMBER,
 std_coefficient         NUMBER,
 lower_coeff_limit       NUMBER,
 upper_coeff_limit       NUMBER,
 exp_coefficient         BINARY_DOUBLE,
 exp_lower_coeff_limit   BINARY_DOUBLE,
 exp_upper_coeff_limit   BINARY_DOUBLE)

GET_MODEL_DETAILS_GLMは、属性ごとの統計の行および切片用の追加の1行(属性名のNULL値で識別されます)を戻します。各行のデータ・タイプは、DM_GLM_COEFFです。統計については、表44-53で説明します。

表44-53 DM_GLM_COEFFデータ・タイプの説明

説明

class

ロジスティック回帰の非参照ターゲット・クラス。このモデルは、このクラスの確率を予測するために作成されます。

その他のクラス(参照クラス)は、モデル設定GLMS_REFERENCE_CLASS_NAMEに指定されます。詳細は、表44-11「GLMの設定」を参照してください。

線形回帰の場合、classはNULLです。

attribute_name

サブ名がない場合は属性名、サブ名がある場合は属性名の最初の部分。attribute_nameの値は、この属性のソースであるケース表の列の名前でもあります。

切片の場合、attribute_nameはNULLです。切片は、SVMモデルのバイアスに相当する用語です。

attribute_subname

ネストした表の属性の名前。ネストした属性のフルネームの形式は、次のとおりです。

attribute_name.attribute_subname

ここで、attribute_nameは、この属性のソースであるケース表のネストした列の名前です。

属性がネストしていない場合、attribute_subnameはNULLです。属性が切片の場合、attribute_nameattribute_subnameの両方がNULLです。

attribute_value

属性の値(質的属性のみ)。

量的属性の場合、attribute_valueはNULLです。

coefficient

線形係数推定値。

std_error

係数推定値の標準誤差。

test_statistic

線形回帰の場合、係数推定値のt値。

ロジスティック回帰の場合、係数推定値のWaldカイ二乗値。

p値

test_statisticの確率。モデルの特定の属性の重要度を分析するのに使用されます。

VIF

分散拡大要因。切片の場合、この値はゼロです。ロジスティック回帰の場合、VIFはNULLです。

std_coefficient

係数の標準化推定値。

lower_coeff_limit

係数の信頼限界値の下限。

upper_coeff_limit

係数の信頼限界値の上限。

exp_coefficient

ロジスティック回帰の指数係数。線形回帰の場合、exp_coefficientはNULLです。

exp_lower_coeff_limit

ロジスティック回帰の場合、係数の信頼限界値の下限に対する指数係数。線形回帰の場合、exp_lower_coeff_limitはNULLです。

exp_upper_coeff_limit

ロジスティック回帰の場合、係数の信頼限界値の指数係数。線形回帰の場合、exp_lower_coeff_limitはNULLです。


使用上の注意

各係数に対して、必ずしもすべての統計が戻されるわけではありません。次の場合、統計はNULLになります。

  • マイニング機能に適用されない場合。たとえば、exp_coefficientは線形回帰には適用されません。

  • 理論上、計算できない場合。たとえば、リッジ回帰が有効な場合、VIF(有効な場合)以外の統計を含めずに係数の値が戻されます。(リッジ回帰の詳細は、表44-11「GLMの設定」を参照してください。)

  • システム・リソースの制限が原因で計算できない場合。

  • 値が無限大になる可能性がある場合。

次の例では、サンプル・プログラムdmglrdem.sqlで作成されたGLM回帰モデルGLMR_SH_Regr_sampleに関するモデルのディテールの一部が戻されます。サンプル・プログラムについては、『Oracle Data Mining管理者ガイド』を参照してください。

SQL> SELECT *
   FROM (SELECT class, attribute_name, attribute_value, coefficient, std_error
              FROM TABLE(dbms_data_mining.get_model_details_glm(
                           'GLMR_SH_Regr_sample'))
            ORDER BY class, attribute_name, attribute_value)
     WHERE ROWNUM < 11;

CLASS     ATTRIBUTE_NAME      ATTRIBUTE_VALUE  COEFFICIENT  STD_ERROR
--------- ------------------  ---------------- -----------  ----------
          AFFINITY_CARD                         -.60686139   .531250033
          BULK_PACK_DISKETTES                   -1.9729645   .924531227
          COUNTRY_NAME        Argentina         -1.3340963  1.1942193
          COUNTRY_NAME        Australia           -.340504  5.13688361
          COUNTRY_NAME        Brazil             5.3855269  1.93197882
          COUNTRY_NAME        Canada            4.13393291  2.41283125
          COUNTRY_NAME        China              .74409259  3.59923638
          COUNTRY_NAME        Denmark           -2.5287879  3.18569293
          COUNTRY_NAME        France            -1.0908689  7.18471003
          COUNTRY_NAME        Germany           -1.7472166  2.53689456

GET_MODEL_DETAILS_GLOBALファンクション

このテーブル・ファンクションは、モデル全体に関する統計を戻します。グローバルな詳細は、GLMおよび相関ルールで使用できます。

線形回帰およびロジスティック回帰では、グローバルな詳細が別々に戻されます。リッジ回帰が有効な場合、戻されるグローバルな詳細がより少なくなります。リッジ回帰の詳細は、表44-11「GLMの設定」を参照してください。

構文

DBMS_DATA_MINING.GET_MODEL_DETAILS_GLOBAL (
      model_name     IN  VARCHAR2)
RETURN DM_MODEL_GLOBAL_DETAILS PIPELINED;

パラメータ

表44-54 GET_MODEL_DETAILS_GLOBALファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。


戻り値

表44-55 GET_MODEL_DETAILS_GLOBALファンクションの戻り値

戻り値 説明

DM_MODEL_GLOBAL_DETAILS

DM_MODEL_GLOBAL_DETAILタイプの行のコレクション。この行には、次の列があります。

(global_detail_name   VARCHAR2(30),
 global_detail_value   NUMBER)

GLMのグローバルな詳細: 線形回帰

表44-56 線形回帰のグローバルな詳細

GLOBAL_DETAIL_NAME 説明

MODEL_DF

モデルの自由度。

MODEL_SUM_SQUARES

モデルの平方和。

MODEL_MEAN_SQUARE

モデルの平均平方。

F_VALUE

モデルのF値の統計。

MODEL_F_P_VALUE

モデルのF値の確率。

ERROR_DF

誤差の自由度。

ERROR_SUM_SQUARES

誤差の平方和。

ERROR_MEAN_SQUARE

誤差の平均平方。

CORRECTED_TOTAL_DF

修正された総自由度。

CORRECTED_TOT_SS

修正された総平方和。

ROOT_MEAN_SQ

2乗平均平方根誤差。

DEPENDENT_MEAN

依存平均。

COEFF_VAR

変動係数。

R_SQ

R2乗。

ADJUSTED_R_SQUARE

調整済R2乗。

AIC

赤池情報量基準。

SBIC

Schwarzのベイズ情報量基準。

GMSEP

予測の推定平均平方誤差。多変量正規性を想定しています。

HOCKING_SP

HockingのSp統計。

J_P

JP統計(最終予測誤差)。

NUM_PARAMS

パラメータ数(切片を含む係数の数)。

NUM_ROWS

行数。

MODEL_CONVERGED

モデルが収束したかどうか。収束した場合、値は1で、収束しなかった場合は0です。

VALID_COVARIANCE_MATRIX

有効な共分散行列。共分散行列が計算された場合、値は1で、計算されなかった場合は0です。


GLMのグローバルな詳細: ロジスティック回帰

表44-57 ロジスティック回帰のグローバルな詳細

GLOBAL_DETAIL_NAME 説明

AIC_INTERCEPT

切片のみのモデルの適合度に関する赤池の基準。

AIC_MODEL

切片および共変量(予測子)モデルの適合度に関する赤池の基準。

SC_INTERCEPT

切片のみのモデルの適合度に関するSchwarzの基準。

SC_MODEL

切片および共変量(予測子)モデルの適合度に関するSchwarzの基準。

NEG2_LL_INTERCEPT

切片のみのモデルの-2対数尤度。

NEG2_LL_MODEL

モデルの-2対数尤度。

LR_DF

尤度比の自由度。

LR_CHI_SQ

尤度比のカイ二乗値。

LR_CHI_SQ_P_VALUE

尤度比のカイ二乗確率値。

PSEUDO_R_SQ_CS

擬似R二乗(CoxおよびSnell)

PSEUDO_R_SQ_N

擬似R二乗(Nagelkerke)

DEPENDENT_MEAN

依存平均。

PCT_CORRECT

正確な予測の割合。

PCT_INCORRECT

不正確に予測された行の割合。

PCT_TIED

両方のクラスの確率が同じケースの割合。

NUM_PARAMS

パラメータ数(切片を含む係数の数)。

NUM_ROWS

行数。

MODEL_CONVERGED

モデルが収束したかどうか。収束した場合、値は1で、収束しなかった場合は0です。

VALID_COVARIANCE_MATRIX

有効な共分散行列。共分散行列が計算された場合、値は1で、共分散行列が計算されなかった場合は0です。


相関ルールのグローバルな詳細

単一のグローバルな詳細は、相関モデルによって生成されます。

表44-58 相関ルールのグローバルな詳細

GLOBAL_DETAIL_NAME 説明

RULE_COUNT

モデル内の相関ルールの数。


次の例では、サンプル・プログラムdmglrdem.sqlで作成されたGLM回帰モデルGLMR_SH_Regr_sampleに関するグローバルなモデルのディテールが戻されます。サンプル・プログラムについては、『Oracle Data Mining管理者ガイド』を参照してください。

SELECT *
  FROM TABLE(dbms_data_mining.get_model_details_global(
              'GLMR_SH_Regr_sample'))
ORDER BY global_detail_name;
GLOBAL_DETAIL_NAME             GLOBAL_DETAIL_VALUE
------------------------------ -------------------
ADJUSTED_R_SQUARE                       .731412557
AIC                                       5931.814
COEFF_VAR                               18.1711243
CORRECTED_TOTAL_DF                            1499
CORRECTED_TOT_SS                        278740.504
DEPENDENT_MEAN                              38.892
ERROR_DF                                      1433
ERROR_MEAN_SQUARE                       49.9440956
ERROR_SUM_SQUARES                       71569.8891
F_VALUE                                 62.8492452
GMSEP                                    52.280819
HOCKING_SP                              .034877162
J_P                                     52.1749319
MODEL_CONVERGED                                  1
MODEL_DF                                        66
MODEL_F_P_VALUE                                  0
MODEL_MEAN_SQUARE                       3138.94871
MODEL_SUM_SQUARES                       207170.615
NUM_PARAMS                                      67
NUM_ROWS                                      1500
ROOT_MEAN_SQ                            7.06711367
R_SQ                                    .743238288
SBIC                                    6287.79977
VALID_COVARIANCE_MATRIX                          1

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,
          attribute_subname   VARCHAR2  DEFAULT NULL)
RETURN DM_CLUSTERS PIPELINED;

パラメータ

表44-59 GET_MODEL_DETAILS_KMファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。

cluster_id

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

attribute

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

centroid

次の値を指定できます。

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

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

histogram

次の値を指定できます。

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

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

rules

次の値を指定できます。

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

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

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


戻り値

表44-60 GET_MODEL_DETAILS_KMファンクションの戻り値

戻り値 説明

DM_CLUSTERS

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

(id                   NUMBER,
 cluster_id           VARCHAR2(4000),
 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(4000),
      attribute_subname        VARCHAR2(4000),
      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(4000),
      attribute_subname  VARCHAR2(4000),
      mean               NUMBER,
      mode_value         VARCHAR2(4000),
      variance           NUMBER)

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

     (attribute_name    VARCHAR2(4000),
      attribute_subname  VARCHAR2(4000),
      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,
      rule_lift          NUMBER,
      antecedent_support NUMBER,
      consequent_support NUMBER,
      number_of_items    INTEGER)

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

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

使用上の注意

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

次の例では、サンプル・プルグラムdmkmdemo.sqlで作成されたk-Meansクラスタリング・モデルKM_SH_Clus_sampleに関するモデルのディテールが戻されます。サンプル・プログラムについては、『Oracle Data Mining管理者ガイド』を参照してください。

SELECT T.id           clu_id,
       T.record_count rec_cnt,
       T.parent       parent,
       T.tree_level   tree_level,
       T.dispersion   dispersion
  FROM (SELECT *
          FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_KM(
                     'KM_SH_Clus_sample'))
        ORDER BY id) T
 WHERE ROWNUM < 6;  
 
    CLU_ID    REC_CNT     PARENT TREE_LEVEL DISPERSION
---------- ---------- ---------- ---------- ----------
         1       1500                     1  5.9152211
         2        638          1          2 3.98458982
         3        862          1          2 5.83732097
         4        376          3          3 5.05192137
         5        486          3          3 5.42901522

GET_MODEL_DETAILS_NBファンクション

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

構文

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

パラメータ

表44-61 GET_MODEL_DETAILS_NBファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。


戻り値

表44-62 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(4000),
      attribute_subname          VARCHAR2(4000),
      attribute_str_value        VARCHAR2(4000),
      attribute_num_value        NUMBER,
      conditional_probability    NUMBER)

使用上の注意

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

次の問合せは、サンプル・プログラムdmnbdemo.sqlからのものです。モデルNB_SH_Clas_sampleに関するモデルのディテールを戻します。サンプル・プログラムについては、『Oracle Data Mining管理者ガイド』を参照してください。

この問合せは、トレーニング・データをビンに区分するために使用されたビン境界表からラベルを作成します。属性値をラベルに置き換えます。量的ビンの場合、ラベルは(lower_boundary,upper_boundary]で、質的ビンの場合、ラベルはそのラベルが表す値に一致します。(この質的ラベル表現の方法は、1つの値が1つのビンに対応する場合にのみ有効です。)ターゲットはビンに区分されませんでした。

WITH
    bin_label_view AS (
    SELECT col, bin, (DECODE(bin,'1','[','(') || lv || ',' || val || ']') label
      FROM (SELECT col,
                   bin,
                   LAST_VALUE(val) OVER (
                   PARTITION BY col ORDER BY val
                   ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) lv,
                   val
             FROM nb_sh_sample_num)
   UNION ALL
   SELECT col, bin, val label
     FROM nb_sh_sample_cat
   ),
   model_details AS (
   SELECT T.target_attribute_name                                        tname,
          TO_CHAR(
          NVL(T.target_attribute_num_value,T.target_attribute_str_value)) tval,
          C.attribute_name                                               pname,
          NVL(L.label, NVL(C.attribute_str_value, C.attribute_num_value)) pval,
          T.prior_probability                                           priorp,
          C.conditional_probability                                      condp
     FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_NB('NB_SH_Clas_sample')) T,
          TABLE(T.conditionals) C,
          bin_label_view L
    WHERE C.attribute_name = L.col (+) AND
          (NVL(C.attribute_str_value,C.attribute_num_value) = L.bin(+))
   ORDER BY 1,2,3,4,5,6
   )
   SELECT tname, tval, pname, pval, priorp, condp
     FROM model_details
    WHERE ROWNUM < 11;

TNAME          TVAL PNAME                     PVAL           PRIORP   CONDP
-------------- ---- ------------------------- ------------- ------- -------
AFFINITY_CARD  0    AGE                       (24,30]         .6500   .1714
AFFINITY_CARD  0    AGE                       (30,35]         .6500   .1509
AFFINITY_CARD  0    AGE                       (35,40]         .6500   .1125
AFFINITY_CARD  0    AGE                       (40,46]         .6500   .1134
AFFINITY_CARD  0    AGE                       (46,53]         .6500   .1071
AFFINITY_CARD  0    AGE                       (53,90]         .6500   .1312
AFFINITY_CARD  0    AGE                       [17,24]         .6500   .2134
AFFINITY_CARD  0    BOOKKEEPING_APPLICATION   0               .6500   .1500
AFFINITY_CARD  0    BOOKKEEPING_APPLICATION   1               .6500   .8500
AFFINITY_CARD  0    BULK_PACK_DISKETTES       0               .6500   .3670

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;

パラメータ

表44-63 GET_MODEL_DETAILS_NMFファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。


戻り値

表44-64 GET_MODEL_DETAILS_NMFファンクションの戻り値

戻り値 説明

DM_NMF_FEATURE_SET

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

(feature_id          NUMBER,
 mapped_feature_id   VARCHAR2(4000),
 attribute_set       DM_NMF_ATTRIBUTE_SET)

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

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

使用上の注意

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

次の例では、サンプル・プルグラムdmnmdemo.sqlで作成された特徴抽出モデルNMF_SH_Sampleに関するモデルのディテールが戻されます。サンプル・プログラムについては、『Oracle Data Mining管理者ガイド』を参照してください。

SELECT * FROM (
SELECT F.feature_id,
       A.attribute_name,
       A.attribute_value,
       A.coefficient
  FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_NMF('NMF_SH_Sample')) F,
       TABLE(F.attribute_set) A
ORDER BY feature_id,attribute_name,attribute_value
) WHERE ROWNUM < 11; 
 
FEATURE_ID ATTRIBUTE_NAME          ATTRIBUTE_VALUE          COEFFICIENT
--------- -----------------------  ---------------- -------------------
        1 AFFINITY_CARD                                 .051208078859308
        1 AGE                                          .0390513260041573
        1 BOOKKEEPING_APPLICATION                      .0512734004239326
        1 BULK_PACK_DISKETTES                           .232471260895683
        1 COUNTRY_NAME             Argentina          .00766817464479959
        1 COUNTRY_NAME             Australia         .000157637881096675
        1 COUNTRY_NAME             Brazil              .0031409632415604
        1 COUNTRY_NAME             Canada             .00144213099311427
        1 COUNTRY_NAME             China             .000102279310968754
        1 COUNTRY_NAME             Denmark           .000242424084307513

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;

パラメータ

表44-65 GET_MODEL_DETAILS_OCファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。

cluster_id

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

attribute

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

centroid

次の値を指定できます。

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

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

histogram

次の値を指定できます。

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

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

rules

次の値を指定できます。

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

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

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


戻り値

表44-66 GET_MODEL_DETAILS_OCファンクションの戻り値

戻り値 説明

DM_CLUSTERS

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

(id               NUMBER,
 cluster_id       VARCHAR2(4000),
 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(4000),
      attribute_subname        VARCHAR2(4000),
      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(4000),
       attribute_subname  VARCHAR2(4000),
       mean               NUMBER,
       mode_value         VARCHAR2(4000),
       variance           NUMBER)

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

    (attribute_name    VARCHAR2(4000),
     attribute_subname  VARCHAR2(4000),
     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,
      rule_lift          NUMBER,
      antecedent_support NUMBER,
      consequent_support NUMBER,
      number_of_items    INTEGER)

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

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

使用上の注意

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

次の例では、サンプル・プルグラムdmocdemo.sqlで作成されたクラスタリング・モデルOC_SH_Clus_sampleに関するモデルのディテールが戻されます。サンプル・プログラムについては、『Oracle Data Mining管理者ガイド』を参照してください。

この例の各クラスタの分割述語は、モデル作成時にクラスタの子にレコードを割り当てるために使用される属性および条件を示します。クラスタ内に移入されたデータをより小さい2つのクラスタに分割する方法に関する重要な情報を提供します。

SELECT clu_id, attribute_name, op, s_value
     FROM (SELECT a.id clu_id, sp.attribute_name, sp.conditional_operator op,
                  sp.attribute_str_value s_value
             FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_OC(
                    'OC_SH_Clus_sample')) a,
                  TABLE(a.split_predicate) sp
           ORDER BY a.id, op, s_value)
     WHERE ROWNUM < 11;
 
     CLU_ID ATTRIBUTE_NAME       OP S_VALUE
----------- -------------------- ---------------------------------
          1 OCCUPATION           IN ?
          1 OCCUPATION           IN Armed-F
          1 OCCUPATION           IN Cleric.
          1 OCCUPATION           IN Crafts
          2 OCCUPATION           IN ?
          2 OCCUPATION           IN Armed-F
          2 OCCUPATION           IN Cleric.
          3 OCCUPATION           IN Exec.
          3 OCCUPATION           IN Farming
          3 OCCUPATION           IN Handler

GET_MODEL_DETAILS_SVMファンクション

このテーブル・ファンクションは、線形サポート・ベクター・マシン(SVM)モデルのディテールを表す行の集合を戻します。非線形SVMに対して起動された場合は、ORA-40215を戻します。

線形SVMモデルでは、ゼロ以外の係数のみが格納されます。これにより記憶域が削減され、モデルをロードする速度が上がります。その結果、GET_MODEL_DETAILS_SVMで戻される係数のリストに属性がない場合、この属性の係数はゼロとして解釈されます。

構文

DBMS_DATA_MINING.GET_MODEL_DETAILS_SVM (
        model_name        VARCHAR2,
        reverse_coef      NUMBER DEFAULT 0)
 RETURN DM_SVM_LINEAR_COEFF_SET PIPELINED;

パラメータ

表44-67 GET_MODEL_DETAILS_SVMファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。

reverse_coef

GET_MODEL_DETAILS_SVMが、元の属性変換を使用して属性の係数を変換するかどうか。

reverse_coefが0(デフォルト)に設定されている場合、GET_MODEL_DETAILS_SVMは変換を適用せずにモデルから直接係数を戻します。

reverse_coefが1に設定されている場合、GET_MODEL_DETAILS_SVMは自動データ準備を使用して生成された正規化シフトおよびスケールを適用して、係数およびバイアスを変換します。

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


戻り値

表44-68 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(4000),
      attribute_subname   VARCHAR2(4000),
      attribute_value     VARCHAR2(4000),
      coefficient         NUMBER)

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


使用上の注意

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

  2. DM_SVM_LINEAR_COEFFclass列には分類ターゲット値が含まれています。SVM回帰モデルの場合、classはNULLです。個々の分類ターゲット値の場合は、係数の集合が戻されます。バイナリ分類モデル、1クラス分類モデルおよび回帰モデルの場合は、係数の単一集合のみが戻されます。

  3. DM_SVM_ATTRIBUTE_SETattribute_value列は、質的属性で使用されます。

  4. GET_MODEL_DETAILSファンクションは、作成プロセス中に適用された変換を自動的に元に戻すことによって、モデル透過性を保持します。このため、モデルのディテールに戻される属性は、モデル作成に使用された元の属性(または元の属性の近似値)となります。

    係数は元の属性ではなく、変換された属性に関連します。係数は、モデルのディテールに直接戻された場合、意味のある情報を表しません。係数が元の属性に関連するようにGET_MODEL_DETAILS_SVMで変換する場合は、reverse_coefパラメータを1に設定します。

次の例では、サンプル・プルグラムdmsvcdem.sqlで作成されたSVM分類モデルSVMC_SH_Clas_sampleに関するモデルのディテールが戻されます。サンプル・プログラムについては、『Oracle Data Mining管理者ガイド』を参照してください。

WITH
  mod_dtls AS (
  SELECT *
    FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_SVM('SVMC_SH_Clas_sample'))
  ),
  model_details AS (
  SELECT D.class, A.attribute_name, A.attribute_value, A.coefficient
    FROM mod_dtls D,
            TABLE(D.attribute_set) A
    ORDER BY D.class, ABS(A.coefficient) DESC
  )
  SELECT class, attribute_name aname, attribute_value aval, coefficient coeff
    FROM model_details
    WHERE ROWNUM < 11;
 
CLASS      ANAME                     AVAL                      COEFF
---------- ------------------------- ------------------------- -----
1                                                              -2.85
1          BOOKKEEPING_APPLICATION                              1.11
1          OCCUPATION                Other                      -.94
1          HOUSEHOLD_SIZE            4-5                         .88
1          CUST_MARITAL_STATUS       Married                     .82
1          YRS_RESIDENCE                                         .76
1          HOUSEHOLD_SIZE            6-8                        -.74
1          OCCUPATION                Exec.                       .71
1          EDUCATION                 11th                       -.71
1          EDUCATION                 Masters                     .63

GET_MODEL_DETAILS_XMLファンクション

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

構文

DBMS_DATA_MINING.GET_MODEL_DETAILS_XML (
         model_name      IN       VARCHAR2)
   RETURN XMLTYPE;

パラメータ

表44-69 GET_MODEL_DETAILS_XMLファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。


戻り値

表44-70 GET_MODEL_DETAILS_XMLファンクションの戻り値

戻り値 説明

XMLTYPE

ディシジョン・ツリー・モデルのXML定義。詳細は、第260章「XMLTYPE」を参照してください。

XMLは、Data Mining Group Predictive Model Markup Language(PMML)バージョン2.1の仕様に準拠しています。この仕様については、http://www.dmg.orgを参照してください。


使用上の注意

Oracle XMLで表示できない特殊文字は「#」に変換されます。

SQL*Plusの次の文は、ディシジョン・ツリー・モデルdt_sh_clas_sampleの詳細を戻します。このモデルは、Oracle Database Examplesにより提供されるデータ・マイニングのサンプル・プログラムであるプログラムdmdtdemo.sqlで作成されます。

注意: XML出力に表示される「&quot」文字は、SQL*Plusの動作の結果です。適切な形式でXMLを表示するには、ファイルに切り取って貼り付け、ファイルをブラウザで開きます。

column dt_details format a320
SELECT 
 dbms_data_mining.get_model_details_xml('dt_sh_clas_sample') 
 AS DT_DETAILS
FROM dual;


DT_DETAILS
--------------------------------------------------------------------------------
<PMML version="2.1">
  <Header copyright="Copyright (c) 2004, Oracle Corporation. All rights
      reserved."/>
  <DataDictionary numberOfFields="9">
    <DataField name="AFFINITY_CARD" optype="categorical"/> 
    <DataField name="AGE" optype="continuous"/> 
    <DataField name="BOOKKEEPING_APPLICATION" optype="continuous"/>
    <DataField name="CUST_MARITAL_STATUS" optype="categorical"/>
    <DataField name="EDUCATION" optype="categorical"/> 
    <DataField name="HOUSEHOLD_SIZE" optype="categorical"/>
    <DataField name="OCCUPATION" optype="categorical"/>
    <DataField name="YRS_RESIDENCE" optype="continuous"/>
    <DataField name="Y_BOX_GAMES" optype="continuous"/>
  </DataDictionary>
  <TreeModel modelName="DT_SH_CLAS_SAMPLE" functionName="classification"
      splitCharacteristic="binarySplit">
    <Extension name="buildSettings">
      <Setting name="TREE_IMPURITY_METRIC" value="TREE_IMPURITY_GINI"/>
      <Setting name="TREE_TERM_MAX_DEPTH" value="7"/>
      <Setting name="TREE_TERM_MINPCT_NODE" value=".05"/>
      <Setting name="TREE_TERM_MINPCT_SPLIT" value=".1"/> 
      <Setting name="TREE_TERM_MINREC_NODE" value="10"/>
      <Setting name="TREE_TERM_MINREC_SPLIT" value="20"/>
      <costMatrix>
        <costElement>
          <actualValue>0</actualValue>
          <predictedValue>0</predictedValue>
          <cost>0</cost>
        </costElement>
        <costElement>
          <actualValue>0</actualValue>
          <predictedValue>1</predictedValue>
          <cost>1</cost>
        </costElement>
        <costElement>
          <actualValue>1</actualValue>
          <predictedValue>0</predictedValue>
          <cost>8</cost> 
        </costElement>
        <costElement> 
          <actualValue>1</actualValue>
          <predictedValue>1</predictedValue> 
          <cost>0</cost> 
        </costElement>
      </costMatrix>
    </Extension>
    <MiningSchema>
      .
      .
      .
      .
      .
      . 
      </Node>
    </Node>
  </TreeModel>
</PMML> 

GET_MODEL_SETTINGSファンクション

GET_MODEL_SETTINGSファンクションは、Oracle Data Mining 11gリリース1(11.1)では推奨されていませんでした。このファンクションは、データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGSに置き換えられました。このビューのUSER_ALL_およびDBA_のバージョンは使用できます。『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

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


注意:

詳細は、「推奨されないサブプログラム」を参照してください。

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

構文

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

パラメータ

表44-71 GET_MODEL_SETTINGSファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。


戻り値

表44-72 GET_MODEL_SETTINGSファンクションの戻り値

戻り値 説明

DM_MODEL_SETTINGS

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

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

使用上の注意

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

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

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

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

GET_MODEL_SIGNATUREファンクション

GET_MODEL_SIGNATUREファンクションは、Oracle Data Mining 11gリリース1(11.1)では推奨されていませんでした。このファンクションは、データ・ディクショナリ・ビュー*_MINING_MODEL_ATTRIBUTESに置き換えられました。このビューのUSER_ALL_およびDBA_のバージョンは使用できます。『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

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


注意:

詳細は、「推奨されないサブプログラム」を参照してください。

このテーブル・ファンクションはモデルのシグネチャを戻します。これは、モデルの作成に使用され、スコアリング・データに存在する必要がある列属性を表示します。

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


関連項目:

GET_MODEL_SIGNATUREファンクションを使用するかわりに、データ・ディクショナリ・ビューALL_MINING_MODEL_ATTRIBUTESを問い合せることができます。『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

構文

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

パラメータ

表44-73 GET_MODEL_SIGNATUREファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。


戻り値

表44-74 GET_MODEL_SIGNATUREファンクションの戻り値

戻り値 説明

DM_MODEL_SIGNATURE

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

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

使用上の注意

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

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

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

GET_MODEL_TRANSFORMATIONSファンクション

このファンクションは、指定したモデルに埋め込まれた変換式を戻します。

構文

DBMS_DATA_MINING.GET_MODEL_TRANSFORMATIONS (
      model_name     IN VARCHAR2)
RETURN DM_TRANSFORMS PIPELINED;

パラメータ

表44-75 GET_MODEL_TRANSFORMATIONSファンクションのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。


戻り値

表44-76 GET_MODEL_TRANSFORMATIONSファンクションの戻り値

戻り値 説明

DM_TRANSFORMS

model_nameに埋め込まれた変換式。

DM_TRANSFORMSタイプはDM_TRANSFORMオブジェクトの表です。各DM_TRANSFORMには次のフィールドがあります。

attribute_name       VARCHAR2(4000)
attribute_subname    VARCHAR2(4000)
expression           CLOB
reverse_expression   CLOB

使用上の注意

自動データ準備(ADP)が有効になっている場合、自動変換とユーザー定義の変換の両方を属性に関連付けることができます。この場合、ユーザー定義の変換は自動変換の前に評価されます。

この例では、SH.CUSTOMERSテーブルのいくつかの列をNaive Bayesモデルの作成に使用します。それらの列のいずれかに変換式が指定されています。このモデルではADPは使用されません。

CREATE OR REPLACE VIEW mining_data AS
   SELECT cust_id, cust_year_of_birth, cust_income_level,cust_credit_limit
   FROM sh.customers;

describe mining_data
 Name                                   Null?    Type
 -------------------------------------- -------- --------------------------
 CUST_ID                                NOT NULL NUMBER
 CUST_YEAR_OF_BIRTH                     NOT NULL NUMBER(4)
 CUST_INCOME_LEVEL                               VARCHAR2(30)
 CUST_CREDIT_LIMIT                               NUMBER
 
CREATE TABLE settings_nb(
      setting_name  VARCHAR2(30),
      setting_value VARCHAR2(30));
BEGIN
     INSERT INTO settings_nb (setting_name, setting_value) VALUES
           (dbms_data_mining.algo_name, dbms_data_mining.algo_naive_bayes);
     INSERT INTO settings_nb (setting_name, setting_value) VALUES
           (dbms_data_mining.prep_auto, dbms_data_mining.prep_auto_off);
     COMMIT;
END;
/
DECLARE
    mining_data_xforms   dbms_data_mining_transform.TRANSFORM_LIST;
  BEGIN
    dbms_data_mining_transform.SET_TRANSFORM (
         xform_list           =>  mining_data_xforms,
         attribute_name       => 'cust_year_of_birth',
         attribute_subname    =>  null,
         expression           => 'cust_year_of_birth + 10',
         reverse_expression   => 'cust_year_of_birth - 10');
    dbms_data_mining.CREATE_MODEL (
        model_name           =>  'new_model',
        mining_function      =>   dbms_data_mining.classification,
        data_table_name      =>  'mining_data',
        case_id_column_name  =>  'cust_id',
        target_column_name   =>  'cust_income_level',
        settings_table_name  =>  'settings_nb',
        data_schema_name     =>   nulL,
        settings_schema_name =>   null,
        xform_list           =>   mining_data_xforms );
  END;
 /
SELECT attribute_name, TO_CHAR(expression), TO_CHAR(reverse_expression)
      FROM TABLE (dbms_data_mining.GET_MODEL_TRANSFORMATIONS('new_model'));

ATTRIBUTE_NAME      TO_CHAR(EXPRESSION)       TO_CHAR(REVERSE_EXPRESSION)
------------------  ------------------------  ----------------------------- 
CUST_YEAR_OF_BIRTH  cust_year_of_birth + 10   cust_year_of_birth - 10

GET_TRANSFORM_LISTプロシージャ

このプロシージャは、DM_TRANSFORMSと指定された変換式を、モデルの作成時に使用できる変換リスト(TRANSFORM_LIST)に変換します。DM_TRANSFORMSGET_MODEL_TRANSFORMATIONSファンクションによって戻されます。

DBMS_DATA_MINING_TRANSFORMパッケージのルーチンを使用して変換リストを作成することもできます。

構文

DBMS_DATA_MINING.GET_TRANSFORM_LIST (
      xform_list           OUT NOCOPY TRANSFORM_LIST,
      model_xforms         IN  DM_TRANSFORMS);

パラメータ

表44-77 GET_TRANSFORM_LISTプロシージャのパラメータ

パラメータ 説明

xform_list

モデルに埋め込むことができる変換の仕様のリスト。CREATE_MODELプロシージャでパラメータとして使用されます。

TRANSFORM_LISTタイプはTRANSFORM_RECオブジェクトのテーブルです。各TRANSFORM_RECには次のフィールドがあります。

attribute_name      VARCHAR2(30)
attribute_subname   VARCHAR2(4000)
expression          EXPRESSION_REC
reverse_expression  EXPRESSION_REC
attribute_spec      VARCHAR2(4000)

TRANSFORM_LISTコレクション・タイプの詳細は、表45-1「DBMS_DATA_MINING_TRANSFORMのデータ・タイプ」を参照してください。

model_xforms

特定のモデルに対してGET_MODEL_TRANSFORMATIONSファンクションで戻される埋め込まれた変換式のリスト。

DM_TRANSFORMSタイプはDM_TRANSFORMオブジェクトの表です。各DM_TRANSFORMには次のフィールドがあります。

attribute_name       VARCHAR2(4000)
attribute_subname    VARCHAR2(4000)
expression           CLOB
reverse_expression   CLOB

この例では、SH.CUSTOMERSテーブルのいくつかの列を使用してモデルmod1を調整します。このモデルでは、いずれかの列を自動的にビンに区分するADPが使用されます。

2つ目のモデルmod2では、ADPを使用せずに同じデータを調整しますが、mod1から取得した変換リストは使用します。結果として、mod1mod2の両方に同じ変換式が埋め込まれます。

CREATE OR REPLACE VIEW mining_data AS
     SELECT cust_id, cust_year_of_birth, cust_income_level, cust_credit_limit
     FROM sh.customers;
 
describe mining_data
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 CUST_ID                                   NOT NULL NUMBER
 CUST_YEAR_OF_BIRTH                        NOT NULL NUMBER(4)
 CUST_INCOME_LEVEL                                  VARCHAR2(30)
 CUST_CREDIT_LIMIT                                  NUMBER

CREATE TABLE setmod1(setting_name  VARCHAR2(30),setting_value VARCHAR2(30));
BEGIN
   INSERT INTO setmod1 VALUES (dbms_data_mining.algo_name, dbms_data_mining.algo_naive_bayes);
   INSERT INTO setmod1 VALUES (dbms_data_mining.prep_auto,dbms_data_mining.prep_auto_on);
   dbms_data_mining.CREATE_MODEL (
               model_name            => 'mod1',
               mining_function       => dbms_data_mining.classification,
               data_table_name       => 'mining_data',
               case_id_column_name   => 'cust_id',
               target_column_name    => 'cust_income_level',
               settings_table_name   => 'setmod1');
    COMMIT;
END;
/
CREATE TABLE setmod2(setting_name  VARCHAR2(30),setting_value VARCHAR2(30));
BEGIN
  INSERT INTO setmod2
      VALUES (dbms_data_mining.algo_name, dbms_data_mining.algo_naive_bayes);
  COMMIT;
END;
/
DECLARE
  v_xform_list       dbms_data_mining_transform.TRANSFORM_LIST;
  dmxf               DM_TRANSFORMS;
BEGIN
   EXECUTE IMMEDIATE
    'SELECT dm_transform(attribute_name, attribute_subname,expression, reverse_expression)
     FROM TABLE(dbms_data_mining.GET_MODEL_TRANSFORMATIONS (''mod1''))'
     BULK COLLECT INTO dmxf;
   dbms_data_mining.GET_TRANSFORM_LIST (
        xform_list             =>  v_xform_list,
        model_xforms           =>  dmxf);
   dbms_data_mining.CREATE_MODEL(
         model_name            => 'mod2',
         mining_function       =>  dbms_data_mining.classification,
         data_table_name       => 'mining_data',
         case_id_column_name   => 'cust_id',
         target_column_name    => 'cust_income_level',
         settings_table_name   => 'setmod2',
         xform_list            =>  v_xform_list);
END;
/

-- Transformation expression embedded in mod1
SELECT TO_CHAR(expression) FROM TABLE (dbms_data_mining.GET_MODEL_TRANSFORMATIONS('mod1'));

TO_CHAR(EXPRESSION)
--------------------------------------------------------------------------------
CASE WHEN "CUST_YEAR_OF_BIRTH"<1915 THEN 0 WHEN "CUST_YEAR_OF_BIRTH"<=1915 THEN 0
WHEN "CUST_YEAR_OF_BIRTH"<=1920.5 THEN 1 WHEN "CUST_YEAR_OF_BIRTH"<=1924.5 THEN 2
.
.
.
.5 THEN 29 WHEN "CUST_YEAR_OF_BIRTH" IS NOT NULL THEN 30 END

-- Transformation expression embedded in mod2
SELECT TO_CHAR(expression) FROM TABLE (dbms_data_mining.GET_MODEL_TRANSFORMATIONS('mod2'));

TO_CHAR(EXPRESSION)
--------------------------------------------------------------------------------
CASE WHEN "CUST_YEAR_OF_BIRTH"<1915 THEN 0 WHEN "CUST_YEAR_OF_BIRTH"<=1915 THEN 0
WHEN "CUST_YEAR_OF_BIRTH"<=1920.5 THEN 1 WHEN "CUST_YEAR_OF_BIRTH"<=1924.5 THEN 2
.
.
.
.5 THEN 29 WHEN "CUST_YEAR_OF_BIRTH" IS NOT NULL THEN 30 END

-- Reverse transformation expression embedded in mod1
SELECT TO_CHAR(reverse_expression)FROM TABLE (dbms_data_mining.GET_MODEL_TRANSFORMATIONS('mod1'));

TO_CHAR(REVERSE_EXPRESSION)
--------------------------------------------------------------------------------
DECODE("CUST_YEAR_OF_BIRTH",0,'( ; 1915), [1915; 1915]',1,'(1915; 1920.5]',2,'(1
920.5; 1924.5]',3,'(1924.5; 1928.5]',4,'(1928.5; 1932.5]',5,'(1932.5; 1936.5]',6
.
.
.
8,'(1987.5; 1988.5]',29,'(1988.5; 1989.5]',30,'(1989.5;  )',NULL,'NULL')
 
-- Reverse transformation expression embedded in mod2
SELECT TO_CHAR(reverse_expression) FROM TABLE (dbms_data_mining.GET_MODEL_TRANSFORMATIONS('mod2'));
      
TO_CHAR(REVERSE_EXPRESSION)
--------------------------------------------------------------------------------
DECODE("CUST_YEAR_OF_BIRTH",0,'( ; 1915), [1915; 1915]',1,'(1915; 1920.5]',2,'(1
920.5; 1924.5]',3,'(1924.5; 1928.5]',4,'(1928.5; 1932.5]',5,'(1932.5; 1936.5]',6
.
.
.
8,'(1987.5; 1988.5]',29,'(1988.5; 1989.5]',30,'(1989.5;  )',NULL,'NULL')

IMPORT_MODELプロシージャ

このプロシージャは、1つ以上のデータ・マイニング・モデルをインポートします。このプロシージャはオーバーロードされています。このプロシージャをコールして、ダンプ・ファイル・セットからマイニング・モデルをインポートするか、PMML文書から単一のマイニング・モデルをインポートすることができます。

ダンプ・ファイル・セットからのインポート

EXPORT_MODELプロシージャによって作成されたダンプ・ファイル・セットからマイニング・モデルをインポートできます。IMPORT_MODELおよびEXPORT_MODELでは、ダンプ・ファイル・セットへのエクスポートとダンプ・ファイル・セットからのインポートにOracle Data Pumpテクノロジが使用されています。

Oracle Data Pumpを直接使用してスキーマ全体またはデータベース全体をエクスポートまたはインポートする場合、そのスキーマまたはデータベースのマイニング・モデルが含められます。EXPORT_MODELおよびIMPORT_MODELでは、マイニング・モデルのみがエクスポートおよびインポートされます。

PMMLからのインポート

この機能は、Oracle Database 11gリリース2(11.2.0.2)以上のデータ・マイニングで使用できます。

Predictive Model Markup Language(PMML)で表現されたマイニング・モデルをインポートできます。モデルのタイプは、RegressionModel(線形回帰またはバイナリ・ロジスティック回帰)である必要があります。

PMMLは、Data Mining Group(http://www.dmg.org)によって策定されたXMLベースの規格です。PMMLに準拠しているアプリケーションは、任意のベンダーによって作成されたPMML準拠のモデルをデプロイできます。Oracle Data Miningでは、回帰モデルに対応するPMML 3.1のコア機能がサポートされます。


関連項目:

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

Oracle Data Pumpの詳細は、『Oracle Databaseユーティリティ』を参照してください。

PMMLの詳細は、http://www.dmg.org/faq.htmlを参照してください。


構文

ダンプ・ファイル・セットからのマイニング・モデルのインポート:

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);

PMML文書からのマイニング・モデルのインポート:

DBMS_DATA_MINING.IMPORT_MODEL (
      model_name      IN  VARCHAR2,
      pmmldoc         IN XMLTYPE);

パラメータ

表44-78 IMPORT_MODELプロシージャのパラメータ

パラメータ 説明

filename

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

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

directory

ダンプ・ファイル・セットの場所を指定する、事前定義済のディレクトリ・オブジェクトの名前。エクスポートするユーザーとインポートするユーザーには、このディレクトリ・オブジェクト、およびこのディレクトリ・オブジェクトによって指定されるファイル・システム・ディレクトリに対する読取り/書込みアクセス権が必要です。

注意: ターゲット・データベースにも、このファイル・システム・ディレクトリに対する読取り/書込みアクセス権が必要です。

model_filter

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

model_filterの値には、1つ以上のモデル名を指定できます。有効なフィルタは次のとおりです。

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

1行目では、IMPORT_MODELによってmymodel1という名前の1つのモデルがインポートされます。2行目では、IMPORT_MODELによって2つのモデル(mymodel2およびmymodel3)がインポートされます。

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'と指定します。

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

model_name

PMMLからのインポートの結果としてデータベースに作成される新規モデルの名前。この名前は、ユーザーのスキーマ内で一意である必要があります。

pmmldoc

インポート対象のモデルを表現したPMML文書。PMML文書には、XMLTYPEオブジェクト・タイプが含まれます。詳細は、第260章「XMLTYPE」を参照してください。


使用上の注意

次の注意は、Oracle Data Pumpに基づくマイニング・モデルのインポートに関連します。

マイニング・モデルは、マイニング・モデルの所有者のデフォルト表領域か、または所有者がアクセス権を保持する表領域に格納されます。また、この表領域はターゲット・データベースに存在し、ターゲット・ユーザーはその表領域にアクセスできる必要があります。表領域がターゲット・データベースに存在しない場合、モデルをインポートする前に表領域を作成する必要があります。

たとえば、モデルがDMUSERスキーマに作成されており、DMUSERのデフォルト表領域がUSERSである場合、ターゲット・データベースにUSERS表領域が存在している必要があります。次のように、USERS表領域を作成し、適切な表領域割当て制限を指定してターゲット・ユーザーにアクセス権を付与できます。

connect / as sysdba;
create tablespace USERS datafile 'data_file_name' size 200M autoextend on;
alter user target_user quota unlimited on USERS;

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

    SQL> connect dmuser2
    Enter password: dmuser2_password
    Connected.
    SQL> select model_name from user_mining_models;
     
    MODEL_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
    Enter password: dmuser3_password
    Connected.
    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というディレクトリ・オブジェクトにマップされたファイル・システム・ディレクトリに保存されています。ユーザーMARYIMP_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;
    /
    
  2. この例では、ディレクトリ・オブジェクトPMMLDIRによって参照される場所から、現行ユーザーのスキーマにSamplePMML1.xmlというPMML文書をインポートする方法を示します。インポートされるモデルの名前は、PMMLMODEL1になります。

    BEGIN    
        dbms_data_mining.import_model ('PMMLMODEL1',
            XMLType (bfilename ('PMMLDIR', 'SamplePMML1.xml'),
              nls_charset_id ('AL32UTF8')
            ));
    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_table_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);

パラメータ

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

パラメータ 説明

apply_result_table_name

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

case_id_column_name

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

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 training 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;

REMOVE_COST_MATRIXプロシージャ

分類モデルからデフォルトのスコアリング・マトリックスを削除します。

構文

DBMS_DATA_MINING.REMOVE_COST_MATRIX (
      model_name   IN  VARCHAR2);

パラメータ

表44-80 Remove_Cost_Matrixプロシージャのパラメータ

パラメータ 説明

model_name

[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。


使用上の注意

モデルがスキーマにない場合、REMOVE_COST_MATRIXでは、ALTER ANY MINING MODELシステム権限またはそのマイニング・モデルに対するALTERオブジェクト権限が必要です。

Naive BayesモデルNB_SH_CLAS_SAMPLEには、モデルのスコアリングに使用できるコスト・マトリックスが関連付けられています。

SQL>SELECT *
      FROM TABLE(dbms_data_mining.get_model_cost_matrix('nb_sh_clas_sample'))
      ORDER BY predicted, actual;
 
ACTUAL     PREDICTED        COST
---------- ---------- ----------
0          0                   0
1          0                 .75
0          1                 .25
1          1                   0

REMOVE_COST_MATRIXを使用すると、コスト・マトリックスを削除できます。

SQL>EXECUTE dbms_data_mining.remove_cost_matrix('nb_sh_clas_sample');

SQL>SELECT *
      FROM TABLE(dbms_data_mining.get_model_cost_matrix('nb_sh_clas_sample'))
      ORDER BY predicted, actual;

no rows selected

RENAME_MODELプロシージャ

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

モデル名は、[schema_name.]model_nameの形式です。スキーマを指定しない場合は、独自のスキーマが使用されます。マイニング・モデルのネーミングにおける制限の詳細は、「マイニング・モデルのネーミングにおける制限」を参照してください。

構文

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

パラメータ

表44-81 RENAME_MODELプロシージャのパラメータ

パラメータ 説明

model_name

モデルの現在の名前。

new_model_name

モデルの新しい名前。


使用上の注意

ただし、APPLYでモデルを使用しているときに、そのモデルの名前を変更すると、RENAME操作は成功しますが、APPLYからは不確定な結果が戻されます。

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

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