日本語PDF

48 DBMS_DATA_MINING

DBMS_DATA_MININGパッケージは、データ・マイニング・モデルを作成、評価および問い合せるためのアプリケーション・プログラミング・インタフェースです。

この章のトピックは、次のとおりです:

48.1 DBMS_DATA_MININGの概要

Oracle Data Miningでは、教師ありデータ・マイニングと教師なしデータ・マイニングの両方がサポートされています。教師ありデータ・マイニングでは、履歴データに基づいてターゲット値が予測されます。教師なしデータ・マイニングでは、自然なグループが検出され、ターゲットは使用されません。Oracle Data Miningを使用すると、構造化データおよび非構造化テキストをマイニングできます。

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

  • 分類

  • 回帰

  • 特徴選択(属性評価)

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

  • クラスタリング

  • 相関

  • 特徴抽出

  • 異常検出

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

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

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

Apriori

AR

相関

CURマトリックス分解

CUR

属性評価

デシジョン・ツリー

DT

分類

期待値の最大化

EM

クラスタリング

明示的セマンティック分析

ESA

特徴抽出、分類

指数平滑法

ESM

時系列

一般化線形モデル

GLM

分類、回帰

k-Means

KM

クラスタリング

最小記述長

MDL

属性評価

Naive Bayes

NB

分類

ニューラル・ネットワーク

NN

分類、回帰

Non-Negative Matrix Factorization

NMF

特徴抽出

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

O-Cluster

クラスタリング

ランダム・フォレスト

RF

分類

特異値分解および主成分分析

SVDおよびPCA

特徴抽出

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

SVM

分類、回帰、異常検出

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

表48-2 Oracle Data Miningのデフォルト・アルゴリズム

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

分類

Naive Bayes

クラスタリング

k-Means

特徴抽出

Non-Negative Matrix Factorization

特徴選択

最小記述長

回帰

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

48.2 DBMS_DATA_MININGのセキュリティ・モデル

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

DBMS_DATA_MININGパッケージは、Advanced Analytics OptionのOracle Data Miningコンポーネントに使用されるAPIを公開します。独自のスキーマでマイニング・モデルを作成するユーザーには、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ユーザーズ・ガイドを参照してください。

48.3 DBMS_DATA_MINING — マイニング機能

データ・マイニング機能は、データ・マイニングに関する特定の種類の問題を解決するための方法です。

マイニング機能は、モデルの作成時に指定する必要があります。(「CREATE_MODELプロシージャ」を参照)

表48-3 マイニング機能

説明

ASSOCIATION

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

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

ATTRIBUTE_IMPORTANCE

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

属性評価モデルは、最小記述長またはCURマトリックス分解を使用できます。デフォルトは最小記述長です。

CLASSIFICATION

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

分類モデルでは、Naive Bayes、デシジョン・ツリー、ロジスティック回帰またはサポート・ベクター・マシンを使用できます。デフォルトはNaive Bayes。

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

CLUSTERING

クラスタリングは、記述マイニング機能の一種です。クラスタリング・モデルは、データセットの中で自然なグループを識別する。

クラスタリング・モデルでは、k-Means、O-Clusterまたは期待値の最大化を使用できます。デフォルトはk-Means。

FEATURE_EXTRACTION

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

特徴抽出モデルでは、明示的セマンティック分析、Non-negative Matrix Factorization、特異値分解または主成分分析を使用できます。デフォルトはNon-Negative Matrix Factorizationです。

REGRESSION

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

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

TIME_SERIES

時系列は、予測マイニング機能の一種です。時系列モデルでは、ユーザー指定の時間枠にわたる時系列の履歴数値データの将来の値が予測されます。時系列モデルでは、指数平滑法アルゴリズムが使用されます。

参照:

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

48.4 DBMS_DATA_MINING — モデル設定

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

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

表48-4 モデル設定表に必要な列

列名 データ・タイプ

SETTING_NAME

VARCHAR2(30)

SETTING_VALUE

VARCHAR2(4000)

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

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

参照:

48.4.1 DBMS_DATA_MINING — アルゴリズム名

ALGO_NAME設定では、モデルのアルゴリズムが指定されます。

次の表に、ALGO_NAME設定の値を示します。

表48-5 アルゴリズム名

ALGO_NAMEの値 説明 マイニング機能

ALGO_AI_MDL

最小記述長

属性評価

ALGO_APRIORI_ASSOCIATION_RULES

Apriori

相関ルール

ALGO_CUR_DECOMPOSITION

CUR分解

属性評価

ALGO_DECISION_TREE

デシジョン・ツリー

分類

ALGO_EXPECTATION_MAXIMIZATION

期待値の最大化

クラスタリング

ALGO_EXPLICIT_SEMANTIC_ANALYS

明示的セマンティック分析

特徴抽出

分類

ALGO_EXPONENTIAL_SMOOTHING

指数平滑法

時系列

ALGO_EXTENSIBLE_LANG

拡張可能アルゴリズムで使用される言語

サポートされるすべてのマイニング機能

ALGO_GENERALIZED_LINEAR_MODEL

一般化線形モデル

分類、回帰および特徴選択と特徴生成

ALGO_KMEANS

拡張k_Means

クラスタリング

ALGO_NAIVE_BAYES

Naive Bayes

分類

ALGO_NEURAL_NETWORK

ニューラル・ネットワーク

分類

ALGO_NONNEGATIVE_MATRIX_FACTOR

Non-Negative Matrix Factorization

特徴抽出

ALGO_O_CLUSTER

O-Cluster

クラスタリング

ALGO_RANDOM_FOREST

ランダム・フォレスト

分類

ALGO_SINGULAR_VALUE_DECOMP

特異値分解

特徴抽出

ALGO_SUPPORT_VECTOR_MACHINES

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

分類および回帰

参照:

アルゴリズムの詳細は、『Oracle Data Mining概要』を参照してください。

48.4.2 DBMS_DATA_MINING — 自動データ準備

Oracle Data Miningでは、完全自動データ準備(ADP)、ユーザーが指示する一般的なデータ準備およびユーザー指定の埋込みデータ準備がサポートされます。PREP_*設定により、完全自動データ準備またはユーザーが指示する一般的なデータ準備をユーザーが要求できます。デフォルトでは、完全自動データ準備(PREP_AUTO_ON)が有効になっています。

自動データ準備を有効にすると、モデルでは、経験則を使用し、アルゴリズムの要件に応じて作成データを変換します。ユーザーは、完全自動データ準備のかわりに、PREP_SCALE*PREP_SHIFT*の設定を使用したデータのシフトまたはスケール(あるいはその両方)を要求できます。変換命令は、モデルに格納され、モデルが適用されるたびに再利用されます。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューに関する項を参照してください。

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

自動データ準備を使用せず、CREATE_MODELへのxform_listパラメータに変換を指定しない場合、作成データ、テスト・データおよびスコアリング・データに個別に自分の変換を実装する必要があります。各データ・セットに同じ変換を実装する場合は特に注意してください。

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

次の表に、PREP_*設定の値を示します。

表48-6 PREP_*設定

設定名 設定値 説明

PREP_AUTO

  • PREP_AUTO_ON

  • PREP_AUTO_OFF

この設定により、完全自動データ準備が有効になります。

デフォルトはPREP_AUTO_ONです。

PREP_SCALE_2DNUM

  • PREP_SCALE_STDDEV

  • PREP_SCALE_RANGE

この設定により、2次元数値列のスケーリングのデータ準備が有効になります。この変更を有効にするには、PREP_AUTOOFFにする必要があります。次は、返される値です。

  • PREP_SCALE_STDDEV: 列の値を列の標準偏差で割る要求であり、多くの場合PREP_SHIFT_MEANとともに指定されてz-スコアによる正規化が行われます。

  • PREP_SCALE_RANGE: 列の値を値の範囲で割る要求であり、多くの場合PREP_SHIFT_MINとともに指定されて[0,1]の範囲が得られます。

PREP_SCALE_NNUM

PREP_SCALE_MAXABS

この設定により、ネストした数値列のスケーリングのデータ準備が有効になります。この変更を有効にするには、PREP_AUTOOFFにする必要があります。指定した場合、この設定の有効な値はPREP_SCALE_MAXABSで、これによって[-1,1]の範囲のデータが得られます。

PREP_SHIFT_2DNUM

  • PREP_SHIFT_MEAN

  • PREP_SHIFT_MIN

この設定により、2次元数値列のセンタリングのデータ準備が有効になります。この変更を有効にするには、PREP_AUTOOFFにする必要があります。次は、返される値です。
  • PREP_SHIFT_MEAN: 各値から列の平均が差し引かれます。

  • PREP_SHIFT_MIN: 各値から列の最小値が差し引かれます。

.

参照:

データ変換の詳細は、Oracle Data Miningユーザーズ・ガイドを参照してください。

48.4.3 DBMS_DATA_MINING — マイニング機能の設定

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

表48-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です。

相関

ASSO_MIN_SUPPORT_INT

正の整数

各ルールで満たす必要がある絶対最小支持度。値は整数である必要があります。

デフォルトは1です。

相関

ASSO_MIN_REV_CONFIDENCE

TO_CHAR( 0<= numeric_expr <=1)

各ルールで満たす必要がある最小逆確信度を設定します。

ルールの逆確信度は、ルールが発生するトランザクションの数を後件が発生するトランザクションの数で割ったものとして定義されています。

値は0から1の実数になります。

デフォルトは0です。

相関

ASSO_IN_RULES

NULL

各相関ルールに適用されるインクルード・ルールを設定します。これにより、項目のリストが指定されて、その1つ以上が前件または後件としてレポート対象の各相関ルールに表示されます。これは、インクルードする項目のリストを含むカンマで区切られた文字列です。

設定しない場合のデフォルトの動作では、フィルタ処理は適用されません。

相関

ASSO_EX_RULES

NULL

各相関ルールに適用されるエクスクルード・ルールを設定します。これにより、項目のリストが指定されて、レポート対象の各相関ルールにそれらの項目が表示されなくなります。これは、除外する項目のリストを含むカンマで区切られた文字列です。リスト内の項目をルールに含めることはできません。

デフォルトはNULLです。

相関

ASSO_ANT_IN_RULES

NULL

前件のインクルード・ルールを設定します。これにより、項目のリストが指定されて、レポート対象の各相関ルールの前件部分にその1つ以上が表示されます。これは、インクルードする項目のリストを含むカンマで区切られた文字列です。各ルールの前件部分に、リスト内の1つ以上の項目が含まれます。

デフォルトはNULLです。

相関

ASSO_ANT_EX_RULES

NULL

前件のエクスクルード・ルールを設定します。これにより、項目のリストが指定されて、レポート対象の各相関ルールの前件部分にそれらの項目が表示されなくなります。これは、除外する項目のリストを含むカンマで区切られた文字列です。リスト内の項目をルールの前件部分に含めることはできません。

デフォルトはNULLです。

相関

ASSO_CONS_IN_RULES

NULL

後件のインクルード・ルールを設定します。これにより、項目のリストが指定されて、レポート対象の各相関ルールの後件部分にその1つ以上が表示されます。これは、インクルードする項目のリストを含むカンマで区切られた文字列です。各ルールの後件は、リスト内の項目である必要があります。

デフォルトはNULLです。

相関

ASSO_CONS_EX_RULES

NULL

後件のエクスクルード・ルールを設定します。これにより、項目のリストが指定されて、レポート対象の各相関ルールの後件部分にそれらの項目が表示されなくなります。これは、除外する項目のリストを含むカンマで区切られた文字列です。リスト内の項目を後件としてルールに含めることはできません。

エクスクルード・ルールを使用すると、格納する必要があるデータを削減できますが、ユーザーは、異なるインクルード・ルールまたはエクスクルード・ルールを実行するための追加のモデルを作成する必要がある場合があります。

デフォルトはNULLです。

相関

ASSO_AGGREGATES

NULL

集計する列を指定します。これは、集計する列の名前を含むカンマで区切られた文字列です。リスト内の列の数は10以下にする必要があります。

ODMS_ITEM_ID_COLUMN_NAMEがトランザクション型の入力データを指定するように設定されている場合に、ASSO_AGGREGATESを設定できます。「DBMS_DATA_MINING - グローバル設定」を参照してください。ODMS_ITEM_ID_COLUMN_NAMEおよびcase_id_column_nameからそれぞれ導出されるITEM_IDおよびCASE_IDのような有効な列名がデータ表に含まれている必要があります。

ITEM_VALUEは必須値ではありません。

デフォルトはNULLです。

項目ごとに、ユーザーが集計対象の複数の列を指定できます。追加データをバッファする場合は、必要なメモリー量が増加します。また、入力データ・セットが大きくなり、操作が増えるため、パフォーマンスへの影響が発生する場合があります。

相関

ASSO_ABS_ERROR

0<ASSO_ABS_ERRORMAX(ASSO_MIN_SUPPORT, ASSO_MIN_CONFIDENCE)

相関ルール・サンプリングの絶対エラーを指定します。

ASSO_ABS_ERRORの値を小さくするとサンプル・サイズが大きくなり、正確な結果が得られますが、計算時間が長くなります。ASSO_ABS_ERRORにデフォルト値などの適切な値を設定し、サンプル・サイズが大きくならないようにします。デフォルト値は0.5 * MAX(ASSO_MIN_SUPPORT, ASSO_MIN_CONFIDENCE)です。

相関

ASSO_CONF_LEVEL

0ASSO_CONF_LEVEL1

相関ルール・サンプルの信頼水準を指定します。

ASSO_CONF_LEVELの値を大きくすると、サンプル・サイズが大きくなります。0.9から1の間の値が適しています。デフォルト値は0.95です。

分類

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概要』を参照してください。

分類

CLAS_WEIGHTS_BALANCED

ON

OFF

この設定により、ターゲットの分布を平均化するモデルをアルゴリズムで作成する必要があることが指定されます。分布の平均化では、主要なクラスを重視する全体精度ではなく、平均精度(クラスごとの精度の平均)を向上できるため、この設定は稀なターゲットが存在する場合に最適です。デフォルト値はOFFです。

分類

CLAS_MAX_SUP_BINS

デシジョン・ツリー:

2 <=数値<=2147483647

ランダム・フォレスト:

2 <=数値<=254

このパラメータでは、各属性のビンの最大数を指定します。

デフォルト値は32です。

「DBMS_DATA_MINING — 自動データ準備」を参照してください。

クラスタリング

CLUS_NUM_CLUSTERS

TO_CHAR( numeric_expr >=1)

クラスタリング・アルゴリズムで生成されるリーフ・クラスタの最大数。このアルゴリズムでは、データによって、より少ない数のクラスタが返される場合があります。

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

期待値の最大化(EM)では、データによって、CLUS_NUM_CLUSTERSで指定されているよりも少ない数のクラスタが返される場合があります。EMによって返されるクラスタ数は、アルゴリズム固有の設定で制御しているコンポーネント数を超えることはできません。(「学習用の期待値の最大化設定」の表を参照)。これらの設定によっては、コンポーネントよりもクラスタの数が少ない場合があります。コンポーネントのクラスタリングが無効な場合、クラスタの数はコンポーネントの数に等しくなります。

EMでは、CLUS_NUM_CLUSTERSのデフォルト値は、システムによって決定されます。k-MeansとO-Clusterでは、デフォルトは10になります。

特徴抽出

FEAT_NUM_FEATURES

TO_CHAR( numeric_expr >=1)

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

アルゴリズムによって、データからデフォルトが見積もられます。マトリックスのランクがこの数よりも小さい場合、戻される特徴は少なくなります。

CURマトリックス分解では、FEAT_NUM_FEATURESの値はCURS_SVD_RANKの値と同じです。

参照:

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

48.4.4 DBMS_DATA_MINING — グローバル設定

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

表48-8 グローバル設定

設定名 設定値 説明

ODMS_ITEM_ID_COLUMN_NAME

column_name

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

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

  • 項目ID: 質的または量的のいずれか

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

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

単一レコード・ケース・データおよびマルチレコード・ケース・データの詳細は、Oracle Data Miningユーザーズ・ガイドを参照してください。

ODMS_ITEM_VALUE_COLUMN_NAME

column_name

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

ASSO_AGGREGATESが使用される場合、作成データに次の3つの列とAGGREGATES設定で指定した列が含まれる必要があります。

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

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

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

ASSO_AGGREGATES、ケースIDおよび項目ID列が存在する場合は、項目値列が表示される場合とされない場合があります。

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

ASSO_AGGREGATESの詳細は、「DBMS_DATA_MINING - マイニング機能の設定」を参照してください。

ODMS_MISSING_VALUE_TREATMENT

ODMS_MISSING_VALUE_MEAN_MODE

ODMS_MISSING_VALUE_DELETE_ROW

ODMS_MISSING_VALUE_AUTO

トレーニング・データでの欠損値を処理する方法を示します。この設定は、スコアリング・データに影響を与えません。デフォルト値は、ODMS_MISSING_VALUE_AUTOです。

ODMS_MISSING_VALUE_MEAN_MODEでは、欠損値は、作成時と適用時に、適宜平均値(量的属性)または最頻値(質的属性)に置き換えられます。ODMS_MISSING_VALUE_AUTOでは、アルゴリズムごとに異なる計画が実行されます。

ODMS_MISSING_VALUE_TREATMENTODMS_MISSING_VALUE_DELETE_ROWに設定すると、欠損値を含むトレーニング・データの行は削除されます。ただし、スコアリング・データにおいてこのような欠損値の処理を行うには、明示的に変換を実行する必要があります。

ODMS_MISSING_VALUE_DELETE_ROWは、すべてのアルゴリズムに適用できます。

ODMS_ROW_WEIGHT_COLUMN_NAME

column_name

(GLMのみ)行の重み要素を含むトレーニング・データの列の名前。列のデータ・タイプはNUMBERであることが必要です。

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

ODMS_TEXT_POLICY_NAME

CTX_DDL.CREATE_POLICYを使用して作成された、Oracle Textポリシーの名前。

非構造化テキストからの個々のトークンの抽出方法に影響を与える。

CTX_DDL.CREATE_POLICYの詳細は、『Oracle Textリファレンス』を参照してください。

ODMS_TEXT_MAX_FEATURES

1 <=

CREATE_MODELに渡されたドキュメント・セットで使用可能な、すべてのテキスト属性の個別機能の最大数。デフォルトは3000です。ESAのデフォルト値は300000です。

ODMS_TEXT_MIN_DOCUMENTS

負でない値

あるトークンがいくつのドキュメントに表示されればそれを特徴として使用できるかを制御するテキスト処理設定です。

デフォルトは1です。ESAのデフォルトは3です。

ODMS_PARTITION_COLUMNS

マイニング属性のカンマ区切りのリスト

この設定は、パーティション化されたモデルを作成する要求を示しています。設定値は、リスト内のパーティション・キーの値を決定するために使用されるマイニング属性のカンマ区切りのリストです。XFORM_LISTパラメータがCREATE_MODELに渡されていないかぎり、これらのマイニング属性は入力列から取得されます。XFORM_LISTパラメータがCREATE_MODELに渡された場合、これらの変換によって生成された属性からマイニング属性が取得されます。

ODMS_MAX_PARTITIONS

1 < value <= 1000000

この設定は、モデルに対して許可されるパーティションの最大数を示します。デフォルトは1000です。

ODMS_SAMPLING

ODMS_SAMPLING_ENABLE

ODMS_SAMPLING_DISABLE

この設定により、ユーザーが作成データのサンプリングを要求できます。デフォルトはODMS_SAMPLING_DISABLEです。

ODMS_SAMPLE_SIZE

0 < Value

この設定により、サンプリングされるおおよその行数が決まります。これは、ODMS_SAMPLINGが有効である場合にのみ設定できます。デフォルト値は、システムによって決定されます。

ODMS_PARTITION_BUILD_TYPE

ODMS_PARTITION_BUILD_INTRA

ODMS_PARTITION_BUILD_INTER

ODMS_PARTITION_BUILD_HYBRID

この設定により、パーティション化されたモデルのパラレル作成が制御されます。

ODMS_PARTITION_BUILD_INTRA — 各パーティションは、すべてのスレーブを使用してパラレルで作成されます。

ODMS_PARTITION_BUILD_INTER — 各パーティションは1つのスレーブのみで作成されますが、複数のスレーブがアクティブであるため、複数のパーティションを同時に作成できます。

ODMS_PARTITION_BUILD_HYBRID — これは、他の2つのタイプの組合せであり、多くの状況で動的環境に適応するため、お薦めします。

デフォルト・モードは、ODMS_PARTITION_BUILD_HYBRIDです。

ODMS_TABLESPACE_NAME

tablespace_name

この設定により、記憶域の指定が制御されます。

これを(十分な割当て容量がある)表領域の名前に明示的に設定した場合、指定した表領域の記憶域によって結果のモデルの内容が作成されます。この設定を指定しない場合、ユーザーのデフォルトの表領域によって結果のモデルの内容が作成されます。

ODMS_RANDOM_SEED

この値は、負でない整数である必要があります

乱数シードが指定されたハッシュ関数により、一様分布で乱数が生成されます。ユーザーは、この設定で乱数シードを制御できます。デフォルトは0です。

この設定は、ランダム・フォレスト、ニューラル・ネットワークおよびCURで使用されます。

ODMS_DETAILS

  • ODMS_ENABLE

  • ODMS_DISABLE

この設定により、モデル、特に、パーティション化されたモデルの作成中に使用される領域が削減されます。デフォルト値はODMS_ENABLEです。

設定がODMS_ENABLEの場合、モデルの作成時にモデルの表およびビューが作成されます。モデルをSQLで問い合せることができます。この設定がODMS_DISABLEの場合、モデル・ビューは作成されず、モデル詳細に関連する表も作成されません。

領域での削減はモデルに依存します。10倍程度の削減を実現できます。

参照:

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

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

非構造化テキストのマイニングの詳細は、Oracle Data Miningユーザーズ・ガイドを参照してください。

48.4.5 DBMS_DATA_MINING - アルゴリズムの設定: ALGO_EXTENSIBLE_LANG

次の表に示されている設定が、拡張可能アルゴリズムを使用するマイニング・モデルの動作を構成します。マイニング・モデルは、R言語で作成されます。

RALG_*_FUNCTIONでは、Rモデルの作成、スコアリングおよび表示に使用され、Oracle R Enterpriseスクリプト・リポジトリに登録する必要があるRスクリプトが指定されます。Rスクリプトは、特別な権限を持つOracle R Enterpriseを通じて登録されます。MINING_MODEL_SETTING表でALGO_EXTENSIBLE_LANGがRに設定されている場合は、R言語でマイニング・モデルが作成されます。Rモデルが作成されると、Rスクリプトの名前がSYSスキーマのMINING_MODEL_SETTING表に記録されます。Rモデルが機能するためには、スクリプトがスクリプト・リポジトリに存在する必要があります。これらのRスクリプトを使用してRモデルを作成、スコアリングおよび表示するために使用されるRメモリーの量は、Oracle R Enterpriseで制御できます。

アルゴリズムに依存しないすべてのDBMS_DATA_MININGサブプログラムでは、相関、属性評価、分類、クラスタリング、特徴抽出、回帰などのマイニング機能でRモデルを操作できます。

サポートされるDBMS_DATA_MININGサブプログラムの一部を次に示します。

  • ADD_COST_MATRIXプロシージャ

  • COMPUTE_CONFUSION_MATRIXプロシージャ

  • COMPUTE_LIFTプロシージャ

  • COMPUTE_ROCプロシージャ

  • CREATE_MODELプロシージャ

  • DROP_MODELプロシージャ

  • EXPORT_MODELプロシージャ

  • GET_MODEL_COST_MATRIXファンクション

  • IMPORT_MODELプロシージャ

  • REMOVE_COST_MATRIXプロシージャ

  • RENAME_MODELプロシージャ

表48-9 ALGO_EXTENSIBLE_LANGの設定

設定名 設定値 説明

RALG_BUILD_FUNCTION

R_BUILD_FUNCTION_SCRIPT_NAME

Rアルゴリズムのマイニング・モデル作成ファンクションに対する、既存の登録済Rスクリプトの名前を指定します。Rスクリプトにより、トレーニング・データに対して最初に入力した引数のRファンクションが定義され、Rモデル・オブジェクトが戻されます。クラスタリングと特徴抽出のマイニング機能のモデル作成では、RモデルでR属性のdm$nclusおよびdm$nfeatを設定して、クラスタと特徴の数をそれぞれ指定する必要があります。RALG_BUILD_FUNCTIONは、model_setting_tableALGO_EXTENSIBLE_LANGとともに設定する必要があります。

RALG_BUILD_PARAMETER

SELECT value param_name, ...FROM DUAL モデル作成ファンクションのオプションの入力パラメータに対する、数値および文字列のスカラーのリストを指定します。

RALG_SCORE_FUNCTION

R_SCORE_FUNCTION_SCRIPT_NAME

既存の登録済Rスクリプトの名前を指定して、データをスコアリングします。スクリプトにより、対応する予測結果が含まれるdata.frameが戻されます。設定が使用されて、回帰、分類、クラスタリング、特徴抽出などのマイニング機能でデータがスコアリングされます。この設定は、相関と属性評価の機能には適用されません。

RALG_WEIGHT_FUNCTION

R_WEIGHT_FUNCTION_SCRIPT_NAME

スコアリングの各属性の重み(コントリビューション)を計算するRアルゴリズムに対する、既存の登録済Rスクリプトの名前を指定します。スクリプトにより、各属性の影響を与える重みが行内に含まれるdata.frameが戻されます。このファンクション設定は、PREDICTION_DETAILS SQLファンクションで必要です。

RALG_DETAILS_FUNCTION

R_DETAILS_FUNCTION_SCRIPT_NAME

モデル情報を生成するRアルゴリズムに対する、既存の登録済Rスクリプトの名前を指定します。モデル・ビューの生成には、この設定が必要です。

RALG_DETAILS_FORMAT

SELECT type_value column_name, ... FROM DUAL

生成されるモデル・ビューの出力列タイプと列名の数値および文字列のスカラーのリストに対する、SELECT問合せを指定します。モデル・ビューの生成には、この設定が必要です。

48.4.6 DBMS_DATA_MINING - アルゴリズムの設定: CURマトリックス分解

次の設定は、CURマトリックス分解アルゴリズムの動作に影響を与えます。

次の設定により、CURマトリックス分解アルゴリズムの動作が構成されます。

表48-10 CURマトリックス分解の設定

設定名 設定値 説明

CURS_APPROX_ATTR_NUM

値は正整数である必要があります

選択する属性の概数を定義します。

デフォルト値は属性の数です。

CURS_ROW_IMPORTANCE

CURS_ROW_IMP_ENABLE

CURS_ROW_IMP_DISABLE

行選択を実行するかどうかを示すフラグを定義します。

デフォルト値はCURS_ROW_IMP_DISABLEです。

CURS_APPROX_ROW_NUM

値は正整数である必要があります

選択する行の概数を定義します。このパラメータは、ユーザーが行選択の実行を決定した場合(CURS_ROW_IMP_ENABLE)にのみ使用されます。

デフォルト値は行の合計数です。

CURS_SVD_RANK

値は正整数である必要があります

列または行のレバレッジ・スコアの計算に使用されるランク・パラメータを定義します。

ユーザーが入力値を指定しない場合、値はシステムによって決定されます。

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

これらの設定は、デシジョン・ツリー・アルゴリズムの動作を構成します。ランダム・フォレストは個々のデシジョン・ツリーを構成するため、デシジョン・ツリーの設定はランダム・フォレストの動作を構成するためにも使用されることに注意してください。

表48-11 デシジョン・ツリーの設定

設定名 設定値 説明

TREE_IMPURITY_METRIC

TREE_IMPURITY_ENTROPY

TREE_IMPURITY_GINI

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

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

TREE_TERM_MAX_DEPTH

デシジョン・ツリー:

2<=数値<=20

ランダム・フォレスト:

2<=数値<=100

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

デシジョン・ツリーの場合、デフォルトは7です。

ランダム・フォレストの場合、デフォルトは16です。

TREE_TERM_MINPCT_NODE

0<=数値<=10

トレーニング・データ内の行の割合として表現されたノード内のトレーニング行の最小数。

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

TREE_TERM_MINPCT_SPLIT

0 <数値<=20

トレーニング行の割合として表現された、ノードの分割を検討するために必要な行の最小数。

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

TREE_TERM_MINREC_NODE

数値>=0

ノード内の行の最小数。

デフォルトは10です。

TREE_TERM_MINREC_SPLIT

数値> 1

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

デフォルトは20です。

参照:

デシジョン・ツリーの詳細は、『Oracle Data Mining概要』を参照してください。

48.4.8 DBMS_DATA_MINING - アルゴリズムの設定: 期待値の最大化

これらのアルゴリズム設定は、期待値の最大化アルゴリズムの動作を構成します。

参照:

期待値の最大化の詳細は、『Oracle Data Mining概要』を参照してください。

表48-12 データの準備と分析のための期待値最大化設定

設定名 設定値 説明

EMCS_ATTRIBUTE_FILTER

EMCS_ATTR_FILTER_ENABLE

EMCS_ATTR_FILTER_DISABLE

モデルに相関していない属性を含めるかどうかの指定。EMCS_ATTRIBUTE_FILTERが有効な場合、相関していない属性は含められません。

ノート:

この設定は、ネストしていない属性にのみ適用されます。

デフォルトは、システムによって決定されます。

EMCS_MAX_NUM_ATTR_2D

TO_CHAR( numeric_expr >=1)

モデルに含める相関属性の最大数。

ノート: この設定は、ネストしていない属性(2D)にのみ適用されます。

デフォルトは50です。

EMCS_NUM_DISTRIBUTION

EMCS_NUM_DISTR_BERNOULLI

EMCS_NUM_DISTR_GAUSSIAN

EMCS_NUM_DISTR_SYSTEM

量的属性をモデリングする分布。入力表または入力ビューの全体に適用され、属性ごとの指定は許可されません。

オプションには、ベルヌーイ分布、ガウス分布またはシステム決定の分布が含まれます。ベルヌーイ分布やガウス分布を選択した場合、すべての量的属性が同じタイプの分布を使用してモデリングされます。システム決定の分布の場合は、個々の属性で、データに応じて異なる分布(ベルヌーイ分布またはガウス分布)を使用できます。

デフォルトはEMCS_NUM_DISTR_SYSTEMです。

EMCS_NUM_EQUIWIDTH_BINS

TO_CHAR( 1 <numeric_expr <=255)

量的列のクラスタ統計を収集するために使用される等幅ビンの数。

デフォルトは11です。

EMCS_NUM_PROJECTIONS

TO_CHAR( numeric_expr >=1)

ネストした各列で使用される予測の数を指定します。指定した数の予測よりも列の個別属性の数が少ない場合、データの予測は行われません。この設定は、すべてのネストしている列に適用されます。

デフォルトは50です。

EMCS_NUM_QUANTILE_BINS

TO_CHAR( 1 <numeric_expr <=255)

複数値のベルヌーイ分布において、量的列のモデリングに使用されるクオンタイル・ビンの数を指定します。

デフォルトは、システムによって決定されます。

EMCS_NUM_TOPN_BINS

TO_CHAR( 1 <numeric_expr <=255)

複数値のベルヌーイ分布において、質的列のモデリングに使用される上位Nビンの数を指定します。

デフォルトは、システムによって決定されます。

表48-13 学習用の期待値最大化設定

設定名 設定値 説明

EMCS_CONVERGENCE_CRITERION

EMCS_CONV_CRIT_HELDASIDE

EMCS_CONV_CRIT_BIC

EMの収束基準。収束基準は、取り分けておいたデータ・セットやベイズ情報量基準に基づいている場合があります。

デフォルトは、システムによって決定されます。

EMCS_LOGLIKE_IMPROVEMENT

TO_CHAR( 0 < numeric_expr < 1)

収束基準が取り分けておいたデータ・セットに基づいている場合(EMCS_CONVERGENCE_CRITERION = EMCS_CONV_CRIT_HELDASIDE)、この設定では、モデルに新しいコンポーネントを追加するために必要とされる対数尤度ファンクションの値の改善率を指定します。

デフォルトは0.001です。

EMCS_NUM_COMPONENTS

TO_CHAR( numeric_expr >=1)

モデル内のコンポーネントの最大数。モデル検索が有効である場合、アルゴリズムによってコンポーネントの数(尤度ファンクションの改善度または正則化に基づいた指定された最大数まで)が自動的に決定されます。

コンポーネントの数は、クラスタの数以上である必要があります。

デフォルトは20です。

EMCS_NUM_ITERATIONS

TO_CHAR( numeric_expr >=1)

EMアルゴリズムにおける最大反復数を指定します。

デフォルトは100です。

EMCS_MODEL_SEARCH

EMCS_MODEL_SEARCH_ENABLE

EMCS_MODEL_SEARCH_DISABLE (デフォルト)。

この設定により、様々なモデル・サイズが検索されるEMでのモデル検索が有効になり、最適なサイズが選択されます。

デフォルトはEMCS_MODEL_SEARCH_DISABLEです。

EMCS_REMOVE_COMPONENTS

EMCS_REMOVE_COMPS_ENABLE (デフォルト)

EMCS_REMOVE_COMPS_DISABLE

この設定により、EMアルゴリズムで、ソリューションから小さいコンポーネントを削除できます。

デフォルトはEMCS_REMOVE_COMPS_ENABLEです。

EMCS_RANDOM_SEED

負でない整数

この設定により、EMで使用されるランダム・ジェネレータのシードが制御されます。デフォルトは0です。

表48-14 コンポーネント・クラスタリング用の期待値最大化設定

設定名 設定値 説明

EMCS_CLUSTER_COMPONENTS

EMCS_CLUSTER_COMP_ENABLE

EMCS_CLUSTER_COMP_DISABLE

EMコンポーネントの上位レベルのクラスタへのグループ化を有効または無効にします。無効にすると、コンポーネント自体がクラスタとして扱われます。

コンポーネント・クラスタリングを有効にすると、SQL CLUSTERファンクションを介したモデル・スコアリングによって、より上位のクラスタに対する割当てが実行されます。クラスタリングを無効にすると、CLUSTERファンクションによって、元のコンポーネントに対する割当てが実行されます。

デフォルトはEMCS_CLUSTER_COMP_ENABLEです。

EMCS_CLUSTER_THRESH

TO_CHAR( numeric_expr >=1)

EMコンポーネントのクラスタリングを制御する相違点のしきい値。相違点メジャーがしきい値よりも少ない場合、複数のコンポーネントは1つのクラスタに結合されます。

しきい値が低いと、よりコンパクトな多くのクラスタが作成されます。しきい値が高いと、より広く散らばった少数のクラスタが作成されます。

デフォルトは2です。

EMCS_LINKAGE_FUNCTION

EMCS_LINKAGE_SINGLE

EMCS_LINKAGE_AVERAGE

EMCS_LINKAGE_COMPLETE

凝集クラスタリング・ステップにおけるリンケージ機能の指定を許可します。

EMCS_LINKAGE_SINGLEでは、ブランチ内の最短距離が使用されます。クラスタは、大きくて特異な形状をしている傾向があります。

EMCS_LINKAGE_AVERAGEでは、ブランチ内の平均距離が使用されます。連鎖効果は少なく、クラスタはよりコンパクトなものになります。

EMCS_LINKAGE_COMPLETEでは、ブランチ内の最大距離が使用されます。クラスタは小さく、強固なコンポーネント・オーバーラップを必要とします。

デフォルトはEMCS_LINKAGE_SINGLEです。

表48-15 クラスタ統計用の期待値最大化設定

設定名 設定値 説明

EMCS_CLUSTER_STATISTICS

EMCS_CLUS_STATS_ENABLE

EMCS_CLUS_STATS_DISABLE

クラスタ(セントロイド、ヒストグラムおよびルール)の記述統計の収集を有効または無効にします。統計を無効にすると、モデルのサイズが縮小され、GET_MODEL_DETAILS_EMは分類(階層)とクラスタ数のみを戻します。

デフォルトはEMCS_CLUS_STATS_ENABLEです。

EMCS_MIN_PCT_ATTR_SUPPORT

TO_CHAR( 0 < numeric_expr < 1)

クラスタ・ルールに属性を含めるときに必要とされる最小限のサポート。このサポートでは、クラスタに割り当てられたデータ行のうち、属性がnull以外の値である必要があるものの割合を示します。

デフォルトは0.1です。

48.4.9 DBMS_DATA_MINING - アルゴリズムの設定: 明示的セマンティック分析

明示的セマンティック分析(ESA)は、意味を持つ解釈可能な特徴を抽出する際に役立つ技術です。

次の表に示されている設定がESAの値を構成します。

表48-16 明示的セマンティック分析の設定

設定名 設定値 説明

ESAS_VALUE_THRESHOLD

負以外の数値

この設定により、変換される作成データの属性の重みに対して小さい値がしきい値処理されます。デフォルトは、1e-8です。

ESAS_MIN_ITEMS

テキスト入力は100

テキスト以外の入力は0

この設定により、入力行に表示する必要があるゼロ以外のエントリの最小数が決まります。デフォルトはテキスト入力の場合は100、テキスト以外の入力の場合は0です。

ESAS_TOPN_FEATURES

正の整数

この設定により、属性ごとの特徴の最大数が制御されます。デフォルトは1000です。

参照:

明示的セマンティック分析の詳細は、『Oracle Data Mining概要』を参照してください。

48.4.10 DBMS_DATA_MINING - アルゴリズムの設定: 指数平滑法

これらの設定は、指数平滑法(ESM)アルゴリズムの動作を構成します。

次の表に示す設定は、「指数平滑法」の設定名と使用可能な値を指定します。「定数値」列は、接頭辞DBMS_DATA_MININGを使用して定数を指定します。たとえば、 DBMS_DATA_MINING.EXSM_SIMPLEです。または、DBMS_DATA_MINING接頭辞を付けずに、文字列値等価列から対応する文字列値を一重引用符で囲んで指定できます。たとえば、'EXSM_SIMPLE'です。

ノート:

このアルゴリズムの「定数値」文字列値等価の違いは、Oracle Database 19cとOracle Database 21cに適用されます。
次の表に示されている設定により、指数平滑法の値が構成されます。
名前の設定: EXSM_MODEL

この設定により、モデルが指定されます。

定数値 文字列値等価 説明

EXSM_SIMPLE

EXSM_SIMPLE

EXSM_SIMPLE: 加重移動平均としてデータを予測します。過去の観測の影響は、観測が発生してから経過した時間とともに指数関数的に減少します。推定のエラーは、通常、一定の平均および差異とともに分散されているとみなされます。明確な傾向や季節的なパターンがないデータに適しています。

デフォルト値はEXSM_SIMPLEです。

EXSM_SIMPLE_MULT EXSM_SIMPLE_MULT_ERR EXSM_SIMPLE_MULTまたはEXSM_SIMPLE_MULT_ERR: 加重移動平均としてデータを予測します。過去の観測の影響は、観測が発生してから経過した時間とともに指数関数的に減少します。推定のエラーは、前の推定のレベルに比例すると想定されます。
EXSM_HOLT EXSM_HOLT EXSM_HOLT: 基礎となる線形傾向を持つデータを予測するように設計された、Holtの線形指数平滑法を適用します。
EXSM_HOLT_DMP EXSM_HOLT_DAMPED EXSM_HOLT_DMPまたはEXSM_HOLT_DAMPED: 減衰係数を持つHoltの線形指数平滑法を適用し、時間の経過とともに傾向の強度を徐々に減らします。
EXSM_MUL_TRND EXSM_MULT_TREND EXSM_MUL_TRNDまたはEXSM_MULT_TREND: 積乗型の傾向コンポーネントを持つ指数平滑化フレームワークを適用し、傾向が線形ではないが時間の経過とともに増大または減衰するデータを効果的に取得します。
EXSM_MULTRD_DMP EXSM_MULT_TREND_DAMPED EXSM_MULTRD_DMPまたはEXSM_MULT_TREND_DAMPED: 時間の経過とともに減少する積乗型の傾向を持つ指数平滑化アルゴリズムを適用し、傾向推定に対する保守的なアプローチを提供します。
EXSM_SEAS_ADD EXSM_SEASON_ADD EXSM_SEAS_ADDまたはEXSM_SEASON_ADD: 加算的な季節コンポーネントを持つ指数平滑法を適用し、傾向を組み込むことなく季節変動を分離および評価します。
EXSM_SEAS_MUL EXSM_SEASON_MUL EXSM_SEAS_MULまたはEXSM_SEASON_MUL: 積乗型の季節コンポーネントを持つ指数平滑化を実行し、系列レベルに比例して増減する季節効果を取得します。
EXSM_HW EXSM_WINTERS EXSM_HWまたはEXSM_WINTERS: 加算的な傾向と積乗型の季節性を持つHolt-Winters法を適用し、線形傾向と比例季節変動の両方を持つデータに対して堅牢なモデルを提供します。
EXSM_HW_DMP EXSM_WINTERS_DAMPED EXSM_HW_DMPまたはEXSM_WINTERS_DAMPED: 減衰傾向と積乗型の季節性を持つHolt-Winters法を適用し、比例的な季節変化を取得しながら時間の経過に伴う線形傾向を調整します。
EXSM_HW_ADDSEA EXSM_ADDWINTERS EXSM_HW_ADDSEAまたはEXSM_ADDWINTERS: Holt-Winters加算モデルを適用して、線形傾向と加算的な季節効果を持つデータを同時に平滑化します。
EXSM_DHW_ADDSEA EXSM_ADDWINTERS_DAMPED EXSM_DHW_ADDSEAまたはEXSM_ADDWINTERS_DAMPED: 減衰メカニズムを持つHolt-Winters加算アプローチを適用し、時間の経過に伴う傾向および季節コンポーネントの影響を減らします。
EXSM_HWMT EXSM_WINTERS_MULT_TREND EXSM_WINTERS_MUL_TRENDまたはEXSM_WINTERS_MULT_TREND: 非線形レートで季節変動と傾向の両方が増加または減少している系列に適した、傾向コンポーネントと積乗型の季節性コンポーネントの両方を持つHolt-Wintersモデルを適用します。
EXSM_HWMT_DMP EXSM_WINTERS_MUL_TREND_DMP EXSM_HWMT_DMPまたはEXSM_WINTERS_MUL_TREND_DMP: 減衰した積乗型の傾向を持つHolt-Wintersモデルを適用し、時間の経過に伴う傾向コンポーネントと季節コンポーネントの両方の指数的増加または減少を効果的に調整します。
名前の設定: EXSM_SEASONALITY

この設定により、季節性循環の長さとして正の整数値が指定されます。

定数値 文字列値等価 説明
正の整数> 1 正の整数> 1

1より大きい値を指定する必要があります。たとえば、4の値を設定すると、4つの各監視グループが季節性循環を形成することを意味します。

この設定は、季節性を持つモデルにのみ適用可能であり、指定する必要があります。それ以外の場合、モデルによりエラーがスローされます。

EXSM_INTERVALが設定されていない場合、この設定は元の入力時系列に適用されます。EXSM_INTERVALが設定されている場合、この設定は累積された時系列に適用されます。

名前の設定: EXSM_INTERVAL

この設定は、時間列(case_id列)が日時タイプである場合にのみ適用され、指定する必要があります。この設定により、累積された等間隔の時系列の間隔が指定されます。

入力表の時間列が日時型の場合、EXSM_INTERVAL設定が指定されていないと、モデルからエラーがスローされます。

定数値 文字列値等価 説明

EXSM_INTERVAL_YEAR

EXSM_INTERVAL_YEAR

EXSM_INTERVAL_YEAR: このオプションは、累積時系列の間隔を1年に設定します。選択すると、データは年次ベースで集計または要約されます。

EXSM_INTERVAL_QTR EXSM_INTERVAL_QTR EXSM_INTERVAL_QTR: このオプションでは、間隔を四半期に設定し、3か月ごとにデータを集計します。
EXSM_INTERVAL_MONTH EXSM_INTERVAL_MONTH EXSM_INTERVAL_MONTH: このオプションは、間隔を1か月に調整します。累積時系列は、各月の集計データまたは要約データを表します。
EXSM_INTERVAL_WEEK EXSM_INTERVAL_WEEK EXSM_INTERVAL_WEEK: このオプションでは、データは週単位で集計または要約され、間隔を1週間に設定します。
EXSM_INTERVAL_DAY EXSM_INTERVAL_DAY EXSM_INTERVAL_DAY: このオプションは、間隔を1日に調整します。これは、日々の集計されたインサイトが必要なシナリオに適しています。
EXSM_INTERVAL_HOUR EXSM_INTERVAL_HOUR EXSM_INTERVAL_HOUR: より詳細なインサイトを得るために、このオプションは間隔を1時間に設定します。これは、1日に大きく変化するデータを分析する場合に特に役立ちます。
EXSM_INTERVAL_MIN EXSM_INTERVAL_MINUTE EXSM_INTERVAL_MINUTE: このオプションでは、間隔は1分に設定されます。これにより、高頻度取引やリアルタイム監視システムなどのアプリケーションに適した、非常に詳細なデータ・ビューが提供されます。
EXSM_INTERVAL_SEC EXSM_INTERVAL_SECOND EXSM_INTERVAL_SECOND: ほとんどの詳細で、このオプションは間隔を1秒に設定します。これは、リアルタイムまたはほぼリアルタイムの分析を必要とするシナリオ向けに調整されています。
名前の設定: EXSM_INITVL_OPTIMIZE

設定EXSM_INITVL_OPTIMIZEによって、モデルの作成中に初期値が最適化されるかどうかが決まります。

定数値 文字列値等価 説明

EXSM_INITVL_OPTIMIZE_ENABLE

EXSM_INITVL_OPTIMIZE_ENABLE

デフォルト値はEXSM_INITVL_OPTIMIZE_ENABLEです。

EXSM_INITVL_OPTIMIZE_DISABLE

EXSM_INITVL_OPTIMIZE_DISABLE

ノート:

EXSM_INITVL_OPTIMIZEEXSM_INITVL_OPTIMIZE_DISABLEに設定できるのは、ユーザーがEXSM_MODELEXSM_HWまたはEXSM_HW_ADDSEAに設定した場合のみです。EXSM_MODELが別のモデル・タイプに設定されているか、指定されていない場合、エラー40213 (競合する設定)がスローされ、モデルは作成されません。
名前の設定: EXSM_ACCUMULATE

この設定は、時間列が日時タイプである場合にのみ適用され、指定する必要があります。この設定により、入力時系列から累積された時系列の値を生成する方法が指定されます。

定数値 文字列値等価 説明

EXSM_ACCU_TOTAL

EXSM_ACCU_TOTAL

EXSM_ACCU_TOTAL: このオプションは、指定した間隔内の時系列値の合計を計算します。選択すると、日時範囲内のすべての個々の値を合計してデータが集計されます。

デフォルト値はEXSM_ACCU_TOTALです。

EXSM_ACCU_STD

EXSM_ACCU_STD

EXSM_ACCU_STD: このオプションは、指定された間隔内の時系列値の標準偏差を計算します。データの変動または分散の量を理解するのに役立ちます。

EXSM_ACCU_MAX

EXSM_ACCU_MAX

EXSM_ACCU_MAX: このオプションを選択すると、指定した間隔内の時系列の最大値が決定されます。これは、指定された範囲のピーク値を識別するのに役立ちます。

EXSM_ACCU_MIN

EXSM_ACCU_MIN

EXSM_ACCU_MIN: このオプションは、指定された間隔内の時系列の最小値の決定に重点を置いています。指定された日時範囲の時系列の最小値を識別するのに役立ちます。

EXSM_ACCU_AVG

EXSM_ACCU_AVG

EXSM_ACCU_AVG: 指定された間隔内の時系列の平均値を指定します。指定された範囲内のすべてのデータ・ポイントの平均値を計算します。

EXSM_ACCU_MEDIAN

EXSM_ACCU_MEDIAN

EXSM_ACCU_MEDIAN: このオプションは、指定された間隔内の時系列値の中央値を提供します。中央値は中心値を示すため、データに外れ値が含まれる場合に特に役立ちます。

EXSM_ACCU_COUNT

EXSM_ACCU_COUNT

EXSM_ACCU_COUNT: このオプションは、指定された間隔内の時系列値の数をカウントします。特定の日時範囲に存在するデータ・ポイントの数を知る必要がある場合に役立ちます。

名前の設定: EXSM_SETMISSING

この設定では、欠損値の処理方法を指定します。欠損値は、入力データや時系列の累積処理で発生することがあります。数値またはオプションのどちらかを指定できます。数値が指定された場合は、すべての欠損値がその数値に設定されます。

定数値 文字列値等価 説明

オプションを指定します。

EXSM_MISS_MIN

EXSM_MISS_MIN

EXSM_MISS_MIN: 欠損値を累積時系列の最小値に置換します。

EXSM_MISS_MAX

EXSM_MISS_MAX

EXSM_MISS_MAX: 欠損値を累積時系列の最大値に置換します。

EXSM_MISS_AVG

EXSM_MISS_AVG

EXSM_MISS_AVG: 欠損値を累積時系列の平均値に置換します。

EXSM_MISS_MEDIAN

EXSM_MISS_MEDIAN

EXSM_MISS_MEDIAN: 欠損値を累積時系列の中央値に置き換えます。

EXSM_MISS_LAST

EXSM_MISS_LAST

EXSM_MISS_LAST: 欠損値を累積時系列の最後の存在する値に置換します。

EXSM_MISS_FIRST

EXSM_MISS_FIRST

EXSM_MISS_FIRST: 欠損値を累積時系列の最初の存在する値に置換します。

EXSM_MISS_PREV

EXSM_MISS_PREV

EXSM_MISS_PREV: 欠損値を累積時系列の前の存在する値に置換します。

EXSM_MISS_NEXT

EXSM_MISS_NEXT

EXSM_MISS_NEXT: 欠損値を累積時系列の次の存在する値に置換します。

EXSM_MISS_AUTO

EXSM_MISS_AUTO

EXSM_MISS_AUTO: EXSMモデルは入力データを不規則な(等間隔でない)時系列として処理します。

この設定が指定されていない場合、EXSM_MISS_AUTOがデフォルト値です。その場合、モデルでは入力時系列が不規則な時系列として処理され、欠損値がギャップとして表示されます。

名前の設定: EXSM_PREDICTION_STEP

この設定では、何ステップ先の予測を行うかを指定します。

定数値 文字列値等価 説明
1-30の数値に設定する必要があります。 1-30の数値に設定する必要があります。

設定されていない場合、デフォルト値は1です。この場合、モデルでは1ステップ先の予測が提供されます。30より大きい値を指定すると、エラーになります。

名前の設定: EXSM_CONFIDENCE_LEVEL

この設定では、予測に対して目的とする信頼水準を指定します。

定数値 文字列値等価 説明
0と1の間の数値(0と1を含まない)に設定する必要があります。 0と1の間の数値(0と1を含まない)に設定する必要があります。

指定した信頼区間の上限と下限が報告されます。この設定が指定されていない場合、デフォルトの信頼水準は95%です。

名前の設定: EXSM_OPT_CRITERION

この設定では、目的とする最適化基準を指定します。最適化基準は、同じデータへのモデルの適合性を比較するための診断として役立ちます。

定数値 文字列値等価 説明

EXSM_OPT_CRIT_LIK

EXSM_OPT_CRIT_LIK

EXSM_OPT_CRIT_LIK: 特定のモデルに関連付けられている対数尤度の負の倍数を表します。

デフォルト値は、EXSM_OPT_CRIT_LIKです。

EXSM_OPT_CRIT_MSE

EXSM_OPT_CRIT_MSE

EXSM_OPT_CRIT_MSE: これは、モデルに関連する平均平方根エラーを示します。

EXSM_OPT_CRIT_AMSE

EXSM_OPT_CRIT_AMSE

EXSM_OPT_CRIT_AMSE: これは、ユーザーが指定した時間ウィンドウの平均平方誤差を示します。

EXSM_OPT_CRIT_SIG

EXSM_OPT_CRIT_SIG

EXSM_OPT_CRIT_SIG: このメトリックは、モデルの残差の標準偏差を取得します。

EXSM_OPT_CRIT_MAE

EXSM_OPT_CRIT_MAE

EXSM_OPT_CRIT_MAE: このメトリックは、モデルに関連付けられた平均絶対エラーを示します。エラーのサイズを測定します。

名前の設定: EXSM_NMSE
定数値 文字列値等価 説明
正の整数 正の整数 この設定により、誤差メトリックの平均二乗誤差の平均(AMSE)を計算するときに使用されるウィンドウの長さが指定されます。

参照:

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

https://github.com/oracle-samples/oracle-db-examples/tree/main/machine-learning/sqlリリース・フォルダを参照し、oml4sql-time-series-exponential-smoothing.sqlの例をクリックします。

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

次の表に示されている設定が一般化線形モデルの動作を構成します。

表48-17 DBMS_DATA_MININGのGLM設定

設定名 設定値 説明

GLMS_CONF_LEVEL

TO_CHAR(0< numeric_expr <1)

信頼区間の信頼水準。

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

GLMS_FTR_GEN_METHOD

GLMS_FTR_GEN_QUADRATIC

GLMS_FTR_GEN_CUBIC

特徴生成が二次式または三次式のどちらであるかを示します。

特徴の生成を有効にすると、アルゴリズムでは、最適な特徴生成方式がデータに基づいて自動的に選択されます。

GLMS_FTR_GENERATION

GLMS_FTR_GENERATION_ENABLE

GLMS_FTR_GENERATION_DISABLE

GLMに対して特徴生成を有効にするかどうかの指定。デフォルトでは、特徴生成は有効化されていません。

ノート: 特徴生成は、特徴選択が有効な場合にのみ有効です。

GLMS_FTR_SEL_CRIT

GLMS_FTR_SEL_AIC

GLMS_FTR_SEL_SBIC

GLMS_FTR_SEL_RIC

GLMS_FTR_SEL_ALPHA_INV

モデルに特徴を追加する際の、特徴選択のペナルティ基準。

特徴選択を有効にすると、アルゴリズムでは、ペナルティ基準がデータに基づいて自動的に選択されます。

GLMS_FTR_SELECTION

GLMS_FTR_SELECTION_ENABLE

GLMS_FTR_SELECTION_DISABLE

GLMに対して特徴選択を有効にするかどうかの指定。

デフォルトでは、特徴選択は無効です。

GLMS_MAX_FEATURES

TO_CHAR(0 < numeric_expr <= 2000)

特徴選択を有効にすると、この設定では、最終モデルで選択可能な特徴の最大数が指定されます。

デフォルトでは、十分なメモリーを確保するために、アルゴリズムによって特徴の数が制限されます。

GLMS_PRUNE_MODEL

GLMS_PRUNE_MODEL_ENABLE

GLMS_PRUNE_MODEL_DISABLE

最終モデルでの特徴のプルーニングを有効また無効にします。プルーニングは、線形回帰の場合はt検定統計に、ロジスティック回帰の場合はWald検定統計に基づきます。すべての特徴が全データに対して統計的な意味付けを持つまで、これらの特徴はループ処理でプルーニングされます。

特徴選択を有効にすると、アルゴリズムでは、プルーニングがデータに基づいて自動的に実行されます。

GLMS_REFERENCE_CLASS_NAME

target_value

バイナリ・ロジスティック回帰モデルで参照クラスとして使用されるターゲット値。その他のクラスに対しては確率が生成されます。

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

GLMS_RIDGE_REGRESSION

GLMS_RIDGE_REG_ENABLE

GLMS_RIDGE_REG_DISABLE

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

リッジを有効にすると、PREDICTION_BOUNDS SQLファンクションによって予測限界は生成されません。

ノート: リッジは、特徴選択が指定されていない場合または明示的に無効にされている場合にのみ有効です。リッジ回帰と特徴選択を両方とも明示的に有効にすると、例外が発生します。

GLMS_RIDGE_VALUE

TO_CHAR (numeric_expr > 0)

リッジ・パラメータ値。この設定は、アルゴリズムでリッジ回帰の使用が構成されている場合にのみ使用されます。

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

GLMS_ROW_DIAGNOSTICS

GLMS_ROW_DIAG_ENABLE

GLMS_ROW_DIAG_DISABLE (デフォルト)

行診断を有効または無効にします。

GLMS_CONV_TOLERANCE

範囲は(0, 1)です(この値を含めない)。

GLMアルゴリズムの収束許容値の設定

デフォルト値は、システムによって決定されます。

GLMS_NUM_ITERATIONS

正の整数

GLMアルゴリズムの最大反復数。デフォルト値は、システムによって決定されます。

GLMS_BATCH_ROWS

0または正の整数

SGDソルバーで使用されるバッチ内の行数。このパラメータの値によって、SGDソルバーのバッチのサイズが設定されます。0を入力すると、データ駆動のバッチ・サイズの推定値がトリガーされます。

デフォルトは2000です

GLMS_SOLVER

GLMS_SOLVER_SGD (StochasticGradient Descent)

GLMS_SOLVER_CHOL (Cholesky)

GLMS_SOLVER_QR

GLMS_SOLVER_LBFGS_ADMM

この設定により、ユーザーがGLMソルバーを選択できます。GLMS_FTR_SELECTION設定が有効である場合、ソルバーは選択できません。デフォルト値は、システムによって決定されます。

GLMS_SPARSE_SOLVER

GLMS_SPARSE_SOLVER_ENABLE

GLMS_SPARSE_SOLVER_DISABLE (デフォルト)。

この設定により、ユーザーはスパース・ソルバーを使用できます(使用可能な場合)。デフォルト値はGLMS_SPARSE_SOLVER_DISABLEです。

参照:

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

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

次の表に示されている設定がk-Meansアルゴリズムの動作を構成します。

表48-18 k-Meansの設定

設定名 設定値 説明

KMNS_CONV_TOLERANCE

TO_CHAR(0<numeric_expr<1)

k-Meansの最小収束許容値。最小収束許容値を満たすか、KMNS_ITERATIONSで指定された最大反復数に到達するまで、アルゴリズムは反復します。

収束許容値が減少すると、ソリューションはより正確になりますが、実行時間が長くなることがあります。

デフォルトの収束許容値は、0.001です。

KMNS_DISTANCE

KMNS_COSINE

KMNS_EUCLIDEAN

k-Meansの距離関数。

デフォルトの距離ファンクションはKMNS_EUCLIDEANです。

KMNS_ITERATIONS

TO_CHAR(positive_numeric_expr)

k-Meansの最大反復数。最大反復数に到達するか、KMNS_CONV_TOLERANCEで指定された最小収束許容値を満たすまで、アルゴリズムは反復します。

デフォルトの反復回数は20です。

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つのビンを持つ単一値が含まれる属性を除き、すべての属性は同じ数のビンを持ちます。

デフォルトのヒストグラム・ビン数は11です。

KMNS_SPLIT_CRITERION

KMNS_SIZE

KMNS_VARIANCE

k-Meansの分割基準。分割基準は、新しいk-Meansクラスタの初期化を制御します。アルゴリズムがバイナリ・ツリーを作成し、同時に新しいクラスタを1つ追加します。

分割基準がサイズに基づいている場合、新しいクラスタは現在最も大きなクラスタのある領域に置かれます。分割基準が分散値に基づいている場合、新しいクラスタは最も拡大されたクラスタの領域に置かれます。

デフォルトの分割基準はKMNS_VARIANCEです。

KMNS_RANDOM_SEED

負でない整数

この設定により、k-Meansの初期化中に使用されるランダム・ジェネレータのシードが制御されます。これは、負でない整数である必要があります。

デフォルトは0です。

KMNS_DETAILS

KMNS_DETAILS_NONE

KMNS_DETAILS_HIERARCHY

KMNS_DETAILS_ALL

この設定により、作成中に計算されるクラスタ詳細のレベルが決まります。

KMNS_DETAILS_NONE: クラスタ詳細は計算されません。スコアリング情報のみが永続化されます。

KMNS_DETAILS_HIERARCHY: クラスタ階層とクラスタ・レコード数が計算されます。これはデフォルト値です。

KMNS_DETAILS_ALL: クラスタ階層、レコード数および記述統計(平均値、分散値、最頻値、ヒストグラムおよびルール)が計算されます。

参照:

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

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

次の表に示されている設定がNaive Bayesアルゴリズムの動作を構成します。

表48-19 Naive Bayesの設定

設定名 設定値 説明

NABS_PAIRWISE_THRESHOLD

TO_CHAR( 0<= numeric_expr <=1)

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

デフォルトは0です。

NABS_SINGLETON_THRESHOLD

TO_CHAR( 0<= numeric_expr <=1)

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

デフォルト値は0です。

参照:

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

48.4.14 DBMS_DATA_MINING - アルゴリズムの設定: ニューラル・ネットワーク

次の表に示されている設定により、ニューラル・ネットワークの動作が構成されます。

表48-20 DBMS_DATA_MININGのニューラル・ネットワークの設定

設定名 設定値 説明

NNET_HIDDEN_LAYERS

負でない整数

非表示レイヤーの数によってトポロジを定義します。

デフォルト値は1です。

NNET_NODES_PER_LAYER

正の整数のリスト

レイヤー当たりのノード数によってトポロジを定義します。様々なレイヤーに様々な数のノードを含めることができます。

値は、負ではない整数をカンマで区切る必要があります。たとえば、'10, 20, 5'のようになります。設定値は、NNET_HIDDEN_LAYERSと一貫性を保つ必要があります。レイヤー当たりのデフォルトのノード数は、属性数または50(属性数が50未満の場合)です。

NNET_ACTIVATIONS

次に示す文字列のリスト。

  • ''NNET_ACTIVATIONS_LOG_SIG''
  • ''NNET_ACTIVATIONS_LINEAR''
  • ''NNET_ACTIVATIONS_TANH''
  • ''NNET_ACTIVATIONS_ARCTAN''
  • ''NNET_ACTIVATIONS_BIPOLAR_SIG''

非表示レイヤーの活性化関数を定義します。たとえば、'''NNET_ACTIVATIONS_BIPOLAR_SIG''、''NNET_ACTIVATIONS_TANH'''。

様々なレイヤーに様々な活性化関数を含めることができます。

デフォルト値は''NNET_ACTIVATIONS_LOG_SIG''です。

活性化関数の数は、NNET_HIDDEN_LAYERSおよびNNET_NODES_PER_LAYERと一貫性を保つ必要があります。

ノート:

引用符はすべて一重です。引用符を2つ使用して、SQL文の一重引用符をエスケープします。

NNET_WEIGHT_LOWER_BOUND

実数

この設定により、重みがランダムに初期化されるリージョンの下限が指定されます。NNET_WEIGHT_LOWER_BOUNDNNET_WEIGHT_UPPER_BOUNDを一緒に設定する必要があります。一方を設定し、もう一方を設定しない場合、エラーが発生します。NNET_WEIGHT_LOWER_BOUNDNNET_WEIGHT_UPPER_BOUNDより大きくすることはできません。デフォルト値は–sqrt(6/(l_nodes+r_nodes))です。l_nodesの値は次のようになります。
  • 入力レイヤー密属性では、(1+密属性の数)

  • 入力レイヤー・スパース属性では、スパース属性の数

  • 各非表示レイヤーでは、(1+その非表示レイヤーのノードの数)

r_nodesの値は、重みが接続するレイヤー内のノードの数です。

NNET_WEIGHT_UPPER_BOUND

実数

この設定により、重みが初期化されるリージョンの上限が指定されます。NNET_WEIGHT_LOWER_BOUNDとペアで設定する必要があり、値をNNET_WEIGHT_LOWER_BOUNDの値より小さくすることはできません。指定されていない場合、NNET_WEIGHT_LOWER_BOUNDおよびNNET_WEIGHT_UPPER_BOUNDの値はシステムによって決定されます。

デフォルト値はsqrt(6/(l_nodes+r_nodes))です。「NNET_WEIGHT_LOWER_BOUND」を参照してください。

NNET_ITERATIONS

正の整数

この設定により、ニューラル・ネットワーク・アルゴリズムにおける最大反復数が指定されます。

デフォルト値は200です。

NNET_TOLERANCE

TO_CHAR(0< numeric_expr <1)

ニューラル・ネットワーク・アルゴリズムの収束許容値の設定を定義します。

デフォルト値は0.000001です。

NNET_REGULARIZER

NNET_REGULARIZER_NONE

NNET_REGULARIZER_L2

NNET_REGULARIZER_HELDASIDE

ニューラル・ネットワーク・アルゴリズムの正則化設定です。トレーニング行の合計数が50000より大きい場合、デフォルトはNNET_REGULARIZER_HELDASIDEです。トレーニング行の合計数が50000以下の場合、デフォルトはNNET_REGULARIZER_NONEです。

NNET_HELDASIDE_RATIO

0 <= numeric_expr <=1

取り分けておいたメソッドの保持率を定義します。

デフォルト値は0.25です。

NNET_HELDASIDE_MAX_FAIL

値は正整数である必要があります。

NNET_REGULARIZER_HELDASIDEでは、検証データのネットワーク・パフォーマンスが行内のNNET_HELDASIDE_MAX_FAILエポックについて改善されない場合や同じままの場合、トレーニング・プロセスは早期に停止されます。

デフォルト値は6です。

NNET_REG_LAMBDA

TO_CHAR(numeric_expr >=0)

L2正則化パラメータ・ラムダを定義します。これは、NNET_REGULARIZER_HELDASIDEと一緒に設定することはできません。

デフォルト値は1です。

参照:

ニューラル・ネットワークの詳細は、Oracle Data Mining概要を参照してください。

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

次の表に示されている設定がNon-Negative Matrix Factorizationアルゴリズムの動作を構成します。

データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS(接頭辞ALLUSERまたはDBAを使用)を問い合せると、モデルの設定値を確認できます。*_MINING_MODEL_SETTINGSの詳細は、『Oracle Databaseリファレンス』を参照してください。

表48-21 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概要』を参照してください。

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

表内の設定がO-Clusterアルゴリズムの動作を構成します。

表48-22 O-CLusterの設定

設定名 設定値 説明

OCLT_SENSITIVITY

TO_CHAR( 0 <=numeric_expr <=1)

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

デフォルトは0.5です。

参照:

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

48.4.17 DBMS_DATA_MINING - アルゴリズムの設定: ランダム・フォレスト

これらの設定により、ランダム・フォレスト・アルゴリズムの動作が構成されます。ランダム・フォレストでは、デシジョン・ツリーの設定を使用して個々のツリーが構成されます。

表48-23 ランダム・フォレストの設定

設定名 設定値 説明

RFOR_MTRY

数値>= 0

ノードでの分割を選択する際に考慮する列のランダムなサブセットのサイズ。各ノードで、プールのサイズは同じですが、特定の候補列が変更されます。デフォルトは、モデル・シグネチャの列の半分です。特殊な値である0は、候補プールにすべての列が含まれることを示します。

RFOR_NUM_TREES

1<=数値<=65535

フォレスト内のツリーの数

デフォルトは20です。

RFOR_SAMPLING_RATIO

0<小数<=1

個々のツリーの作成で使用するためにランダムにサンプリングされるトレーニング・データの割合。デフォルトは、トレーニング・データ内の行数の半分です。

参照:

ランダム・フォレストの詳細は、Oracle Data Mining概要を参照してください

48.4.18 DBMS_DATA_MINING - アルゴリズム定数と設定: 特異値分解

次の定数は、特異値分解アルゴリズムの動作に影響を与えます。

表48-24 特異値分解定数

定数名 定数値 説明

SVDS_MAX_NUM_FEATURES

2500

SVDによってサポートされている特徴の最大数。

次の設定により、特異値分解アルゴリズムの動作が構成されます。

表48-25 特異値分解設定

設定名 設定値 説明

SVDS_U_MATRIX_OUTPUT

SVDS_U_MATRIX_ENABLE

SVDS_U_MATRIX_DISABLE

SVDによって作成されたUマトリックスを永続化するかどうかを示します。

SVDのUマトリックスには、ビルド・データの行と同数の行があります。大規模なモデルの作成を回避するため、Uマトリックスは、SVDS_U_MATRIX_OUTPUTが有効な場合にのみ永続化されます。

SVDS_U_MATRIX_OUTPUTを有効にした場合、ビルド・データにケースIDを含める必要があります。ケースIDが存在しないときにUマトリックスが要求されると、例外が発生します。

デフォルトはSVDS_U_MATRIX_DISABLEです。

SVDS_SCORING_MODE

SVDS_SCORING_SVD

SVDS_SCORING_PCA

モデルでSVDスコアリングとPCAスコアリングのどちらを使用するかの指定。

ビルド・データがSVDでスコアリングされた場合、Uマトリックスと同じ予測になります。ビルド・データがPCAでスコアリングされた場合、UマトリックスとSマトリックスの積が予測になります。

デフォルトはSVDS_SCORING_SVDです。

SVDS_SOLVER

SVDS_SOLVER_TSSVD

SVDS_SOLVER_TSEIGEN

SVDS_SOLVER_SSVD

SVDS_SOLVER_STEIGEN

この設定は、データのSVDの計算に使用されるソルバーを示します。PCAの場合、ソルバー設定は、データのPCAの計算に使用されるSVDソルバーのタイプを示します。この設定が指定されない場合、ソルバー・タイプの選択はデータ駆動で行われます。属性の数が3240を超える場合は、デフォルトのワイド・ソルバーが使用されます。そうでない場合、デフォルトのナロー・ソルバーが選択されます。

次に、ソルバーのグループを示します。

  • ナロー・データ・ソルバー: 最大で11500個の属性(TSEIGEN)または最大で8100個の属性(TSSVD)を持つマトリックス用。

  • ワイド・データ・ソルバー: 最大で100万個の属性を持つマトリックス用。

ナロー・データ・ソルバーの場合:

  • Tall-Skinny SVDでQR計算TSVD (SVDS_SOLVER_TSSVD)が使用されます

  • Tall-Skinny SVDで、ナロー・データのデフォルト・ソルバーである、固有値計算TSEIGEN (SVDS_SOLVER_TSEIGEN)が使用されます。

ワイド・データ・ソルバーの場合:

  • 確率SVDで、ワイド・データ・ソルバーのデフォルト・ソルバーである、QR計算SSVD (SVDS_SOLVER_SSVD)が使用されます。

  • 確率SVDで固有値計算STEIGEN (SVDS_SOLVER_STEIGEN)が使用されます。

SVDS_TOLERANCE

[0, 1]の範囲

特徴のプルーニングには、この設定が使用されます。プルーニング対象外の最初の固有値の共有部分として、特徴の固有値の最小値を定義します。デフォルト値は、データ駆動で決まります。

SVDS_RANDOM_SEED

[0 - 4,294,967,296]の範囲

ランダム・シード値は、確率SVDソルバーで使用されるサンプリング・マトリックスの初期化に使用されます。デフォルトは0です。SVDソルバーをSSVDまたはSTEIGENに設定する必要があります。

SVDS_OVER_SAMPLING

[1, 5000]の範囲。

この設定により、確率SVDソルバーで使用されるサンプリング・マトリックスの列数が構成されます。このマトリックスの列数は、特徴の要求数にオーバーサンプリング設定を加えた数と同じです。SVDソルバーをSSVDまたはSTEIGENに設定する必要があります。

SVDS_POWER_ITERATIONS

[0, 20]の範囲。

べき乗法設定により、SSVDソルバーの精度が向上します。デフォルトは2です。SVDソルバーをSSVDまたはSTEIGENに設定する必要があります。

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

次の表に示されている設定がサポート・ベクター・マシン・アルゴリズムの動作を構成します。

表48-26 SVMの設定

設定名 設定値 説明

SVMS_COMPLEXITY_FACTOR

TO_CHAR(numeric_expr >0)

新しいデータに対して優れた一般化を実現するための、モデルの堅牢性に対するモデルの複雑性のバランスをとる正則化設定。SVMでは、データ駆動の手法を使用して複雑性要素が検出される。

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

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

SVMS_CONV_TOLERANCE

TO_CHAR(numeric_expr >0)

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

デフォルトは0.0001です。

SVMS_EPSILON

TO_CHAR(numeric_expr >0)

回帰用の正則化設定(複雑性要素と似ている)。イプシロンによって、データ内で許容される残差(ノイズ)が指定される。

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

デフォルトは0.1です。

SVMS_KERNEL_FUNCTION

SVMS_GAUSSIAN

SVMS_LINEAR

サポート・ベクター・マシンのカーネル。線形またはガウス。

デフォルト値はSVMS_LINEARです。

SVMS_OUTLIER_RATE

TO_CHAR(0< numeric_expr <1)

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

デフォルトは0.01です。

SVMS_STD_DEV

TO_CHAR(numeric_expr >0)

ガウス・カーネル関数の分布を制御する。SVMでは、データ駆動の手法が使用され、通常のケース間の距離と同じスケールにある標準偏差値が検出される。

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

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

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

SVMS_NUM_ITERATIONS

正の整数

この設定により、SVM反復数の上限が設定されます。これはSVMソルバーに依存するため、デフォルトはシステムによって決定されます。

SVMS_NUM_PIVOTS

[1; 10000]の範囲

この設定により、不完全なコレスキ分解で使用されるピボット数の上限が設定されます。これは、非線形カーネルにのみ設定できます。デフォルト値は200です。

SVMS_BATCH_ROWS

正の整数

この設定は、線形カーネルを使用するSVMモデルに適用されます。この設定により、SGDソルバーのバッチのサイズが設定されます。0を入力すると、データ駆動のバッチ・サイズの推定値がトリガーされます。デフォルト値は20000です。

SVMS_REGULARIZER

SVMS_REGULARIZER_L1

SVMS_REGULARIZER_L2

この設定により、SGD SVMソルバーで使用される正則化のタイプが制御されます。この設定は、線形SVMモデルにのみ使用できます。これは潜在的なモデル・サイズに依存するため、デフォルトはシステムによって決定されます。

SVMS_SOLVER

SVMS_SOLVER_SGD (劣勾配降下)

SVMS_SOLVER_IPM (内点法)

この設定により、ユーザーがSVMソルバーを選択できます。カーネルが非線形である場合、SGDソルバーは選択できません。デフォルト値は、システムによって決定されます。

参照:

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

48.5 DBMS_DATA_MINING - ソルバー設定

Oracle Data Miningのアルゴリズムでは様々なソルバーを使用できます。ソルバー設定は、作成時に設定表で指定できます。

48.5.1 DBMS_DATA_MINING - ソルバー設定: ADMM

次の表に示されている設定により、Alternating Direction Method of Multipliers (ADMM)の動作が構成されます。一般化線形モデル(GLM)によって、これらの設定が使用されます。

表48-27 DBMS_DATA_MININGのADMM設定

設定名 設定値 説明

ADMM_CONSENSUS

正の整数

ADMMのコンセンサス・パラメータ。値は、正数である必要があります。デフォルト値は0.1です。

ADMM_ITERATIONS

正の整数

ADMM反復の回数。値は正整数である必要があります。デフォルト値は50です。

ADMM_TOLERANCE

正の整数

許容値パラメータ。値は、正数である必要があります。デフォルト値は0.0001です

参照:

ニューラル・ネットワークの詳細は、Oracle Data Mining概要を参照してください

48.5.2 DBMS_DATA_MINING - ソルバー設定: LBFGS

次の表に示されている設定により、L-BFGSの動作が構成されます。ニューラル・ネットワーク・モデルと一般化線形モデル(GLM)によって、これらの設定が使用されます。

表48-28 DBMS_DATA_MININGのL-BFGS設定

設定名 設定値 説明

LBFGS_GRADIENT_TOLERANCE

TO_CHAR (numeric_expr >0)

L-BFGSの勾配無限標準許容範囲を定義します。デフォルト値は1E-9です。

LBFGS_HISTORY_DEPTH

値は正整数である必要があります。

L-BFGSソルバーに保持される履歴コピー数を定義します。

デフォルト値は20です。

LBFGS_SCALE_HESSIAN

LBFGS_SCALE_HESSIAN_ENABLE

LBFGS_SCALE_HESSIAN_DISABLE

L-BFGSでヘッセをスケールするかどうかを定義します。

デフォルト値はLBFGS_SCALE_HESSIAN_ENABLEです。

参照:

ニューラル・ネットワークの詳細は、Oracle Data Mining概要を参照してください

48.6 DBMS_DATA_MININGデータ・タイプ

DBMS_DATA_MININGパッケージは、トランザクション・データをマイニングするためのオブジェクト・データ・タイプを定義します。パッケージは、また、ユーザー指定の変換のタイプも定義します。これらのタイプはDM_NESTED_nと呼ばれており、ここでnはネストした属性のOracleデータ・タイプを識別します。

データ・マイニングのオブジェクト・データ・タイプは、次の表のとおりです。

表48-29 DBMS_DATA_MININGのデータ・タイプの要約

データ・タイプ 説明

DM_NESTED_BINARY_DOUBLE

BINARY_DOUBLEタイプの量的属性の名前と値。

DM_NESTED_BINARY_DOUBLES

DM_NESTED_BINARY_DOUBLEのコレクション。

DM_NESTED_BINARY_FLOAT

BINARY_FLOATタイプの量的属性の名前と値。

DM_NESTED_BINARY_FLOATS

DM_NESTED_BINARY_FLOATのコレクション。

DM_NESTED_CATEGORICAL

CHARVARCHARまたはVARCHAR2タイプの質的属性の名前と値。

DM_NESTED_CATEGORICALS

DM_NESTED_CATEGORICALのコレクション。

DM_NESTED_NUMERICAL

NUMBERまたはFLOATタイプの量的属性の名前と値。

DM_NESTED_NUMERICALS

DM_NESTED_NUMERICALのコレクション。

ORA_MINING_VARCHAR2_NT

VARCHAR2(4000)の表。

TRANSFORM_LIST

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

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

ネストしたデータのマイニングの詳細は、Oracle Data Miningユーザーズ・ガイドを参照してください。

ノート:

Oracle Database 12cリリース2以降、*GET_MODEL_DETAILSは非推奨になり、モデル・ディテール・ビューに置き換えられています。Oracle Data Miningユーザーズ・ガイドを参照してください。

48.6.1 推奨されないタイプ

このトピックでは、推奨されないタイプをリストする表を示します。

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

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

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

表48-30 DBMS_DATA_MININGの推奨されないデータ・タイプの要約

データ・タイプ 説明

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も含まれます。

表48-32も参照してください。

DM_CLUSTERS

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

表48-32も参照してください。

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_EM_COMPONENT

期待値最大化モデルのコンポーネント。

DM_EM_COMPONENT_SET

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

DM_EM_PROJECTION

期待値最大化モデルのプロジェクト。

DM_EM_PROJECTION_SET

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

DM_GLM_COEFF

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

DM_GLM_COEFF_SET

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

DM_HISTOGRAM_BIN

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

DM_HISTOGRAMS

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

表48-32も参照してください。

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_NB_DETAIL

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

DM_NB_DETAILS

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

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_RULEおよびDM_CLUSTERのメンバー。述語は、GET_ASSOCIATION_RULESファンクションGET_MODEL_DETAILS_EMファンクションGET_MODEL_DETAILS_KMファンクション、およびGET_MODEL_DETAILS_OCファンクションによって戻されます。

表48-32も参照してください。

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ファンクションによって戻されるクラスタのコレクションでクラスタに関連付けられたルールを指定できます。

表48-32も参照してください。

DM_RULES

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

表48-32も参照してください。

DM_SVD_MATRIX

特異値分解モデルによって戻されるマトリックス因数分解S、VまたはU。

DM_SVD_MATRIX_SET

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

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ファンクションによって戻されます。

クラスタリング・アルゴリズムの戻り値

この表には、DM_CLUSTERの戻り値の列、ネストした表の列および行の説明が含まれます。

表48-31 クラスタリング・アルゴリズムのDM_CLUSTERの戻り値

戻り値 説明

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_PREDICATE

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のフィールド

次の表では、DM_CLUSTERのフィールドについて説明します。

表48-32 DM_CLUSTERのフィールド

列名 説明

id

クラスタの識別子

cluster_id

モデル内のクラスタのID

record_count

レコードの数を指定します。

parent

親ID

tree_level

ルートからの分岐の数を指定します。

dispersion

標準の統計モデルと比較して、一連の確認された出現が分散しているかどうかを定量化するために使用されるメジャー。

split_predicate

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)

ノート: 期待値の最大化アルゴリズムでは、dispersionsplit_predicateを除くすべてのフィールドが使用されます。

child

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

centroid

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

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

histogram

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)

rule

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_CLUSTERタイプの行をパイプライン出力します。データ・マイニングのデータ・タイプとテーブル・ファンクションからのパイプライン出力については、「データ・タイプ」を参照してください。

  • 述語(DM_PREDICATE)とルール(DM_RULE)の説明については、「GET_ASSOCIATION_RULESファンクション」を参照してください。

48.7 DBMS_DATA_MININGサブプログラムの要約

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

GET_*インタフェースはモデル・ビューに置き換えられます。かわりにモデル・ディテール・ビューを利用することをお薦めします。詳細は、Oracle Data Miningユーザーズ・ガイドの「モデル・ディテール・ビュー」、およびOracle Databaseリファレンス静的データ・ディクショナリ・ビュー: ALL_ALL_TABLESからALL_OUTLINESを参照してください。

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

サブプログラム 用途

ADD_COST_MATRIXプロシージャ

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

ADD_PARTITIONプロシージャ

既存のパーティション・モデルに1つ以上のパーティションを追加します。

ALTER_REVERSE_EXPRESSIONプロシージャ

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

APPLYプロシージャ

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

COMPUTE_CONFUSION_MATRIXプロシージャ

分類モデルのコンフュージョン・マトリックスを計算します。

COMPUTE_CONFUSION_MATRIX_PARTプロシージャ

パーティション化されたモデルの評価マトリックスを計算します。

COMPUTE_LIFTプロシージャ

分類モデルのリフトを計算します。

COMPUTE_LIFT_PARTプロシージャ

パーティション化されたモデルのリフトを計算します。

COMPUTE_ROCプロシージャ

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

COMPUTE_ROC_PARTプロシージャ

パーティション化されたモデルの受信者操作特性(ROC)を計算します。

CREATE_MODELプロシージャ

モデルを作成します。

CREATE_MODEL2プロシージャ

永続性ステージを追加することなくモデルを作成します。

登録情報を使用したモデルの作成

JSONオブジェクトから情報設定をフェッチします

DROP_ALGORITHMプロシージャ

登録されているアルゴリズム情報を削除します。

DROP_PARTITIONプロシージャ

単一パーティションを削除します。

DROP_MODELプロシージャ

モデルを削除します。

EXPORT_MODELプロシージャ

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

EXPORT_SERMODELプロシージャ

モデルを直列化された形式でエクスポートします

FETCH_JSON_SCHEMAプロシージャ

all_mining_algorithmsビューからJSONスキーマをフェッチし、読み取ります

GET_MODEL_COST_MATRIXファンクション

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

IMPORT_MODELプロシージャ

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

IMPORT_SERMODELプロシージャ

直列化されたモデルを元のデータベースにインポートします

R拡張可能アルゴリズムのJSONスキーマ

R拡張可能のJSONスキーマを作成する際に柔軟性を表示します

REGISTER_ALGORITHMプロシージャ

新しいアルゴリズムを登録します

RANK_APPLYプロシージャ

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

REMOVE_COST_MATRIXプロシージャ

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

RENAME_MODELプロシージャ

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

推奨されないGET_MODEL_DETAILS

Oracle Database 12cリリース2以降、次のGET_MODEL_DETAILSは非推奨になりました。

表48-34 推奨されないGET_MODEL_DETAILSファンクション

サブプログラム 用途

GET_ASSOCIATION_RULESファンクション

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

GET_FREQUENT_ITEMSETSファンクション

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

GET_MODEL_DETAILS_AIファンクション

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

GET_MODEL_DETAILS_EMファンクション

期待値の最大化モデルに関するディテールを戻します。

GET_MODEL_DETAILS_EM_COMPファンクション

期待値の最大化モデルのパラメータに関するディテールを戻します。

GET_MODEL_DETAILS_EM_PROJファンクション

期待値の最大化モデルのプロジェクトに関するディテールを戻します。

GET_MODEL_DETAILS_GLMファンクション

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

GET_MODEL_DETAILS_GLOBALファンクション

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

GET_MODEL_DETAILS_KMファンクション

k-Meansモデルに関するディテールを戻します。

GET_MODEL_DETAILS_NBファンクション

Naive Bayesモデルに関するディテールを戻します。

GET_MODEL_DETAILS_NMFファンクション

Non-Negative Matrix Factorizationモデルに関するディテールを戻します。

GET_MODEL_DETAILS_OCファンクション

O-Clusterモデルに関するディテールを戻します。

GET_MODEL_SETTINGSファンクション

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

このファンクションは、USER/ALL/DBA_MINING_MODEL_SETTINGSに置き換えられます

GET_MODEL_SIGNATUREファンクション

作成用の入力表の列のリストを戻します

このファンクションは、USER/ALL/DBA_MINING_MODEL_ATTRIBUTESに置き換えられます

GET_MODEL_DETAILS_SVDファンクション

特異値分解モデルに関するディテールを戻します。

GET_MODEL_DETAILS_SVMファンクション

線形カーネルを使用するサポート・ベクター・マシン・モデルに関するディテールを戻します。

GET_MODEL_TRANSFORMATIONSファンクション

モデルに埋め込まれた変換を戻します。

このファンクションは、USER/ALL/DBA_MINING_MODEL_XFORMSに置き換えられます

GET_MODEL_DETAILS_XMLファンクション

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

GET_TRANSFORM_LISTプロシージャ

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

48.7.1 ADD_COST_MATRIXプロシージャ

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

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

また、スコアリングのためにData Mining SQLファンクションを起動したときに、コスト・マトリックスをインラインに指定できます。モデルのスコアリング・マトリックスを表示するには、DM$VCの接頭辞付きモデル・ビューを問い合せます。分類アルゴリズムのモデル・ディテール・ビューに関する項を参照してください。

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

参照:

構文

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

パラメータ

表48-35 ADD_COST_MATRIXプロシージャのパラメータ

パラメータ 説明

model_name

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

cost_matrix_table_name

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

cost_matrix_schema_name

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

partition_name

パーティション化されたモデルのパーティション名

使用上のノート

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

  2. コスト・マトリックス表には、表48-36に示す列が必要です。

    表48-36 コスト・マトリックス表に必要な列

    列名 データ・タイプ

    ACTUAL_TARGET_VALUE

    有効なターゲット・データ型

    PREDICTED_TARGET_VALUE

    有効なターゲット・データ型

    COST

    NUMBERFLOATBINARY_DOUBLEまたはBINARY_FLOAT

    参照:

    有効なターゲット・データ・タイプについては、Oracle Data Miningユーザーズ・ガイドを参照してください。

  3. 実際のターゲット値と予測されるターゲット値のタイプは、モデル・ターゲットのタイプと同じである必要があります。たとえば、モデルのターゲットがBINARY_DOUBLEの場合、実際の値と予測される値はBINARY_DOUBLEである必要があります。実際の値と予測値がCHARまたはVARCHARの場合、ADD_COST_MATRIXによって、VARCHAR2として内部的に処理されます。

    タイプが一致しない場合、または実際の値や予測値が有効なターゲット値ではない場合、ADD_COST_MATRIXプロシージャでエラーが発生します。

    ノート:

    ターゲットに逆変換が関連付けられている場合は、実際の値や予測値と、逆変換の適用後のターゲットとの整合性が保持されている必要があります。

    詳細は、「DBMS_DATA_MINING_TRANSFORMの操作上のノート」の「変換リストについて」の「逆変換とモデルの透過性」を参照してください。

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

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

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

  6. パーティション化されたモデルのスコアリングは、パーティション固有です。スコアリング・コスト・マトリックスは、パーティション化されたモデルの個々のパーティションに対して追加することも削除することもできます。PARTITION_NAMEがNOT NULLの場合、モデルはパーティション化されたモデルである必要があります。COST_MATRIXは、パーティション化されたモデルのそのパーティションに追加されます。

    PARTITION_NAMEがNULLであるが、モデルがパーティション化されたモデルである場合、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

48.7.2 ADD_PARTITIONプロシージャ

ADD_PARTITIONプロシージャは、既存のパーティション化されたモデルに対する1つ以上のパーティションの追加をサポートしています。

ADD_PARTITIONプロシージャは、既存のモデルから作成設定とユーザー定義の式を導出します。教師ありモデルにパーティションを追加する場合は、ターゲット列が入力データ問合せに存在する必要があります。

構文

DBMS_DATA_MINING.ADD_PARTITION (
      model_name                IN VARCHAR2,
      data_query                IN CLOB,
      add_options               IN VARCHAR2 DEFAULT ERROR);

パラメータ

表48-37 ADD_PARTITIONプロシージャのパラメータ

パラメータ 説明
model_name

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

data_query

モデル作成にデータを提供する任意のSQL文。ユーザーには、この問合せを評価する権限が必要です。

add_options

入力データ・セットの行がモデル内の既存のパーティションと競合する場合に、ユーザーがADDの条件付きの動作を制御できます。次は、返される値です。

  • REPLACE: 競合するキーが検出された既存のパーティションを置き換えます。

  • ERROR: パーティションを追加することなくADD操作を終了します。

  • IGNORE: 競合するキーがある行を排除します。

ノート:

パフォーマンス向上のために、REPLACEオプションを使用せずに、DROP_PARTITIONの後でADD_PARTITIONを使用することをお薦めします。

48.7.3 ALTER_REVERSE_EXPRESSIONプロシージャ

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

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

構文

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

パラメータ

表48-38 ALTER_REVERSE_EXPRESSIONプロシージャのパラメータ

パラメータ 説明

model_name

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

expression

属性に関連した逆変換を置き換える式。

attribute_name

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

attribute_subname

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

使用上のノート

  1. Oracle Data Miningでは、モデルの透過性を目的として、モデルに埋め込まれた変換に対して逆変換が提供されます。逆変換は、モデル詳細(GET_MODEL_DETAILS_*ファンクション)に戻される属性、および述語モデルのスコアリング・ターゲットに適用されます。

    参照:

    「DBMS_DATA_MINING_TRANSFORMの操作上のノート」の「変換リストについて」

  2. コスト・マトリックスを持つモデルのターゲットに対する逆変換を変更する場合は、コスト・マトリックス内の実際の値および予測値と同じタイプの変換式を指定する必要があります。また、指定する逆変換の結果は、コスト・マトリックスに存在する値であることが必要です。

    参照:

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

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

  4. 逆変換式には、有効なOracleデータ・タイプを戻すPL/SQLファンクションの参照を含めることができます。たとえば、'Low'、'Medium'、および'High'の値を持つblood_pressureという名前の質的属性に対して、次のようなファンクションを定義できます。

    CREATE OR REPLACE FUNCTION numx(c char) RETURN NUMBER IS
      BEGIN
        CASE c WHEN ''Low'' THEN RETURN 1;
               WHEN ''Medium'' THEN RETURN 2;
               WHEN ''High'' THEN RETURN 3;
               ELSE RETURN null;
        END CASE;
      END numx;
    

    その後、次のようにblood_pressureに対してALTER_REVERSE_EXPRESIONを呼び出すことができます。

    EXEC dbms_data_mining.alter_reverse_expression(
                 '<model_name>', 'NUMX(blood_pressure)', 'blood_pressure');
    
  5. 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

48.7.4 APPLYプロシージャ

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

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

Oracle Data Miningでは、APPLYプロシージャは、相関モデルおよび属性評価モデルには適用できません。

ノート:

データ・マイニング機能を使用すると、SQLで直接スコアリングを実行することもできます。参照

構文

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

パラメータ

表48-39 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では、ユーザーのスキーマに表を作成して結果を保存します。列はアルゴリズム固有です。

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

    ノート:

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

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

  4. モデルがパーティション化されている場合、入力データ表からのデータに応じて、異なるパーティションからの結果がresult_table_nameに含まれる場合があります。PARTITION_NAMEという追加の列が結果表に追加され、各行に関連するパーティション名が示されます。

    パーティション化されていないモデルでは、動作は変更されません。

分類

分類の結果表には、表48-40に示す列があります。モデルが質的ターゲットの場合、PREDICTION列のデータ・タイプはVARCHAR2になります。ターゲットがバイナリ・タイプの場合、PREDICTION列もターゲットのバイナリ・タイプになります。

表48-40 分類に対するAPPLYの適用結果表

列名 データ・タイプ

ケースID列の名前

ケースIDのタイプ

PREDICTION

ターゲットのタイプ

PROBABILITY

BINARY_DOUBLE

異常検出

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

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

列名 データ・タイプ

ケースID列の名前

ケースIDのタイプ

PREDICTION

NUMBER

PROBABILITY

BINARY_DOUBLE

回帰

回帰の結果表には、「APPLYプロシージャ」に示す列があります。

表48-42 回帰に対するAPPLYの適用結果表

列名 データ・タイプ

ケースID列の名前

ケースIDのタイプ

PREDICTION

ターゲットのタイプ

クラスタリング

クラスタリングは教師なしのマイニング機能であるため、ターゲットは存在しません。APPLYプロシージャの結果は、単にケースに対応するクラスタ識別子と、ケースの確率のみになります。結果表には、表48-43に示す列があります。

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

列名 データ・タイプ

ケースID列の名前

ケースIDのタイプ

CLUSTER_ID

NUMBER

PROBABILITY

BINARY_DOUBLE

特徴抽出

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

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

列名 データ・タイプ

ケースID列の名前

ケースIDのタイプ

FEATURE_ID

NUMBER

MATCH_QUALITY

BINARY_DOUBLE

この例では、GLM回帰モデルGLMR_SH_REGR_SAMPLEMINING_DATA_APPLY_Vビューのデータに適用します。APPLYの適用結果は、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

48.7.5 COMPUTE_CONFUSION_MATRIXプロシージャ

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

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

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

パラメータ

表48-45 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);
    
  • コスト・マトリックスには、表48-46に示す列が必要です。

    表48-46 コスト・マトリックスの列

    列名 データ・タイプ

    actual_target_value

    作成データのターゲット列のタイプ

    predicted_target_value

    テスト・データの予測ターゲットのタイプ。予測されるターゲットのタイプは、予測されるターゲットに関連した逆変換が存在しない限り、実際のターゲットのタイプと同じであることが必要です。

    cost

    BINARY_DOUBLE

    参照:

    有効なターゲット・データ・タイプについては、Oracle Data Miningユーザーズ・ガイドを参照してください。

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

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

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

    列名 データ・タイプ

    actual_target_value

    作成データのターゲット列のタイプ

    predicted_target_value

    テスト・データの予測ターゲットのタイプ。予測されるターゲットのタイプは、予測されるターゲットに関連した逆変換が存在しない限り、実際のターゲットのタイプと同じです。

    value

    BINARY_DOUBLE

    参照:

    コンフュージョン・マトリックスの詳細は、『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

48.7.6 COMPUTE_CONFUSION_MATRIX_PARTプロシージャ

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

COMPUTE_CONFUSION_MATRIX_PARTは、パーティション化されたモデルのパーティションごとの評価メトリックの計算をサポートします。パーティション化されていないモデルについては、「COMPUTE_CONFUSION_MATRIXプロシージャ」を参照してください。

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

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

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

    • ケースID列

    • 予測列

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

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

    • ケースID列

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

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

参照:

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

COMPUTE_LIFT_PARTプロシージャ

COMPUTE_ROC_PARTプロシージャ

構文

DBMS_DATA_MINING.compute_confusion_matrix_part(
      accuracy                    OUT DM_NESTED_NUMERICALS,
      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',
      score_partition_column_name IN  VARCHAR2 DEFAULT 'PARTITION_NAME',
      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 NULL);

パラメータ

表48-48 COMPUTE_CONFUSION_MATRIX_PARTプロシージャのパラメータ

パラメータ 説明

accuracy

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

出力引数は、NUMBERからDM_NESTED_NUMERICALSに変更されます。

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プロシージャ」を参照)。

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

score_partition_column_name

(オプション)パーティションの名前を含む列を示すパラメータ。この列により、各パーティションで独立した評価マトリックスが計算されるように、入力テスト結果がスライスされます。

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_typeCOSTに設定されているにもかかわらずコスト・マトリックスがない場合に、モデルにスコアリング・コスト・マトリックスが関連付けられていると、この関連付けられているコストがスコアリングに使用されます。

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

使用上のノート

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

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

  • COMPUTE_CONFUSION_MATRIX_PARTに渡す予測情報は、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);
    
  • コスト・マトリックスには、表48-46に示す列が必要です。

    表48-49 コスト・マトリックスの列

    列名 データ・タイプ

    actual_target_value

    テスト・データのターゲット列のタイプ

    predicted_target_value

    テスト・データの予測ターゲットのタイプ。予測されるターゲットのタイプは、予測されるターゲットに関連した逆変換が存在しない限り、実際のターゲットのタイプと同じであることが必要です。

    cost

    BINARY_DOUBLE

    参照:

    有効なターゲット・データ・タイプについては、Oracle Data Miningユーザーズ・ガイドを参照してください。

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

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

    表48-50 コンフュージョン・マトリックス(パーティション)の列

    列名 データ・タイプ

    actual_target_value

    テスト・データのターゲット列のタイプ

    predicted_target_value

    テスト・データの予測ターゲットのタイプ。予測されるターゲットのタイプは、予測されるターゲットに関連した逆変換が存在しない限り、実際のターゲットのタイプと同じです。

    value

    BINARY_DOUBLE

    参照:

    コンフュージョン・マトリックスの詳細は、『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_PART (
                   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'
                   score_partition_column_name  => 'PARTITION_NAME'
                   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

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倍以上のコストがかかることがわかります。

 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_PART (
                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',
                score_partition_column_name  => 'PARTITION_NAME'
                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

 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_PART (
            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',
            score_partition_column_name  => 'PARTITION_NAME'  
            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

 SELECT * FROM NB_CONFUSION_MATRIX;
ACTUAL_TARGET_VALUE PREDICTED_TARGET_VALUE      VALUE
------------------- ---------------------- ----------
                  1                      0         91
                  0                      0        942
                  1                      1        255
                  0                      1        212

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

パラメータ

表48-51 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);
    
  • コスト・マトリックスには、表48-52に示す列が必要です。

    表48-52 コスト・マトリックスの列

    列名 データ・タイプ

    actual_target_value

    作成データのターゲット列のタイプ

    predicted_target_value

    テスト・データの予測ターゲットのタイプ。予測されるターゲットのタイプは、予測されるターゲットに関連した逆変換が存在しない限り、実際のターゲットのタイプと同じであることが必要です。

    cost

    NUMBER

    参照:

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

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

    表48-53 リフト表の列

    列名 データ・タイプ

    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  

48.7.8 COMPUTE_LIFT_PARTプロシージャ

COMPUTE_LIFT_PARTプロシージャは、リフトを計算し、ユーザーのスキーマにある表に結果を格納します。このプロシージャは、パーティション化されたモデルのパーティションごとの評価メトリックの計算をサポートします。

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

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

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

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

    • ケースID列

    • 予測列

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

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

    • ケースID列

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

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

構文

DBMS_DATA_MINING.COMPUTE_LIFT_PART (
      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',
      score_partition_column_name IN VARCHAR2 DEFAULT 'PARTITION_NAME',
      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 NULL); 

パラメータ

表48-54 COMPUTE_LIFT_PARTプロシージャのパラメータ

パラメータ 説明

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プロシージャ」を参照)。

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

score_partition_column_name

パーティションの名前を含む列を示すオプション・パラメータ。この列により、各パーティションで独立した評価マトリックスが計算されるように、入力テスト結果がスライスされます。

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_typeCOSTに設定されているにもかかわらずコスト・マトリックスがない場合に、モデルにスコアリング・コスト・マトリックスが関連付けられていると、この関連付けられているコストがスコアリングに使用されます。

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

使用上のノート

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

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

  • COMPUTE_LIFT_PARTに渡す予測情報は、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);
    
  • コスト・マトリックスには、表48-52に示す列が必要です。

    表48-55 コスト・マトリックスの列

    列名 データ・タイプ

    actual_target_value

    テスト・データのターゲット列のタイプ

    predicted_target_value

    テスト・データの予測ターゲットのタイプ。予測されるターゲットのタイプは、予測されるターゲットに関連した逆変換が存在しない限り、実際のターゲットのタイプと同じであることが必要です。

    cost

    NUMBER

    参照:

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

  • COMPUTE_LIFT_PARTで作成される表には、表48-53に示す列があります。

    表48-56 COMPUTE_LIFT_PART表の列

    列名 データ・タイプ

    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_PARTにコスト・マトリックスが渡されると、リフト表のprobability_threshold列にコストしきい値が戻されます。

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

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

パーティション化されたモデルの例については、「COMPUTE_CONFUSION_MATRIX_PARTプロシージャ」を参照してください。

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

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_PART (
             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',
             score_partition_column_name => 'PARTITITON_NAME',
             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;
/

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

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  

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

パラメータ

表48-57 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で作成される表には、表48-58に示す列があります。

    表48-58 COMPUTE_ROCの出力

    データ・タイプ

    probability

    BINARY_DOUBLE

    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          => 'mining_data_test_v',
         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

 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
      .                   .                        .
      .                   .                        .
      .                   .                        .

48.7.10 COMPUTE_ROC_PARTプロシージャ

COMPUTE_ROC_PARTプロシージャは、受信者操作特性(ROC)を計算してユーザーのスキーマにある表に結果を格納し、モデルの精度を戻します。このプロシージャは、パーティション化されたモデルのパーティションごとの評価メトリックの計算をサポートします。

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

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

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

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

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

    • ケースID列

    • 予測列

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

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

    • ケースID列

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

構文

DBMS_DATA_MINING.compute_roc_part(
      roc_area_under_curve        OUT DM_NESTED_NUMERICALS,
      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',
      score_partition_column_name IN  VARCHAR2 DEFAULT 'PARTITION_NAME',
      apply_result_schema_name    IN  VARCHAR2 DEFAULT NULL,
      target_schema_name          IN  VARCHAR2 DEFAULT NULL);

パラメータ

表48-59 COMPUTE_ROC_PARTプロシージャのパラメータ

パラメータ 説明

roc_area_under_the_curve

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

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

出力引数は、NUMBERからDM_NESTED_NUMERICALSに変更されます。

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プロシージャ」を参照)。

score_partition_column_name

パーティションの名前を含む列を示すオプション・パラメータ。この列により、各パーティションで独立した評価マトリックスが計算されるように、入力テスト結果がスライスされます。

apply_result_schema_name

適用結果表のスキーマ。

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

target_schema_name

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

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

使用上のノート

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

  • COMPUTE_ROC_PARTに渡す予測情報は、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_PART表には次の列があります。

    表48-60 COMPUTE_ROC_PARTの出力

    データ・タイプ

    probability

    BINARY_DOUBLE

    true_positives

    NUMBER

    false_negatives

    NUMBER

    false_positives

    NUMBER

    true_negatives

    NUMBER

    true_positive_fraction

    NUMBER

    false_positive_fraction

    NUMBER

    参照:

    COMPUTE_ROC_PARTの出力の詳細は、『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_PART (
         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');
         score_partition_column_name => 'PARTITION_NAME'
     DBMS_OUTPUT.PUT_LINE('**** AREA UNDER ROC CURVE ****: ' ||
     ROUND(v_area_under_curve,4));
END;
/

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

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

 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
      .                   .                        .
      .                   .                        .
      .                   .                        .

48.7.11 CREATE_MODELプロシージャ

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

構文

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

パラメータ

表48-61 CREATE_MODELプロシージャのパラメータ

パラメータ 説明

model_name

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

モデルのネーミングにおける制限については、「使用上のノート」を参照してください。

mining_function

マイニング機能。値を表48-3に示します。

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設定の値によって異なります。(「自動データ準備」を参照)

xform_listのデータ・タイプはTRANSFORM_LISTです。これは、TRANSFORM_RECタイプのレコードで構成されます。各TRANSFORM_RECで1つの属性の変換情報を指定します。

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

expressionフィールドは、属性を変換するためのSQL式を格納します。reverse_expressionフィールドは、モデルのディテールの変換を逆変換するためのSQL式を格納します。属性がターゲットの場合は、スコアリング結果の変換を逆変換するためのSQL式を格納します。SQL式は、DBMS_DATA_MINING_TRANSFORMパッケージ内の次のルーチンで操作されます。

attribute_specフィールドは、属性の個々の処理を識別します。詳細は、「使用上のノート」を参照してください。

TRANSFORM_RECタイプの詳細は、表49-1を参照してください。

使用上のノート

  1. xform_list引数のattribute_specフィールドを使用すると、属性を非構造化テキストとして識別したり、属性に対する自動データ準備を無効にすることができます。attribute_specには、次の値を設定できます。

    • TEXT: 属性に非構造化テキストが含まれていることを示します。オプションで、TEXT値の後に、POLICY_NAMETOKEN_TYPEMAX_FEATURESおよびMIN_DOCUMENTSのパラメータを追加できます。

      TOKEN_TYPEの有効な値は、NORMALSTEMTHEMESYNONYMBIGRAMおよびSTEM_BIGRAMです。オプションで、SYNONYMの後に、大カッコで囲まれたシソーラス名を追加できます。

      MAX_FEATURESでは、テキストから抽出されるトークンの最大数を指定します。

      MIN_DOCUMENTSでは、すべての選択したトークンが出現するドキュメントの最小数を指定します。(テキスト・ポリシーの作成の詳細は、『Oracle Textリファレンス』CTX_DDL.CREATE_POLICYに関する項を参照)。

      Oracle Data Miningでは、VARCHAR2/CHARCLOBBLOBおよびBFILEの各列をテキストとして処理できます。列がVARCHAR2またはCHARのときにTEXTを指定しないと、Oracle Data Miningによってその列が質的データとして処理されます。列がCLOBの場合、Oracle Data Miningによってデフォルトのテキストとして処理されます(TEXTとして指定する必要はありません。ただし、設定にOracle Textポリシーを指定する必要があります)。列がBLOBまたはBFILEのときにTEXTを指定しないと、CREATE_MODELはエラーを戻します。

      ネストした列またはネストした列の属性に対してTEXTを指定すると、CREATE_MODELはエラーを戻します。

    • NOPREP: 属性のADPを無効にします。ADPがOFFの場合、値NOPREPは無視されます。

      NOPREPはネストした列に対して指定できますが、ネストした列の属性に対しては指定できません。ADPが有効なときに、ネストした列の属性に対してNOPREPを指定すると、CREATE_MODELはエラーを戻します。

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

    ALL/USER/DBA_MINING_MODELS
    ALL/USER/DBA_MINING_MODEL_ATTRIBUTES
    ALL/USER/DBA_MINING_MODEL_SETTINGS
    ALL/USER/DBA_MINING_MODEL_VIEWS
    ALL/USER/DBA_MINING_MODEL_PARTITIONS
    ALL/USER/DBA_MINING_MODEL_XFORMS
    

    モデル・ビューを介してモデルのディテールを問い合せると、モデルの属性に関する情報を取得できます。Oracle Data Miningユーザーズ・ガイドを参照してください。

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

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

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

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

  4. パーティション化されたモデルを作成するには、追加設定を指定する必要があります。

    パーティション列の設定は、次のとおりです。

    INSERT INTO settings_table VALUES (‘ODMS_PARTITION_COLUMNS’, ‘GENDER, AGE’);

    モデルにユーザー定義のパーティション数を設定する場合、設定は次のようになります。

    INSERT INTO settings_table VALUES ('ODMS_MAX_PARTITIONS’, '10’);

    パーティションの最大数のデフォルト値は1000です。

  5. xform_listCREATE_MODELに渡すと、入力データで実行される変換のリストを指定できます。PREP_AUTO設定をONにすると、自動変換に加えてその変換が使用されます。PREP_AUTO設定をOFFにすると、指定した変換のみがモデルで実装されます。いずれの場合も、変換定義はモデルに埋め込まれ、モデルが適用されるたびに自動的に実行されます。「自動データ準備」を参照してください。xform_listで指定できる他の変換には、FORCE_INなどがあります。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_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_LINEAR                 	 DEFAULT
SVM_MODEL      SVMS_CONV_TOLERANCE     .001                          DEFAULT

次に、古いGEL_MODEL_DETAILS_SVMルーチンのかわりに、モデル・ビューを問い合せる例を示します。

SELECT target_value, attribute_name, attribute_value, coefficient   FROM DM$VLSVM_MODEL;

次の例では、異常検出モデルを作成します。異常検出では、ターゲットなしで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

48.7.12 CREATE_MODEL2プロシージャ

CREATE_MODEL2プロシージャはCREATE_MODELプロシージャの代替プロシージャであり、これによって永続性ステージを追加することなくモデルを作成できます。CREATE_MODELプロシージャでは、入力は表またはビューであり、そのようなオブジェクトがまだ存在しない場合はユーザーが作成する必要があります。CREATE_MODEL2プロシージャを使用することにより、ユーザーはそのような一時データベース・オブジェクトを作成する必要がありません。

構文

DBMS_DATA_MINING.CREATE_MODEL2 (
     model_name            IN VARCHAR2,
     mining_function       IN VARCHAR2,
     data_query            IN CLOB,
     set_list              IN SETTING_LIST,
     case_id_column_name   IN VARCHAR2 DEFAULT NULL,
     target_column_name    IN VARCHAR2 DEFAULT NULL,
     xform_list            IN TRANSFORM_LIST DEFAULT NULL);

パラメータ

表48-62 CREATE_MODEL2プロシージャのパラメータ

パラメータ 説明

model_name

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

モデルのネーミングにおける制限の詳細は、「CREATE_MODELプロシージャ」の「使用上のノート」を参照してください。

mining_function

マイニング機能。この値のリストについては、「DBMS_DATA_MINING — マイニング機能の設定」を参照してください。

data_query

モデルを作成するためのトレーニング・データを提供する問合せ。

set_list

SETTING_LISTを指定します。

SETTING_LISTVARCHAR2(30)によるCLOB索引の表で、ここで索引は設定名でCLOBはその名前の設定値です。

case_id_column_name

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

target_column_name

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

xform_list

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

使用上のノート

使用上のノートは、「CREATE_MODELプロシージャ」を参照してください。

次の例では、サポート・ベクター・マシン・アルゴリズムを使用しています。

declare
 v_setlst DBMS_DATA_MINING.SETTING_LIST;

BEGIN
  v_setlst(dbms_data_mining.algo_name) := dbms_data_mining.algo_support_vector_machines;
  v_setlst(dbms_data_mining.prep_auto) := dbms_data_mining.prep_auto_on;
  
DBMS_DATA_MINING.CREATE_MODEL2(
    model_name         => 'svm_model',
    mining_function    => dbms_data_mining.classification,
    data_query         => 'select * from mining_data_build_v',
    data_table_name    => 'mining_data_build_v',
    case_id_column_name=> 'cust_id',
    target_column_name => 'affinity_card',
    set_list           => v_setlst,
    case_id_column_name=> 'cust_id',
    target_column_name => 'affinity_card');
END;
/

48.7.13 登録情報を使用したモデルの作成

モデルの作成ファンクションは、JSONオブジェクトから設定情報をフェッチします。

使用上のノート

アルゴリズムが登録されている場合、ユーザーは登録されたアルゴリズム名を使用してモデルを作成できます。すべてのRスクリプトおよびデフォルト設定値はすでに登録されているため、設定表を使用して値を指定する必要はありません。これにより、このアルゴリズムの使用が容易になります。

最初の例では、GLMアルゴリズムを使用して分類モデルを作成します。

CREATE TABLE GLM_RDEMO_SETTINGS_CL (
                                                   
   setting_name  VARCHAR2(30),
   setting_value VARCHAR2(4000));
   BEGIN
        INSERT INTO GLM_RDEMO_SETTINGS_CL VALUES
         ('ALGO_EXTENSIBLE_LANG', 'R');
        INSERT INTO GLM_RDEMO_SETTINGS_CL VALUES
         (dbms_data_mining.ralg_registration_algo_name, 't1');
        INSERT INTO GLM_RDEMO_SETTINGS_CL VALUES
        (dbms_data_mining.odms_formula,   
        'AGE + EDUCATION + HOUSEHOLD_SIZE + OCCUPATION');
        INSERT INTO GLM_RDEMO_SETTINGS_CL VALUES
         ('RALG_PARAMETER_FAMILY',   'binomial(logit)' );
   END;
   /
     BEGIN
          DBMS_DATA_MINING.CREATE_MODEL(
          model_name                    =>    'GLM_RDEMO_CLASSIFICATION',
          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           =>    'GLM_RDEMO_SETTINGS_CL');
      END;
      /

48.7.14 DROP_ALGORITHMプロシージャ

このファンクションは、登録されているアルゴリズム情報を削除するために使用します。

構文

DBMS_DATA_MINING.DROP_ALGORITHM (algorithm_name  IN  VARCHAR2(30),
                                 cascade         IN  BOOLEAN default FALSE)

パラメータ

表48-63 DROP_ALGORITHMプロシージャのパラメータ

パラメータ 説明

algorithm_name

アルゴリズムの名前。

cascade

カスケード・オプションがTRUEの場合、このアルゴリズムを使用したモデルはすべて強制的に削除されます。その後、アルゴリズムが削除されます。デフォルト値はFALSEです。

使用上のノート

  • マイニング・モデルを削除するには、そのモデルの所有者であるか、またはRQADMIN権限が必要です。データ・マイニングの権限の詳細は、Oracle Data Miningユーザーズ・ガイドを参照してください。

  • モデルがアルゴリズムに基づいて作成されていないことを確認してから、システム表からアルゴリズムを削除します。

  • モデルの作成に使用されているアルゴリズムを削除しようとすると、エラーが表示されます。

48.7.15 DROP_PARTITIONプロシージャ

DROP_PARTITIONプロシージャは、パラメータpartition_nameで指定された単一パーティションを削除します。

構文

DBMS_DATA_MINING.DROP_PARTITION (
      model_name                IN VARCHAR2,
      partition_name            IN VARCHAR2);

パラメータ

表48-64 DROP_PARTITIONプロシージャのパラメータ

パラメータ 説明

model_name

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

partition_name

削除する必要があるパーティションの名前。

48.7.16 DROP_MODELプロシージャ

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

構文

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

パラメータ

表48-65 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;
/

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

パラメータ

表48-66 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モデルをエクスポートできます。例は、表48-67を参照してください。

filesize

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

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

operation

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

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

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

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

remote_link

リモート・システムへのデータベース・リンクの名前を指定するオプション・パラメータ。デフォルト値はNULLです。データベース・リンクはローカル・データベースのスキーマ・オブジェクトであり、これを使用すると、リモート・データベース上のオブジェクトにアクセスできます。remote_linkの値を指定することで、リモート・データベース内のモデルをエクスポートできます。リモート・モデルのエクスポートには、EXP_FULL_DATABASEロールが必要です。また、EXP_FULL_DATABASE権限、CREATE DATABASE LINK権限およびその他の権限が必要になることもあります。

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)

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

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

サンプル値 意味

'mymodel'

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

'name= ''mymodel'''

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

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

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

'ALGORITHM_NAME = ''NAIVE_BAYES'''

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

'FUNCTION_NAME =''CLASSIFICATION'''

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

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

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

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

    SQL>EXIT
    >cd $ORACLE_HOME/rdbms/log
    >ls
    >DMUSER3_exp_1027.log  models_out01.dmp  
    
  2. 次の例は、同じディレクトリ・オブジェクトを使用し、同じユーザーによって実行されます。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
    
  3. 次の例では、特定のアルゴリズム名とマイニング機能名を指定してモデルをエクスポートする方法を示します。

    SQL>EXECUTE DBMS_DATA_MINING.EXPORT_MODEL('algo.dmp','DM_DUMP',
            'ALGORITHM_NAME IN (''O_CLUSTER'',''GENERALIZED_LINEAR_MODEL'',
            ''SUPPORT_VECTOR_MACHINES'',''NAIVE_BAYES'')');
     
    SQL>EXECUTE DBMS_DATA_MINING.EXPORT_MODEL('func.dmp', 'DM_DUMP', 
            'FUNCTION_NAME IN (CLASSIFICATION,CLUSTERING,FEATURE_EXTRACTION)');
    

48.7.18 EXPORT_SERMODELプロシージャ

このプロシージャは、スコアリングのために別のプラットフォームに移動できるように、モデルを直列化された形式でエクスポートします。

直列化された形式でモデルをエクスポートする場合、ユーザーは空のBLOBロケータを渡し、エクスポートするモデル名を指定する必要があります。モデルがパーティション化されている場合、ユーザーはオプションで、エクスポートする個々のパーティションを選択できます。選択しない場合は、すべてのパーティションがエクスポートされます。戻されたBLOBにはデプロイ可能なコンテンツが含まれています。

構文

DBMS_DATA_MINING.EXPORT_SERMODEL (
      model_data     IN OUT NOCOPY BLOB,
      model_name     IN VARCHAR2,
      partition_name IN VARCHAR2 DEFAULT NULL);

パラメータ

表48-68 EXPORT_SERMODELプロシージャのパラメータ

パラメータ 説明

model_data

直列化されたモデル・データを提供します。

model_name

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

partition_name

エクスポートする必要があるパーティションの名前。

次の文は、すべてのモデルを直列化された形式でエクスポートします。

DECLARE
 v_blob blob;
BEGIN
 dbms_lob.createtemporary(v_blob, FALSE);
 dbms_data_mining.export_sermodel(v_blob, 'MY_MODEL');
-- save v_blob somewhere (e.g., bfile, etc.)
 dbms_lob.freetemporary(v_blob);
END;
/

参照:

マイニング・モデルのエクスポートおよびインポートの詳細は、Oracle Data Miningユーザーズ・ガイドを参照してください。

48.7.19 FETCH_JSON_SCHEMAプロシージャ

ユーザーは、ALL_MINING_ALGORITHMSビューからJSONスキーマを取得し、読み取ることができます。このファンクションは、R拡張可能アルゴリズムの事前登録済JSONスキーマを戻します。

構文

DBMS_DATA_MINING.FETCH_JSON_SCHEMA RETURN CLOB;

パラメータ

表48-69 FETCH_JSON_SCHEMAプロシージャのパラメータ

パラメータ 説明

RETURN

このファンクションは、R拡張性の事前登録済JSONスキーマを戻します。

デフォルト値はCLOBです。

使用上のノート

ユーザーがアルゴリズム登録ファンクションを使用して新しいアルゴリズムを登録する場合は、必要なJSONオブジェクト・メタデータを作成するときに、このファンクションを使用して事前登録済JSONスキーマをフェッチして従い、登録ファンクションに渡す必要があります。

48.7.20 GET_ASSOCIATION_RULESファンクション

GET_ASSOCIATION_RULESファンクションは、相関モデルによって作成されたルールを戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください

フィルタ条件を指定して、ルールのサブセットを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,
      partition_name   IN VARCHAR2 DEFAULT NULL)
  RETURN DM_Rules PIPELINED;

パラメータ

表48-70 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

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

ルールの長さとは、ルール内の項目数のことです(表48-71の「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つ以上の列名を指定します。(列名については、表48-71を参照)

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

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

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

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

antecedent_items

これらの項目が前件にあるルールを戻します。

consequent_items

この項目が後件にあるルールを戻します。

min_lift

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

partition_name

パーティション化されたモデルのパーティションを指定します。

戻り値

GET_ASSOCIATION_RULESによって戻されるオブジェクト・タイプを表48-71で示します。各フィールドの説明については、「使用上のノート」を参照してください。

表48-71 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 )

DM_PREDICATES

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)

使用上のノート

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

  2. GET_ASSOCIATION_RULESによって戻される列は、次のとおりです。

    DM_RULESの列 説明

    rule_id

    ルールの一意の識別子

    antecedent

    ルール内の独立の条件。この条件が存在する場合は、後件に依存条件も存在します。

    条件は、述語(DM_PREDICATE)と呼ばれる属性値の組み合わせです。述語は、属性ごとの条件を指定します。条件としては、指定の値に等しい(=)、等しくない(<>)、より大(>)、より小(<)、以上(>=)、または以下(<=)を指定できます。

    前件の属性条件ごとに、SupportConfidenceが述語に戻されます。支持度は、前件を満たすトランザクションの数です。信頼度は、トランザクションが前件を満たす確度です。

    ノート: DM_PREDICATE属性があることは、トランザクションに項目が存在することを示しています。attribute_num_valueまたはattribute_str_valueの実際の値に意味はありません。たとえば、次の述語は、属性値がNULLでもトランザクションにMouse Padが存在していることを示しています。

    DM_PREDICATE('PROD_NAME', 
                    'Mouse Pad', '= ', NULL, NULL, NULL, NULL))

    consequent

    ルール内の依存条件。後件が存在する場合に、この条件が存在します。

    後件は、前件と同様に述語(DM_PREDICATE)です。

    後件の属性条件ごとに、支持度と信頼度が述語に戻されます。支持度は、後件を満たすトランザクションの数です。信頼度は、トランザクションが後件を満たす確度です。

    rule_support

    ルールを満たすトランザクションの数。

    rule_confidence

    トランザクションがルールを満たす確度。

    rule_lift

    ルールが満たされた場合に、ランダムな可能性を上回る予測の改善の程度。

    antecedent_support

    トランザクションの合計数に対する、前件を満たすトランザクションの数の割合。

    consequent_support

    トランザクションの合計数に対する、後件を満たすトランザクションの数の割合。

    number_of_items

    ルールの前件と後件で参照される属性の合計数。

次の例では、相関モデルを作成した後、テーブル・ファンクション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 market_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 => 'market_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のサンプル・プログラムから作成されます。

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



参照:

DM_RULE列のデータ・タイプについては、表48-71を参照してください。

サンプル・プログラムについては、Oracle Data Miningユーザーズ・ガイドを参照してください。

モデル・ディテール・ビューについては、Oracle Data Miningユーザーズ・ガイドを参照してください。

48.7.21 GET_FREQUENT_ITEMSETSファンクション

GET_FREQUENT_ITEMSETSファンクションは、高頻度項目セットを表す行の集合を相関モデルから戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください。

高頻度項目セットの説明は、『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,
      partition_name     IN VARCHAR2 DEFAULT NULL)
  RETURN DM_ItemSets PIPELINED;

パラメータ

表48-72 GET_FREQUENT_ITEMSETSファンクションのパラメータ

パラメータ 説明

model_name

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

topn

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

max_itemset_length

項目セットの最大長。

partition_name

パーティション化されたモデルのパーティションを指定します。

ノート:

partition_name列は、モデルがパーティション化されている場合にのみ適用されます。

戻り値

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

戻り値 説明

DM_ITEMSETS

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

(partition_name  VARCHAR2(128)
itemsets_id      NUMBER,
items             DM_ITEMS,
support           NUMBER,
number_of_items   NUMBER)

ノート:

partition_name列は、モデルがパーティション化されている場合にのみ適用されます。

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  => 'market_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));

48.7.22 GET_MODEL_COST_MATRIXファンクション

GET_*インタフェースはモデル・ビューに置き換えられるため、かわりにこのビューを利用することをお薦めします。GET_MODEL_COST_MATRIXファンクションは、スコアリング・コスト・マトリックスであるDM$VCの接頭辞付きビューに置き換えられます。デシジョン・ツリーの作成時に使用したコスト・マトリックスは、デシジョン・ツリーの作成コスト・マトリックスであるDM$VMの接頭辞付きビューで使用できるようになります。

分類アルゴリズムのモデル・ディテール・ビューに関する項を参照してください。

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

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

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

構文

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

パラメータ

表48-74 GET_MODEL_COST_MATRIXファンクションのパラメータ

パラメータ 説明

model_name

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

matrix_type

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

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

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

partition_name

パーティション化されたモデルのパーティション名

戻り値

表48-75 GET_MODEL_COST_MATRIXファンクションの戻り値

戻り値 説明

DM_COST_MATRIX

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

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

使用上のノート

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

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

GET_MODEL_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

48.7.23 GET_MODEL_DETAILS_AIファンクション

GET_MODEL_DETAILS_AIファンクションは、属性評価モデルのディテールを表す行の集合を戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください。

構文

DBMS_DATA_MINING.get_model_details_ai(
      model_name IN VARCHAR2,
      partition_name IN VARCHAR2 DEFAULT NULL)
  RETURN dm_ranked_attributes pipelined;

パラメータ

表48-76 GET_MODEL_DETAILS_AIファンクションのパラメータ

パラメータ 説明

model_name

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

partition_name

パーティション化されたモデルのパーティションを指定します。

戻り値

表48-77 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

48.7.24 GET_MODEL_DETAILS_EMファンクション

GET_MODEL_DETAILS_EMファンクションは、期待値の最大化モデルによって生成されたクラスタに関する統計を表す行の集合を戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください。

デフォルトでは、EMアルゴリズムによってコンポーネントが上位レベルのクラスタへとグループ化されるため、GET_MODEL_DETAILS_EMは上位レベルのクラスタのみを、その階層とともに戻します。または、EMモデルを構成して、コンポーネントの上位レベルのクラスタへのグループ化を無効にできます。この場合、GET_MODEL_DETAILS_EMは、これらのコンポーネント自体をクラスタとして、階層とともに戻します。表48-12を参照してください。

構文

DBMS_DATA_MINING.get_model_details_em(
      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,
      topn_attributes NUMBER DEFAULT NULL,
      partition_name IN VARCHAR2 DEFAULT NULL)
  RETURN dm_clusters PIPELINED;

パラメータ

表48-78 GET_MODEL_DETAILS_EMファンクションのパラメータ

パラメータ 説明

model_name

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

cluster_id

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

attribute

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

centroid

このパラメータには次の値を使用できます。

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

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

histogram

このパラメータには次の値を使用できます。

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

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

rules

このパラメータには次の値を使用できます。

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

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

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

attribute_subname

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

attribute_name.attribute_subname

ここで、attribute_nameは列の名前、attribute_subnameはその列にネストした属性の名前になります。属性がネストしていない場合、attribute_subnameはNULLです。

topn_attributes

セントロイド、ヒストグラムおよびルール・オブジェクトで戻される属性数を制限します。ルール内で最も高い信頼度の値を持つn個の属性のみが戻されます。

ルールに含まれる属性の数がtopnより少ない場合、追加の属性が最大n個までアルファベット順に戻されます。

attributetopn_attributesの両方のパラメータを指定した場合、topn_attributesは無視されます。

partition_name

パーティション化されたモデルのパーティションを指定します。

使用上のノート

  1. データ・マイニングのデータ・タイプとテーブル・ファンクションからのクラスタリング・アルゴリズムの戻り値のパイプライン出力については、「データ・タイプ」を参照してください。

  2. GET_MODEL_DETAILSファンクションは、作成プロセス中に適用された変換を自動的に元に戻すことによって、モデル透過性を保持します。このため、モデルのディテールに戻される属性は、モデル作成に使用された元の属性(または元の属性の近似値)となります。

  3. クラスタ統計を無効にすると(EMCS_CLUSTER_STATISTICSEMCS_CLUS_STATS_DISABLEに設定)、GET_MODEL_DETAILS_EMはセントロイド、ヒストグラムまたはルールを戻しません。分類(階層)とクラスタ数のみが戻されます。

  4. パーティション化されたモデルでpartition_nameNULLの場合、例外がスローされます。値がNULLでない場合、目的のパーティション名が含まれる必要があります。

48.7.25 GET_MODEL_DETAILS_EM_COMPファンクション

GET_MODEL_DETAILS_EM_COMPテーブル・ファンクションは、期待値の最大化モデルのパラメータに関するディテールを表す行の集合を戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください。

構文

DBMS_DATA_MINING.get_model_details_em_comp(
      model_name IN VARCHAR2,
      partition_name IN VARCHAR2 DEFAULT NULL)
  RETURN DM_EM_COMPONENT_SET PIPELINED;

パラメータ

表48-79 GET_MODEL_DETAILS_EM_COMPファンクションのパラメータ

パラメータ 説明

model_name

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

partition_name

ディテールを取得するパーティション化されたモデルのパーティションを指定します。

戻り値

表48-80 GET_MODEL_DETAILS_EM_COMPファンクションの戻り値

戻り値 説明

DM_EM_COMPONENT_SET

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

(info_type             VARCHAR2(30),
 component_id          NUMBER,
 cluster_id            NUMBER,
 attribute_name        VARCHAR2(4000),
 covariate_name        VARCHAR2(4000),
 attribute_value       VARCHAR2(4000),
 value                 NUMBER )

使用上のノート

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

    GET_MODEL_DETAILS_EM_COMPによって戻された各行の列は次のとおりです。

    DM_EM_COMPONENTの列 説明

    info_type

    行の情報タイプ。次の情報タイプがサポートされています。

    • cluster

    • prior

    • mean

    • covariance

    • frequency

    component_id

    コンポーネントの一意の識別子

    cluster_id

    各コンポーネントの上位レベルのリーフ・クラスタの一意の識別子

    attribute_name

    元の属性の名前または導出された機能識別子。導出された機能識別子は、ネストした列を持つデータで作成されたモデルで使用されます。導出された機能の定義は、GET_MODEL_DETAILS_EM_PROJファンクションで取得できます。

    covariate_name

    分散定義または共分散定義で使用される、元の属性の名前または導出された機能識別子。

    attribute_value

    ビニングされた量的属性の質的値またはビン間隔。

    value

    次のように、info_typeの値に従って異なる情報がエンコーディングされます。

    • cluster — 値フィールドはNULLです

    • prior — 値フィールドは直前のコンポーネントを戻します

    • mean — 値フィールドは、attribute_nameで指定されている属性の平均を戻します

    • covariance — 値フィールドは、attribute_nameおよびcovariate_nameで指定されている属性の共分散を戻します。attribute_nameおよびcovariate_nameの同じ属性を使用して、分散を戻せます。

    • frequency— 値フィールドは、attribute_nameおよびattribute_valueで指定されている属性と値の組合せに対応する複数値のベルヌーイ頻度パラメータを戻します。

    詳細は、「使用上のノート」の2を参照してください。

  2. 次の表に、それぞれのinfo_typeでどのフィールドを使用するかを示します。空白のセルはNULLを表します。

    info_type component_id cluster_id attribute_name covariate_name attribute_value value

    cluster

    X

    X

    prior

    X

    X

    X

    mean

    X

    X

    X

    X

    covariance

    X

    X

    X

    X

    X

    frequency

    X

    X

    X

    X

    X

  3. GET_MODEL_DETAILSファンクションは、作成プロセス中に適用された変換を自動的に元に戻すことによって、モデル透過性を保持します。このため、モデルのディテールに戻される属性は、モデル作成に使用された元の属性(または元の属性の近似値)となります。

  4. パーティション化されたモデルで値がNULLの場合、例外がスローされます。値がNULLでない場合、目的のパーティション名が含まれる必要があります。

48.7.26 GET_MODEL_DETAILS_EM_PROJファンクション

GET_MODEL_DETAILS_EM_PROJファンクションは、期待値の最大化モデルによって生成された予測に関する統計を表す行の集合を戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください。

構文

DBMS_DATA_MINING.get_model_details_em_proj(
      model_name IN VARCHAR2,
      partition_name IN VARCHAR2 DEFAULT NULL)
  RETURN DM_EM_PROJECTION_SET PIPELINED;

パラメータ

表48-81 GET_MODEL_DETAILS_EM_PROJファンクションのパラメータ

パラメータ 説明

model_name

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

partition_name

パーティション化されたモデルのパーティションを指定します。

戻り値

表48-82 GET_MODEL_DETAILS_EM_PROJファンクションの戻り値

戻り値 説明

DM_EM_PROJECTION_SET

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

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

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

使用上のノート

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

    GET_MODEL_DETAILS_EM_PROJによって戻された各行の列は次のとおりです。

    DM_EM_PROJECTIONの列 説明

    feature_name

    導出された機能の名前。この機能は、GET_MODEL_DETAILS_EMファンクションによって戻されたattribute_nameにマッピングされます。

    attribute_name

    作成データ内の列の名前

    attribute_subname

    ネストした列のサブ名

    attribute_value

    質的値

    coefficient

    予測係数。データ表現はまばらなため、ゼロ以外の係数のみが戻されます。

  2. GET_MODEL_DETAILSファンクションは、作成プロセス中に適用された変換を自動的に元に戻すことによって、モデル透過性を保持します。このため、モデルのディテールに戻される属性は、モデル作成に使用された元の属性(または元の属性の近似値)となります。

    係数は元の属性ではなく、変換された属性に関連します。係数は、モデルのディテールに直接戻された場合、意味のある情報を表しません。

  3. パーティション化されたモデルで値がNULLの場合、例外がスローされます。値がNULLでない場合、目的のパーティション名が含まれる必要があります。

48.7.27 GET_MODEL_DETAILS_GLMファンクション

GET_MODEL_DETAILS_GLMファンクションは、一般化線形モデルの係数統計を戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください。

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

構文

DBMS_DATA_MINING.get_model_details_glm(
      model_name IN VARCHAR2,
      partition_name IN VARCHAR2 DEFAULT NULL)
  RETURN DM_GLM_Coeff_Set PIPELINED;

パラメータ

表48-83 GET_MODEL_DETAILS_GLMファンクションのパラメータ

パラメータ 説明

model_name

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

partition_name

パーティション化されたモデルのパーティションを指定します。

戻り値

表48-84 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),
 feature_expression      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です。統計については、表48-85で説明します。

表48-85 DM_GLM_COEFFデータ・タイプの説明

説明

class

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

その他のクラス(参照クラス)は、モデル設定GLMS_REFERENCE_CLASS_NAMEに指定されます。表48-17を参照してください。

線形回帰の場合、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です。

feature_expression

特徴生成が有効で上位の特徴が検出された場合に、アルゴリズムによって作成される特徴名。特徴選択が有効でない場合、この特徴名は、単に完全修飾された属性名になります(属性がネストした列内にあるときはattribute_name.attribute_subnameになる)。

質的属性では、次のような形式の特徴名が作成されます。

fully-qualified_attribute_name.attribute_value

量的属性では、結果の値の積を計算することで、上位の特徴の名前がアルゴリズムによって作成されます。

(attrib1)*(attrib2))*......

ここで、attrib1attrib2は、完全修飾された属性名です。

coefficient

線形係数推定値。

std_error

係数推定値の標準誤差。

test_statistic

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

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

p-value

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

VIF

分散拡大要因。切片の場合、この値はゼロです。ロジスティック回帰の場合、VIFはNULLです。ソルバーがコレスキの場合、VIFは計算されません。

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は線形回帰には適用されません。

  • 理論上、計算できない場合。リッジ回帰については、表48-17を参照してください。

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

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

  • パーティション化されたモデルで値がNULLの場合、例外がスローされます。値がNULLでない場合、目的のパーティション名が含まれる必要があります。

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

SET line 120
SET pages 99
column attribute_name format a30
column attribute_subname format a20
column attribute_value format a20
col coefficient format 990.9999
col std_error format 990.9999
SQL> SELECT * FROM
(SELECT attribute_name, attribute_value, coefficient, std_error
  FROM DM$VDGLMR_SH_REGR_SAMPLE order by 1,2)
WHERE rownum < 11;

ATTRIBUTE_NAME 				ATTRIBUTE_VALUE 	COEFFICIENT 	STD_ERROR
------------------------------ -------------------- ----------- ---------
AFFINITY_CARD 										-0.5797 		0.5283
BOOKKEEPING_APPLICATION 							-0.4689 		3.8872
BULK_PACK_DISKETTES 								-0.9819 		2.5430
COUNTRY_NAME 					Argentina 			-1.2020 		1.1876
COUNTRY_NAME 					Australia 			-0.0071 		5.1146
COUNTRY_NAME 					Brazil				 5.2931 		1.9233
COUNTRY_NAME 					Canada 				 4.0191 		2.4108
COUNTRY_NAME 					China 				 0.8706 		3.5889
COUNTRY_NAME 					Denmark 			-2.9822  		3.1803
COUNTRY_NAME 					France 				-1.1044 		7.1811

48.7.28 GET_MODEL_DETAILS_GLOBALファンクション

GET_MODEL_DETAILS_GLOBALファンクションは、モデル全体に関する統計を戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください。

グローバルな詳細は、一般化線形モデル、相関ルール、特異値分解および期待値の最大化で使用できます。すべてのアルゴリズムのグローバル情報を表示する新しいグローバル・モデル・ビューがあります。かわりにビューを利用することをお薦めします。グローバル・モデル・ディテール・ビューに関する項を参照してください。

構文

DBMS_DATA_MINING.get_model_details_global(
      model_name IN VARCHAR2,
      partition_name IN VARCHAR2 DEFAULT NULL)
  RETURN DM_model_global_details PIPELINED;

パラメータ

表48-86 GET_MODEL_DETAILS_GLOBALファンクションのパラメータ

パラメータ 説明

model_name

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

partition_name

パーティション化されたモデルのパーティションを指定します。

戻り値

表48-87 GET_MODEL_DETAILS_GLOBALファンクションの戻り値

戻り値 説明

DM_MODEL_GLOBAL_DETAILS

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

(global_detail_name   VARCHAR2(30),
 global_detail_value   NUMBER)

次の例では、サンプル・プログラム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

48.7.29 GET_MODEL_DETAILS_KMファンクション

GET_MODEL_DETAILS_KMファンクションは、k-Meansクラスタリング・モデルのディテールを表す行の集合を戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください。

モデルに関する特定の情報を要求するように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,
      topn_attributes NUMBER DEFAULT NULL,
      partition_name VARCHAR2 DEFAULT NULL)
  RETURN dm_clusters PIPELINED;

パラメータ

表48-88 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: ルールに関する情報は戻されません。

attribute_subname

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

attribute_name.attribute_subname

ここで、attribute_nameは列の名前、attribute_subnameはその列にネストした属性の名前になります。

属性がネストしていない場合、attribute_subnameはNULLです。

topn_attributes

セントロイド、ヒストグラムおよびルール・オブジェクトで戻される属性数を制限します。ルール内で最も高い信頼度の値を持つn個の属性のみが戻されます。

ルールに含まれる属性の数がtopnより少ない場合、追加の属性が最大n個までアルファベット順に戻されます。

attributetopn_attributesの両方のパラメータを指定した場合、topn_attributesは無視されます。

partition_name

パーティション化されたモデルのパーティションを指定します。

使用上のノート

  1. このテーブル・ファンクションは、DM_CLUSTERSタイプの行をパイプライン出力します。データ・マイニングのデータ・タイプとテーブル・ファンクションからのクラスタリング・アルゴリズムの戻り値のパイプライン出力については、「データ・タイプ」を参照してください。

  2. パーティション化されたモデルで値がNULLの場合、例外がスローされます。値がNULLでない場合、目的のパーティション名が含まれる必要があります。

次の例では、サンプル・プルグラム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

48.7.30 GET_MODEL_DETAILS_NBファンクション

GET_MODEL_DETAILS_NBファンクションは、Naive Bayesモデルのディテールを表す行の集合を戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください。

構文

DBMS_DATA_MINING.get_model_details_nb(
      model_name IN VARCHAR2,
      partition_name IN VARCHAR2 DEFAULT NULL)
  RETURN DM_NB_Details PIPELINED;

パラメータ

表48-89 GET_MODEL_DETAILS_NBファンクションのパラメータ

パラメータ 説明

model_name

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

partition_name

パーティション化されたモデルのパーティションを指定します。

戻り値

表48-90 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タイプの行をパイプライン出力します。データ・マイニングのデータ・タイプとテーブル・ファンクションからのパイプライン出力については、「データ・タイプ」を参照してください。

  • パーティション化されたモデルで値がNULLの場合、例外がスローされます。値がNULLでない場合、目的のパーティション名が含まれる必要があります。

次の問合せは、サンプル・プログラム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,
          NVL(TO_CHAR(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

48.7.31 GET_MODEL_DETAILS_NMFファンクション

GET_MODEL_DETAILS_NMFファンクションは、Non-Negative Matrix Factorizationモデルのディテールを表す行の集合を戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください。

構文

DBMS_DATA_MINING.get_model_details_nmf(
      model_name IN VARCHAR2,
      partition_name VARCHAR2 DEFAULT NULL)
   RETURN DM_NMF_Feature_Set PIPELINED;

パラメータ

表48-91 GET_MODEL_DETAILS_NMFファンクションのパラメータ

パラメータ 説明

model_name

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

partition_name

パーティション化されたモデルのパーティションを指定します。

戻り値

表48-92 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タイプの行をパイプライン出力します。データ・マイニングのデータ・タイプとテーブル・ファンクションからのパイプライン出力については、「データ・タイプ」を参照してください。

  • パーティション化されたモデルで値がNULLの場合、例外がスローされます。値がNULLでない場合、目的のパーティション名が含まれる必要があります。

次の例では、サンプル・プルグラム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

48.7.32 GET_MODEL_DETAILS_OCファンクション

GET_MODEL_DETAILS_OCファンクションは、O-Clusterクラスタリング・モデルのディテールを表す行の集合を戻します。戻り値の行集合は、モデルの作成時に生成されたクラスタリング・パターンを列挙しています。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください。

モデルに関する特定の情報を要求するように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,
      topn_attributes NUMBER DEFAULT NULL,
      partition_name VARCHAR2 DEFAULT NULL)
  RETURN dm_clusters PIPELINED;

パラメータ

表48-93 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: ルールに関する情報は戻されません。

topn_attributes

セントロイド、ヒストグラムおよびルール・オブジェクトで戻される属性数を制限します。ルール内で最も高い信頼度の値を持つn個の属性のみが戻されます。

ルールに含まれる属性の数がtopnより少ない場合、追加の属性が最大n個までアルファベット順に戻されます。

attributetopn_attributesの両方のパラメータを指定した場合、topn_attributesは無視されます。

partition_name

パーティション化されたモデルのパーティションを指定します。

使用上のノート

  1. データ・マイニングのデータ・タイプとテーブル・ファンクションからのクラスタリング・アルゴリズムの戻り値のパイプライン出力については、「データ・タイプ」を参照してください。

  2. パーティション化されたモデルで値がNULLの場合、例外がスローされます。値がNULLでない場合、目的のパーティション名が含まれる必要があります。

次の例では、サンプル・プルグラム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

48.7.33 GET_MODEL_SETTINGSファンクション

GET_MODEL_SETTINGSファンクションは、指定のモデルの作成に使用された設定を戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Databaseリファレンス静的データ・ディクショナリ・ビュー: ALL_ALL_TABLESからALL_OUTLINESを参照してください。

構文

FUNCTION get_model_settings(model_name IN VARCHAR2)
  RETURN DM_Model_Settings PIPELINED;

パラメータ

表48-94 GET_MODEL_SETTINGSファンクションのパラメータ

パラメータ 説明

model_name

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

戻り値

表48-95 GET_MODEL_SETTINGSファンクションの戻り値

戻り値 説明

DM_MODEL_SETTINGS

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

DM_MODEL_SETTINGS TABLE OF SYS.DM_MODEL_SETTING
         Name                   Type
     ---------------------- --------------------
       SETTING_NAME           VARCHAR2(30)
       SETTING_VALUE          VARCHAR2(4000)

使用上のノート

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

  2. 設定名と設定値には、ユーザーが指定したものと作成プロセスで割り当てられたデフォルトの両方が含まれます。

次の例では、Naive Bayesモデル例のモデル設定を戻します。

SETTING_NAME                   SETTING_VALUE
------------------------------ ------------------------------
ALGO_NAME                       ALGO_NAIVE_BAYES
PREP_AUTO                       ON
ODMS_MAX_PARTITIONS             1000
NABS_SINGLETON_THRESHOLD       0
CLAS_WEIGHTS_BALANCED          OFF
NABS_PAIRWISE_THRESHOLD        0
ODMS_PARTITION_COLUMNS         GENDER,Y_BOX_GAMES
ODMS_MISSING_VALUE_TREATMENT   ODMS_MISSING_VALUE_AUTO
ODMS_SAMPLING                  ODMS_SAMPLING_DISABLE

9 rows selected.

48.7.34 GET_MODEL_SIGNATUREファンクション

GET_MODEL_SIGNATUREファンクションは、モデルのトレーニングのために作成プロセスで使用された作成用の入力表の列のリストを戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Databaseリファレンス静的データ・ディクショナリ・ビュー: ALL_ALL_TABLESからALL_OUTLINESを参照してください。

構文

FUNCTION get_model_signature (model_name IN VARCHAR2)
RETURN DM_Model_Signature PIPELINED;

パラメータ

表48-96 GET_MODEL_SIGNATUREファンクションのパラメータ

パラメータ 説明

model_name

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

戻り値

表48-97 GET_MODEL_SIGNATUREファンクションの戻り値

戻り値 説明

DM_MODEL_SIGNATURE

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

 DM_MODEL_SIGNATURE TABLE OF SYS.DM_MODEL_SIGNATURE_ATTRIBUTE
      Name                    Type
      ------------------     -------------------
      ATTRIBUTE_NAME          VARCHAR2(130)
      ATTRIBUTE_TYPE          VARCHAR2(106)

使用上のノート

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

  2. 署名の名前またはタイプには、作成プロセスで使用されたその属性のみが含まれます。

次の例では、Naive Bayesモデル例のモデル設定を戻します。

ATTRIBUTE_NAME                 ATTRIBUTE_TYPE
------------------------------ ------------------
AGE                            NUMBER
ANNUAL_INCOME                  NUMBER
AVERAGE___ITEMS_PURCHASED      NUMBER
BOOKKEEPING_APPLICATION        NUMBER
BULK_PACK_DISKETTES            NUMBER
BULK_PURCH_AVE_AMT             NUMBER
DISABLE_COOKIES                NUMBER
EDUCATION                      VARCHAR2
FLAT_PANEL_MONITOR             NUMBER
GENDER                         VARCHAR2
HOME_THEATER_PACKAGE           NUMBER
HOUSEHOLD_SIZE                 VARCHAR2
MAILING_LIST                   NUMBER
MARITAL_STATUS                 VARCHAR2
NO_DIFFERENT_KIND_ITEMS        NUMBER
OCCUPATION                     VARCHAR2
OS_DOC_SET_KANJI               NUMBER
PETS                           NUMBER
PRINTER_SUPPLIES               NUMBER
PROMO_RESPOND                  NUMBER
SHIPPING_ADDRESS_COUNTRY       VARCHAR2
SR_CITIZEN                     NUMBER
TOP_REASON_FOR_SHOPPING        VARCHAR2
WKS_SINCE_LAST_PURCH           NUMBER
WORKCLASS                      VARCHAR2
YRS_RESIDENCE                  NUMBER
Y_BOX_GAMES                    NUMBER

27 rows selected.

48.7.35 GET_MODEL_DETAILS_SVDファンクション

GET_MODEL_DETAILS_SVDファンクションは、特異値分解モデルのディテールを表す行の集合を戻します。モデル・ディテール・ビュー設定を使用することをお薦めします。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください。

構文

DBMS_DATA_MINING.get_model_details_svd(
      model_name IN VARCHAR2,
      matrix_type IN VARCHAR2 DEFAULT NULL,
      partition_name VARCHAR2 DEFAULT NULL)
   RETURN DM_SVD_MATRIX_Set PIPELINED;

パラメータ

表48-98 GET_MODEL_DETAILS_SVDファンクションのパラメータ

パラメータ 説明

model_name

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

matrix_type

3つのSVDマトリックス・タイプのどれを戻すかを指定します。値は、USVおよびNULLです。matrix_typeがNULL(デフォルト)の場合、すべてのマトリックスが戻されます。

Uマトリックスは、SVDS_U_MATRIX_OUTPUT設定が有効な場合にのみ計算されます。デフォルトでは計算されません。モデルにUマトリックスがないときにmatrix_typeUに設定すると、空白行の集合が戻されます。表48-25を参照してください。

partition_name

パーティション化されたモデルのパーティション。

戻り値

表48-99 GET_MODEL_DETAILS_SVDファンクションの戻り値

戻り値 説明

DM_SVD_MATRIX_SET

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

(matrix_type         CHAR(1),
 feature_id          NUMBER,
 mapped_feature_id   VARCHAR2(4000),
 attribute_name      VARCHAR2(4000),
 attribute_subname   VARCHAR2(4000),
 case_id             VARCHAR2(4000),
 value               NUMBER,
 variance            NUMBER,
 pct_cum_variance    NUMBER)

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

使用上のノート

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

    GET_MODEL_DETAILS_SVDによって戻された各行の列は次のとおりです。

    DM_SVD_MATRIX_SETの列 説明

    matrix_type

    マトリックスのタイプ。指定可能な値は、SVおよびUです。このフィールドはNULLにはなりません。

    feature_id

    マトリックスが参照する機能。

    mapped_feature_id

    機能の説明的な名前。

    attribute_name

    Vマトリックスのコンポーネント・ベースにおける列名。このフィールドは、SマトリックスとUマトリックスではNULLになります。

    attribute_subname

    Vマトリックスのコンポーネント・ベースにおけるサブ名。ネストした列にのみ適用されます。このフィールドは、SマトリックスとUマトリックスではNULLになります。

    case_id

    Uマトリックス予測によって記述される作成データ内にある、一意の行識別子。このフィールドは、SマトリックスとVマトリックスではNULLになります。

    value

    マトリックスの入力値。

    variance

    コンポーネントに記述された分散値。Sマトリックスの入力値でのみNULLではありません。この列は、Sマトリックスの入力値と、設定dbms_data_mining.svds_scoring_modedbms_data_mining.svds_scoring_pcaに設定されたSVDモデルでのみNULLではなく、手動で、または設定dbms_data_mining.prep_autodbms_data_mining.prep_auto_onに設定されるため、作成データがセンタリングされます。

    pct_cum_variance

    コンポーネントに記述された分散の累積率。コンポーネントは、記述した分散値に従って降順でランク付けされます。

    この列は、Sマトリックスの入力値と、設定dbms_data_mining.svds_scoring_modedbms_data_mining.svds_scoring_pcaに設定されたSVDモデルでのみNULLではなく、手動で、または設定dbms_data_mining.prep_autodbms_data_mining.prep_auto_onに設定されるため、作成データがセンタリングされます。

  2. GET_MODEL_DETAILSでは、離散した値が出力されます。ゼロの値は戻されません。Sマトリックスの対角要素、Vマトリックス・ベースのゼロ以外の係数、およびゼロ以外のUマトリックス予測のみが戻されます。

    例外は、データ行によってゼロ以外のUマトリックス予測が生成されなかった場合です。この場合、その行のケースIDが戻されますが、feature_idvalueNULLになります。これは、元のデータのレコードが失われないようにするためです。

  3. GET_MODEL_DETAILSファンクションは、作成プロセス中に適用された変換を自動的に元に戻すことによって、モデル透過性を保持します。このため、モデルのディテールに戻される属性は、モデル作成に使用された元の属性(または元の属性の近似値)となります。

  4. パーティション化されたモデルで値がNULLの場合、例外がスローされます。値がNULLでない場合、適切なパーティション名が含まれる必要があります。

48.7.36 GET_MODEL_DETAILS_SVMファンクション

GET_MODEL_DETAILS_SVMファンクションは、線形サポート・ベクター・マシン(SVM)モデルのディテールを表す行の集合を戻します。非線形SVMに対して起動された場合は、ORA-40215を戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Data Miningユーザーズ・ガイドモデル・ディテール・ビューを参照してください。

線形SVMモデルでは、ゼロ以外の係数のみが格納されます。これにより記憶域が削減され、モデルをロードする速度が上がります。その結果、GET_MODEL_DETAILS_SVMで戻される係数のリストに属性がない場合、この属性の係数はゼロとして解釈されます。

構文

DBMS_DATA_MINING.get_model_details_svm(
      model_name   VARCHAR2,
      reverse_coef NUMBER DEFAULT 0,
      partition_name VARCHAR2 DEFAULT NULL)
  RETURN DM_SVM_Linear_Coeff_Set PIPELINED;

パラメータ

表48-100 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を参照してください。

partition_name

パーティション化されたモデルのパーティションを指定します。

戻り値

表48-101 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に設定します。

  5. パーティション化されたモデルで値がNULLの場合、例外がスローされます。値がNULLでない場合、目的のパーティション名が含まれる必要があります。

次の例では、サンプル・プログラム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

48.7.37 GET_MODEL_DETAILS_XMLファンクション

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

構文

DBMS_DATA_MINING.get_model_details_xml(
      model_name IN VARCHAR2,
      partition_name IN VARCHAR2 DEFAULT NULL)
  RETURN XMLType;

パラメータ

表48-102 GET_MODEL_DETAILS_XMLファンクションのパラメータ

パラメータ 説明

model_name

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

partition_name

パーティション化されたモデルのパーティションを指定します。

戻り値

表48-103 GET_MODEL_DETAILS_XMLファンクションの戻り値

戻り値 説明

XMLTYPE

デシジョン・ツリー・モデルのXML定義。詳細は、「XMLTYPE」を参照してください。

XML定義は、Data Mining Group Predictive Model Markup Language (PMML)バージョン2.1の仕様に準拠しています。この仕様については、https://dmg.orgを参照してください。

field="<column_name>"としてドキュメントに表示されるネストしていない属性とは対照的に、ネストした属性が分岐として使用される場合、属性がfield="'<column_name>'.<subname>"としてXMLドキュメントに表示されます。

ノート:

列名は一重引用符で囲まれて、ピリオドでcolumn_nameとsubnameが区切られます。

その他のドキュメント・スタイルは変更されません。

使用上のノート

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> 

48.7.38 GET_MODEL_TRANSFORMATIONSファンクション

このファンクションは、指定したモデルに埋め込まれた変換式を戻します。Oracle Database 12cリリース2以降、このファンクションは非推奨になりました。Oracle Databaseリファレンス静的データ・ディクショナリ・ビュー: ALL_ALL_TABLESからALL_OUTLINESを参照してください。

すべてのGET_*インタフェースはモデル・ビューに置き換えられるため、モデル・ビューを参照して関連する情報を取得することをお薦めします。GET_MODEL_TRANSFORMATIONSファンクションは次のものに置き換えられます。
  • USER(/DBA/ALL)_MINING_MODEL_XFORMS: ユーザーが埋め込んだ変換を提供します。

  • DM$VXの接頭辞付きモデル・ビュー: テキストの特徴抽出情報を提供します。

  • D$VNの接頭辞付きモデル・ビュー: 正規化および欠損値の情報を提供します。

  • DM$VB: ビニングの情報を提供します。

構文

DBMS_DATA_MINING.get_model_transformations(
      model_name IN VARCHAR2,
      partition_name IN VARCHAR2 DEFAULT NULL)
  RETURN DM_Transforms PIPELINED;

パラメータ

表48-104 GET_MODEL_TRANSFORMATIONSファンクションのパラメータ

パラメータ 説明

model_name

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

partition_name

パーティション化されたモデルのパーティションを指定します。

戻り値

表48-105 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)が有効になっている場合、自動変換とユーザー定義の変換の両方を属性に関連付けることができます。この場合、ユーザー定義の変換は自動変換の前に評価されます。

パーティション化されたモデルに対して起動される場合は、partition_nameパラメータが指定される必要があります。

この例では、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

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

パラメータ

表48-106 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コレクション・タイプの詳細は、表49-1を参照してください。

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

48.7.40 IMPORT_MODELプロシージャ

このプロシージャは、1つ以上のデータ・マイニング・モデルをインポートします。このプロシージャはオーバーロードされています。このプロシージャをコールして、ダンプ・ファイル・セットからマイニング・モデルをインポートするか、PMML文書から単一のマイニング・モデルをインポートすることができます。

ダンプ・ファイル・セットからのインポート

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

Oracle Data Pumpを直接使用してスキーマ全体またはデータベース全体をエクスポートまたはインポートする場合、そのスキーマまたはデータベースのマイニング・モデルが含められます。EXPORT_MODELおよびIMPORT_MODELでは、マイニング・モデルのみがエクスポートおよびインポートされます。

PMMLからのインポート

Predictive Model Markup Language(PMML)で表現されたマイニング・モデルをインポートできます。モデルのタイプは、RegressionModel(線形回帰またはバイナリ・ロジスティック回帰)である必要があります。

PMMLは、Data Mining Group (https://dmg.org)によって策定されたXMLベースの規格です。PMMLに準拠しているアプリケーションは、任意のベンダーによって作成されたPMML準拠のモデルを配置できます。Oracle Data Miningでは、回帰モデルに対応するPMML 3.1のコア機能をサポートしています。

参照:

マイニング・モデルのエクスポートおよびインポートの詳細は、Oracle Data Miningユーザーズ・ガイドを参照してください。

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

PMMLの詳細は、https://dmg.org/dmg-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,
      tablespace_remap  IN  VARCHAR2 DEFAULT NULL);

PMML文書からのマイニング・モデルのインポート:

DBMS_DATA_MINING.IMPORT_MODEL (
      model_name        IN  VARCHAR2,
      pmmldoc           IN  XMLTYPE
      strict_check      IN  BOOLEAN DEFAULT FALSE);

パラメータ

表48-107 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です。データベース・リンクはローカル・データベースのスキーマ・オブジェクトであり、これを使用すると、リモート・データベース上のオブジェクトにアクセスできます。remote_linkの値を指定することで、リモート・データベースからローカル・データベースへモデルをインポートできます。インポートはファイルなしで実行されます。つまり、ダンプ・ファイルの処理はありません。リモート・モデルのインポートには、IMP_FULL_DATABASEロールが必要です。また、EXP_FULL_DATABASE権限、CREATE DATABASE LINK権限およびその他の権限が必要になることもあります。

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ロールが必要な場合があります。

tablespace_remap

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

ダンプ・ファイル・セットが別の表領域に属している場合は、export_tablespace:import_tablespaceの形式で表領域マッピングを指定する必要があります。たとえば、表領域TBLSPC01から表領域TBLSPC02にエクスポートされたモデルをインポートする場合は、'TBLSPC01:TBLSPC02'と指定します。

ノート: 別の表領域からモデルをインポートする際に、IMP_FULL_DATABASE権限またはSYSロールが必要な場合があります。

model_name

PMMLからのインポートの結果としてデータベースに作成される新規モデルの名前。この名前は、ユーザーのスキーマ内で一意である必要があります。

pmmldoc

インポート対象のモデルを表現したPMML文書。PMML文書には、XMLTYPEオブジェクト・タイプが含まれます。詳細は、「XMLTYPE」を参照してください。

strict_check

PMML文書にコアPMMLの一部ではないセクション(たとえば、出力またはターゲット)が含まれる場合、エラーが発生するかどうか。Oracle Data Miningでは、コアPMMLのみがサポートされています。コア以外の機能は、スコアリング表現に影響を与える可能性があります。

PMMLがコアPMMLに厳密に準拠していないのにstrict_checkTRUEに設定される場合、IMPORT_MODELはエラーを戻します。strict_checkがFALSE(デフォルト)の場合、エラーは抑制されます。モデルをインポートしてスコアリングすることができます。

  1. この例では、dmuser2スキーマ内でモデルのエクスポートとインポートを行っています。次に、同じモデルをdmuser3スキーマにインポートしています。dmuser3ユーザーには、IMP_FULL_DATABASE権限があります。dmuser2ユーザーにはUSER2表領域が割り当てられ、dmuser3にはUSER3表領域が割り当てられます。

    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 (
                filename =>'NMF_SH_SAMPLE_out', 
                directory =>'DATA_PUMP_DIR', 
                model_filter => 'name = ''NMF_SH_SAMPLE''');
    
    -- import the model back into the same schema
    SQL>EXECUTE DBMS_DATA_MINING.IMPORT_MODEL (
                filename => 'NMF_SH_SAMPLE_out01.dmp',
                directory => 'DATA_PUMP_DIR', 
                model_filter => '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 (
                filename => 'NMF_SH_SAMPLE_out01.dmp', 
                directory => 'DATA_PUMP_DIR', 
                model_filter => 'name = ''NMF_SH_SAMPLE''',
                operation =>'IMPORT',  
                remote_link => NULL,
                jobname => 'nmf_imp_job',
                schema_remap => 'dmuser2:dmuser3',
                tablespace_remap => 'USER2:USER3');
    

    この例では、ユーザーSCOTTが作成したダンプ・ファイルmodel_exp_001.dmpから、ユーザーMARYがすべてのモデルをインポートします。ユーザーMARYにはUSER2表領域が割り当てられており、ユーザーSCOTTには、モデルがダンプ・ファイルmodel_exp_001.dmpにエクスポートされたときに、USERS表領域が割り当てられました。ダンプ・ファイルはディレクトリ・オブジェクト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', 
                tablespace_remap=>'USERS:USER2');
      DBMS_OUTPUT.PUT_LINE(
               'DBMS_DATA_MINING.IMPORT_MODEL of all models from SCOTT done!');
    END;
    /
    
  2. この例は、ユーザーxuserがリモート・データベースからモデルdmuser.r1modをインポートする方法を示しています。リモート・データベースのSQL*Net接続別名はR1DBです。ユーザーxuserにはSYSAUX表領域が割り当てられ、ユーザーdmuserにはTBS_1表領域が割り当てられます。

    CONNECT / AS SYSDBA;
    GRANT CREATE DATABASE LINK TO xuser; 
    GRANT imp_full_database TO xuser;
    CONNECT xuser/xuserpassword 
    CREATE DATABASE LINK dmuser_link 
             CONNECT TO dmuser IDENTIFIED BY dmuserpassword USING 'R1DB';
    EXEC dbms_data_mining.import_model (
        NULL, 
       'DMUSER_DIR', 
       'R1MOD',
        remote_link => 'DMUSER_LINK', schema_remap => 'DMUSER:XUSER', 
                        tablespace_remap => 'TBS_1:SYSAUX' );
    SELECT name FROM dm_user_models;
     
    NAME
    -----------------------------------------------------------------------------
    R1MOD
    
  3. この例では、ディレクトリ・オブジェクトPMMLDIRによって参照される場所から、現行ユーザーのスキーマにSamplePMML1.xmlというPMML文書をインポートする方法を示します。インポートされるモデルの名前は、PMMLMODEL1になります。

    BEGIN    
        dbms_data_mining.import_model ('PMMLMODEL1',
            XMLType (bfilename ('PMMLDIR', 'SamplePMML1.xml'),
              nls_charset_id ('AL32UTF8')
            ));
    END;

48.7.41 IMPORT_SERMODELプロシージャ

このプロシージャは、モデルの直列化された形式をインポートしてデータベースに戻します。

インポート・ルーチンは、BLOB内の直列化されたコンテンツおよびコンテンツを使用して作成されるモデルの名前を取得します。このインポートでは、モデルのディテールを問い合せるために必要なモデル・ビューまたは表は作成されません。インポート・プロシージャではモデルをスコアリングする機能のみが提供されます。

構文

DBMS_DATA_MINING.IMPORT_SERMODEL (
      model_data     IN BLOB,
      model_name     IN VARCHAR2,);

パラメータ

表48-108 IMPORT_SERMODELプロシージャのパラメータ

パラメータ 説明

model_data

モデル・データをBLOBフォーマットで提供します。

model_name

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

次の文は、モデルの直列化された形式をインポートします。

declare
 v_blob blob;
BEGIN
 dbms_lob.createtemporary(v_blob, FALSE);
-- fill in v_blob from somewhere (e.g., bfile, etc.)
 dbms_data_mining.import_sermodel(v_blob, 'MY_MODEL');
 dbms_lob.freetemporary(v_blob);
END;
/

参照:

マイニング・モデルのエクスポートおよびインポートの詳細は、Oracle Data Miningユーザーズ・ガイドを参照してください。

48.7.42 R拡張可能アルゴリズムのJSONスキーマ

新規のJSONオブジェクトを柔軟に作成するときにJSONスキーマに従います。

使用上のノート

新しいJSONオブジェクトを作成する際の柔軟性は次のとおりです。

  • 部分登録が許可されます。たとえば、ディテール・ファンクションは欠落することがあります。

  • 異なる順序が許可されます。たとえば、ディテール・ファンクションを作成ファンクションの前または後に記述できます。

例48-1 JSONスキーマ

R拡張可能アルゴリズムのJSONスキーマ1.1:

{
    "type": "object",
    "properties": {
        "algo_name_display": { "type" : "object",
                                               "properties" : {
                                               "language" : { "type" : "string",
                                                                       "enum" : ["English", "Spanish", "French"],
                                                                       "default" : "English"},
                                               "name" : { "type" : "string"}}
                                             },

        "function_language": {"type": "string" },
        "mining_function": {
                 "type" : "array",
                 "items" : [
                     { "type" : "object",
                        "properties" : {
                           "mining_function_name"  : { "type" : "string"},
                           "build_function": {  
                                   "type": "object",
                                   "properties": {
                                        "function_body": { "type": "CLOB" }
                                                        }
                                    },

        "detail_function": {  
                 "type" : "array",
                  "items" : [
                      {"type": "object",
                        "properties": {
                             "function_body": { "type": "CLOB" },
                             "view_columns": { "type" : "array",
                                                                   "items" : {
                                                                           "type" : "object",
                                                                           "properties" : {
                                                                               "name" : { "type" : "string"},
                                                                               "type" : { "type" : "string",
                                                                                               "enum" : ["VARCHAR2",
                                                                                                                "NUMBER",
                                                                                                                "DATE",
                                                                                                                "BOOLEAN"]
                                                                                             }
                                                                            }
                                                          }
                                            }
                                 }
                     ]
        },

       "score_function": {  
                 "type": "object",
                 "properties": {
                       "function_body": { "type": "CLOB" }
                        }
                 },
        "weight_function": {
                        "type": "object",
                        "properties": {
                            "function_body": { "type": "CLOB" },
                        }
                 }
                               }
           }]
        },  

       "algo_setting": {
                "type" : "array",
                "items" : [
                    { "type" : "object",
                       "properties" : {
                          "name"              : { "type" : "string"},
                          "name_display": { "type" : "object",
                                                         "properties" : {
                                                         "language" : { "type" : "string",
                                                                                 "enum" : ["English", "Spanish", "French"],
                                                                                 "default" : "English"},
                                                         "name" : { "type" : "string"}}
                                                      },
                          "type" : { "type" : "string",
                                          "enum" : ["string", "integer", "number", "boolean"]},

                          "optional": {"type" : "BOOLEAN",
                                               "default" : "FALSE"},
   
                          "value" : { "type" :  "string"},  

                          "min_value" : { "type": "object",
                                                      "properties": {
                                                            "min_value": {"type": "number"},
                                                             "inclusive": { "type": "boolean",
                                                                                   "default" : TRUE},
                                                       }
                                                  },
                           "max_value" : {"type": "object",
                                                     "properties": {
                                                          "max_value": {"type": "number"},
                                                          "inclusive": { "type": "boolean",
                                                                                 "default" : TRUE},
                                                            }
                                                    },

                          "categorical choices" : { "type": "array",
                                                                  "items": {
                                                                      "type": "string"
                                                                   }
                                                               },

                          "description_display": { "type" : "object",
                                                                  "properties" : {
                                                                  "language" : { "type" : "string",
                                                                                          "enum" : ["English", "Spanish", "French"],
                                                                                          "default" : "English"},
                                                                  "name" : { "type" : "string"}}
                                                               }
                        }
                    }
                 ]
          }    
    }
}

例48-2 JSONオブジェクトの例

次のコードは、登録プロシージャに渡す必要があるJSONオブジェクトの例です。

{  "algo_name_display"   :     {"English", "t1"},
                         "function_language"    :      "R",
                         "mining_function" : {
  "mining_function_name" : "CLASSIFICATION",
                         "build_function" : {"function_body": "function(dat, formula, family) {																							                                          set.seed(1234);
                                          mod <- glm(formula = formula, data=dat,
                                                      family= eval(parse(text=family))); mod}"},                                        
           "score_function" :  { "function_body": "function(mod, dat) {
                                             res <- predict(mod, newdata = dat, type=''response																										'');
                                             res2=data.frame(1-res, res); res2}"}}
                          },
                          "algo_setting" :   [{"name"                : "dbms_data_mining.odms_m																																																																	issing_value_treatment",
                            "name_display"   : {"English", "dbms_data_mining.odms_missing_value									_treatment"},
                            "type"                  : "string",
                            "optional"            :  "TRUE",
                            "value"                : "dbms_data_mining.odms_missing_value_mean_mode",
                            "categorical choices"   : [    "dbms_data_mining.odms_missing_value_mean_mode",
                                                                         "dbms_data_mining.odms_missing_value_auto",
                                                                         "dbms_data_mining.odms_missing_value_delete_row"],
                            "description"                : {"English",
                                                                     "how to treat missing values"}
                         },
                                                       {"name"                : "RALG_PARAMETER_FAMILY",
                            "name_display"   : {"English", "RALG_PARAMETER_FAMILY"},
                            "type"                  : "string",
                            "optional"            :  "TRUE",
                            "value"                :  "",
                            "description"       : {"English", "R family parameter in build function"}
                         }
],
                        }

48.7.43 REGISTER_ALGORITHMプロシージャ

ユーザーは、この関数にアルゴリズム名、マイニング関数および他のすべてのアルゴリズム・メタデータを指定して、新しいアルゴリズムを登録できます。

構文

 DBMS_DATA_MINING.REGISTER_ALGORITHM (
                     algorithm_name           IN VARCHAR2,
                     algorithm_metadata       IN CLOB,
                     algorithm_description    IN VARCHAR2 DEFAULT NULL);

パラメータ

表48-109 REGISTER_ALGORITHMプロシージャのパラメータ

パラメータ 説明

algorithm_name

アルゴリズムの名前。

algorithm_metadata

アルゴリズムのメタデータ。

algorithm_description

アルゴリズムの説明

使用上のノート

登録プロシージャは次のことを実行します。

  • algorithm_metadataが正しいJSON構文であるかどうかをチェックします。

  • 入力JSONオブジェクトが事前定義済のJSONスキーマに従っているかどうかをチェックします。

  • 現行のユーザーにRQADMIN権限があるかどうかをチェックします。

  • 同じアルゴリズムが2回登録されないように、重複したアルゴリズムをチェックします。

  • 欠落しているエントリがないかチェックします。たとえば、アルゴリズム名、アルゴリズム・タイプ、メタデータ、作成ファンクションなどです。

JSONオブジェクトの作成後のアルゴリズムの登録

SQLユーザーは、指定された手順に従って新しいアルゴリズムを登録できます。

JSONスキーマに従ってJSONオブジェクトを作成し、REGISTER_ALGORITHMプロシージャに渡します。

BEGIN
  DBMS_DATA_MINING.register_algorithm(
    algorithm_name                 =>   't1',
    algorithm_metadata            =>
    '{"function_language" : "R",
      "mining_function" :
        { "mining_function_name" : "CLASSIFICATION",
           "build_function" : {"function_body": "function(dat, formula, family) { set.seed(1234);
                                          mod <- glm(formula = formula, data=dat,  
                                                              family=eval(parse(text=family))); mod}"},                                        
           "score_function" :  {"function_body": "function(mod, dat) {
                                             res <- predict(mod, newdata = dat, type=''response'');
                                             res2=data.frame(1-res, res); res2}"}}
    }',
    algorithm_description  => 't1');
END;
/

48.7.44 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 NUMBER (38) 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);

パラメータ

表48-110 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および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;

48.7.45 REMOVE_COST_MATRIXプロシージャ

REMOVE_COST_MATRIXは、分類モデルからデフォルトのスコアリング・マトリックスを削除します。

構文

DBMS_DATA_MINING.REMOVE_COST_MATRIX (
      model_name   IN  VARCHAR2);

パラメータ

表48-111 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

48.7.46 RENAME_MODELプロシージャ

このプロシージャは、model_nameで指定したマイニング・モデルの名前をnew_model_nameとして指定した名前に変更します。

new_model_nameという名前のモデルがすでに存在する場合、プロシージャは、オプションでnew_model_nameversioned_model_nameに変更してから、model_namenew_model_nameに変更します。

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

構文

DBMS_DATA_MINING.RENAME_MODEL (
     model_name            IN VARCHAR2,
     new_model_name        IN VARCHAR2,
     versioned_model_name  IN VARCHAR2 DEFAULT NULL);

パラメータ

表48-112 RENAME_MODELプロシージャのパラメータ

パラメータ 説明

model_name

名前を変更するモデル

new_model_name

モデルmodel_nameの新規の名前

versioned_model_name

モデルnew_model_nameがすでに存在する場合の新規の名前

使用上のノート

モデルの適用中にそのモデルの名前を変更しようとした場合、名前は変更されますが、適用操作からは不確定な結果が戻されます。

  1. 次の例では、census_modelというモデルの名前がcensus_model_2012に変更されます。

    BEGIN
      DBMS_DATA_MINING.RENAME_MODEL(
        model_name      => 'census_model',
        new_model_name  => 'census_model_2012');
    END;
    /
    
  2. 次の例には、ユーザーのスキーマに作業モデルclas_modとテスト・モデルclas_mod_tstの2つの分類モデルがあります。RENAME_MODELプロシージャは、clas_modclas_mod_oldとして保持し、テスト・モデルを新しい作業モデルにします。

    SELECT model_name FROM user_mining_models;
    MODEL_NAME
    -------------------------------------------------------------------
    CLAS_MOD
    CLAS_MOD_TST
    
    BEGIN
      DBMS_DATA_MINING.RENAME_MODEL(
        model_name            => 'clas_mod_tst',
        new_model_name        => 'clas_mod',
        versioned_model_name  => 'clas_mod_old');
    END;
    /
    
    SELECT model_name FROM user_mining_models;
    MODEL_NAME
    -------------------------------------------------------------------
    CLAS_MOD
    CLAS_MOD_OLD