Oracle Data Miningは、データから実用的な情報を抽出する分析技術です。Oracle Data Miningを使用すると、今後イベントが発生する確率を評価したり、データ内の予期しない相関およびグループを検出できます。
DBMS_DATA_MINING
パッケージは、Oracle Data Miningへの主要なインタフェースとなります。 PL/SQL API上にJava APIがあります。Oracle Data Miningでは、データ・マイニング・モデルをデプロイするためのSQLファンクション・ファミリもサポートされています。
Oracle Data MinerはOracle Data Miningのグラフィカル・インタフェースで、OTN-J(Oracle Technology Network Japan)からダウンロードして入手できます。 http://www.oracle.com/technology/products/bi/odm/index.html
にアクセスしてください。
関連項目:
|
この章では、次の項目について説明します。
この項では、DBMS_DATA_MINING
パッケージの使用に関連する項目について説明します。
Oracle Data Miningでは、監視ありデータ・マイニングと監視なしデータ・マイニングの両方がサポートされています。監視ありデータ・マイニングでは、履歴データに基づいてターゲット値が予測されます。監視なしデータ・マイニングでは、自然なグループが検出され、ターゲットは使用されません。
関連項目: 監視ありデータ・マイニングと監視なしデータ・マイニングに関する基本的な情報およびデータ・マイニングの機能とアルゴリズムの詳細は、『Oracle Data Mining概要』を参照してください。 |
データ・マイニング機能は、データ・マイニングに関する特定の種類の問題を解決するための方法です。マイニング機能は、モデルの作成時に指定する必要があります。 詳細は、「マイニング機能」を参照してください。
用語に関する注意: データ・マイニングにおいては、機能とは、データ・マイニングへの特定のアプローチによって解決される一般的な種類の問題のことです。 SQL言語においては、ファンクションとは、値を戻す演算子のことを示します。Oracle Data Miningドキュメントでは、機能およびマイニング機能とはデータ・マイニング機能を示し、SQLファンクションまたはSQLデータ・マイニング・ファンクションとは、データ・マイニング・モデルをスコアリング(デプロイ)するSQLファンクションを示します。 SQLデータ・マイニング・ファンクションの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |
監視ありデータ・マイニングには、次の機能があります。
分類
回帰
属性評価
監視なしデータ・マイニングには、次の機能があります。
クラスタリング
相関
特徴抽出
異常検出(1クラス分類)
マイニング・モデルを作成して適用する手順は、使用するデータ・マイニング機能およびアルゴリズムによって異なります。 表38-1に、Oracle Data Miningでサポートされているアルゴリズムを示します。
表38-1 Oracle Data Miningのアルゴリズム
アルゴリズム | 略称 | 機能 |
---|---|---|
Adaptive Bayes Network(非推奨) |
ABN |
|
Apriori |
AP |
|
ディシジョン・ツリー |
DT |
分類 |
一般化線形モデル |
GLM |
|
k-Means(デフォルトのクラスタリング・アルゴリズム) |
KM |
|
最小記述長 |
MDL |
|
Naive Bayes(デフォルトの分類アルゴリズム) |
NB |
|
Non-Negative Matrix Factorization |
NMF |
|
直交パーティショニング・クラスタリング |
O-Cluster |
|
サポート・ベクター・マシン(デフォルトの回帰アルゴリズム) |
SVM |
マイニング・モデルは、Oracle Databaseのスキーマ・オブジェクトです。 マイニング・モデルでは、Oracle Databaseの標準セキュリティ機能がサポートされています。また、SQL COMMENT
およびSQL AUDIT
もサポートされています。
関連項目:
|
データ・ディクショナリ・ビューALL_MINING_MODELS
を問い合せると、アクセス可能なマイニング・モデルのリストを取得できます。
例38-1 ALL_MINING_MODELS
SQL> describe all_mining_models Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL VARCHAR2(30) MODEL_NAME NOT NULL VARCHAR2(30) MINING_FUNCTION VARCHAR2(30) ALGORITHM VARCHAR2(30) CREATION_DATE NOT NULL DATE BUILD_DURATION NUMBER MODEL_SIZE NUMBER COMMENTS VARCHAR2(4000)
関連項目: ALL_MINING_MODELS および関連ビューの詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。 |
モデルのネーミング規則には、大部分のデータベース・スキーマ・オブジェクトのネーミング規則よりも多くの制限があります。モデル名は、次の要件も満たす必要があります。
名前の長さは、25文字までにする必要があります。
名前は、引用符で囲まれていない識別子である必要があります。 引用符で囲まれていない識別子は、英数字、アンダースコア(_)、ドル記号($)および番号記号(#)のみで構成され、最初の文字はアルファベットである必要があります。引用符で囲まれていないリテラルに、ドル記号および番号記号は使用しないことを強くお薦めします。
スキーマ・オブジェクトのネーミング要件の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
データ・ディクショナリ・ビューALL_MINING_MODEL_ATTRIBUTES
を問い合せると、アクセス可能なマイニング・モデルごとにデータ属性のリストを取得できます。データ属性は、モデルの作成にアルゴリズムが使用するデータの列です。モデルを適用するデータに、これらの列の一部またはすべてが存在している必要があります。
データ属性は、モデルのシグネチャと呼ばれます。 監視ありモデルの場合、ALL_MINING_MODEL_ATTRIBUTES
ビューでは、ターゲットのデータ属性を含め、モデルのシグネチャのデータ属性が表示されます。
アルゴリズムによって、データ属性の内部表記が作成され、質的(分類またはカテゴリ化されたデータ)または量的(連続データ)のいずれかとして使用されます。 これらの内部のモデル属性を表示するには、GET_MODEL_DETAILS
ファンクションを使用します。
例38-2 ALL_MINING_MODEL_ATTRIBUTES
SQL> describe all_mining_model_attributes Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL VARCHAR2(30) MODEL_NAME NOT NULL VARCHAR2(30) ATTRIBUTE_NAME NOT NULL VARCHAR2(30) ATTRIBUTE_TYPE VARCHAR2(11) DATA_TYPE VARCHAR2(12) DATA_LENGTH NUMBER DATA_PRECISION NUMBER DATA_SCALE NUMBER USAGE_TYPE VARCHAR2(8) TARGET VARCHAR2(3)
関連項目: 属性およびALL_MINING_MODEL_ATTRIBUTES の詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。 |
ALL_MINING_MODEL_SETTINGS
ビューでは、アクセス可能なマイニング・モデルごとの設定が戻されます。設定では、マイニング・モデルの様々な特性が制御されます。
すべての設定にはデフォルト値があります。一部の設定は、デフォルトでアルゴリズムによって生成されます。モデルの設定表に値を指定すると、デフォルトの設定値を上書きできます。 ALL_MINING_MODEL_SETTINGS
では、すべての設定(デフォルトとユーザー指定の両方)が表示されます。
例38-3 ALL_MINING_MODEL_SETTINGS
SQL> describe all_mining_model_settings Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL VARCHAR2(30) MODEL_NAME NOT NULL VARCHAR2(30) SETTING_NAME NOT NULL VARCHAR2(30) SETTING_VALUE VARCHAR2(4000) SETTING_TYPE VARCHAR2(7)
11gリリース1(11.1)では、次のサブプログラムの使用は非推奨になっています。
GET_DEFAULT_SETTINGS
データ・ディクショナリ・ビューUSER
/ALL
/DBA_MINING_MODEL_SETTINGS
と置き換えられています。
GET_MODEL_SETTINGS
データ・ディクショナリ・ビューUSER
/ALL
/DBA_MINING_MODEL_SETTINGS
と置き換えられています。
GET_MODEL_SIGNATURE
データ・ディクショナリ・ビューUSER
/ALL
/DBA_MINING_MODEL_ATTRIBUTES
と置き換えられています。
11gリリース1(11.1)では、次のビューの使用は非推奨になっています。
DM_USER_MODELS
データ・ディクショナリ・ビューUSER
/ALL
/DBA_MINING_MODELS
と置き換えられています。
11gリリース1(11.1)では、Adaptive Bayes Networkアルゴリズムの使用は非推奨になっています。
注意: 新しいアプリケーションでは、これらのプロシージャを使用しないことをお薦めします。これらのプロシージャは、下位互換性を維持する目的のみでサポートされています。 |
11gリリース1(11.1)では、DMSYS
スキーマは使用されなくなりました。Oracle Data Miningメタデータは、SYS
内にあります。
表38-2に、モデルのマイニング機能を指定する定数を示します。マイニング機能の概要は、「概要」を参照してください。
すべてのモデルは、マイニング機能を使用して作成されます。 マイニング機能は、CREATE_MODELプロシージャの必須引数です。
表38-2 マイニング機能
値 | 説明 |
---|---|
|
相関は、記述マイニング機能の一種です。相関モデルによって、データ・セット内に存在する関係とその発生確率が識別されます。 相関モデルでは、Aprioriアルゴリズムが使用されます。 |
|
属性評価は、予測マイニング機能の一種です。属性評価モデルによって、特定の結果を予測する際の、属性の相対的な重要度が識別されます。 属性評価モデルでは、最小記述長アルゴリズムが使用されます。 |
|
分類は、予測マイニング機能の一種です。分類モデルでは、履歴データを使用して、質的ターゲットが予測されます。 分類モデルでは、Naive Bayes、Adaptive Bayes Network(非推奨)、ディシジョン・ツリー、ロジスティック回帰またはサポート・ベクター・マシンの各アルゴリズムを使用できます。デフォルトはNaive Bayesです。 分類機能は、異常検出にも使用できます。 この場合は、NULLターゲットを含むSVMアルゴリズムが使用されます(1クラスSVM)。 |
|
クラスタリングは、記述マイニング機能の一種です。クラスタリング・モデルによって、データ・セット内の自然なグループが識別されます。 クラスタリング・モデルでは、k-MeansまたはO-Clusterアルゴリズムが使用されます。デフォルトはk-Meansです。 |
|
特徴抽出は、記述マイニング機能の一種です。特徴抽出モデルによって、モデルのベースとなる最適なデータ・セットが作成されます。 特徴抽出モデルでは、Non-negative Matrix Factorizationアルゴリズムが使用されます。 |
|
回帰は、予測マイニング機能の一種です。回帰モデルでは、履歴データを使用して、量的ターゲットが予測されます。 回帰モデルでは、サポート・ベクター・マシンまたは線形回帰を使用できます。デフォルトはサポート・ベクター・マシンです。 |
Oracle Data Miningは、設定を使用してアルゴリズムおよびモデルに関するその他の特性を指定します。設定には、一般的な設定と、マイニング機能およびアルゴリズムに固有の設定があります。
すべての設定にはデフォルト値があります。モデルの1つ以上の設定を上書きするには、設定表を作成する必要があります。 設定表には、表38-3で示す列名およびデータ型を含める必要があります。
設定表に指定する情報は、モデルの作成時に使用されます。 設定表の名前は、CREATE_MODELプロシージャのオプションの引数です。
データ・ディクショナリ・ビューALL_MINING_MODEL_SETTINGS
を問い合せると、モデルで使用される設定を検索できます。 このビューでは、アクセス権限を持つマイニング・モデルで使用されるモデル設定が表示されます。デフォルトまたはユーザー指定かに関係なく、ビューにはすべての設定値が含まれます。 「ALL_MINING_MODEL_SETTINGS」を参照してください。
ALGO_NAME
設定では、モデルのアルゴリズムが指定されます。 表38-4に、ALGO_NAME
設定の値を示します。
表38-4 アルゴリズム名
ALGO_NAME値 | 説明 | マイニング機能 |
---|---|---|
|
Adaptive Bayes Network(非推奨) |
分類 |
|
ディシジョン・ツリー |
分類 |
|
Naive Bayes |
分類 |
|
一般化線形モデル |
分類と回帰 |
|
サポート・ベクター・マシン |
分類と回帰 |
|
拡張k_Means |
クラスタリング |
|
O-Cluster |
クラスタリング |
|
最小記述長 |
属性評価 |
|
Apriori |
相関ルール |
|
Non-Negative Matrix Factorization |
特徴抽出 |
Oracle Data Miningでは、分類、回帰およびクラスタリングのマイニング機能に対して2つ以上のアルゴリズムがサポートされています。 これらの各マイニング機能には、表38-5に示されているデフォルト・アルゴリズムがあります。
PREP_AUTO
設定は、モデルが自動データ準備(ADP)を使用するかどうかを指定します。 デフォルトでは、ADPは無効です。
ADPを有効にすると、モデルでは、経験則を使用し、アルゴリズムの要件に応じて作成データを変換します。変換命令は、モデルに格納され、モデルが適用されるたびに再利用されます。変換命令は、モデルの詳細で表示できます。
モデルの作成時にxform_list
パラメータに追加の変換を指定することによって、自動データ準備を補うことができます。 (「CREATE_MODELプロシージャ」を参照)
ADPを使用せず(デフォルト)、CREATE_MODEL
へのxform_list
パラメータに変換を指定しない(デフォルト)場合、10.2モードで操作が続行されます。したがって、データの作成、テストおよびスコアリングを行う場合に、個別に独自の変換を実装する必要があります。各データ・セットでまったく同じ変換を実装するように、細心の注意が必要です。
ADPを使用せず、CREATE_MODEL
へのxform_list
パラメータに変換を指定する場合、Oracle Data Miningでは、モデルに変換定義が埋め込まれ、モデル作成データと一致するようにテスト・データおよびスコアリング・データが準備されます。 データ準備が自動的であり、埋め込まれているため、マイニング・モデルは、スーパーモデルとも呼ばれます。
表38-6に、PREP_AUTO
設定の値を示します。
関連項目: データ準備の詳細は、『Oracle Data Mining概要』を参照してください。 |
表38-7に示されている設定がマイニング機能に適用されます。
表38-7 マイニング機能の設定
マイニング機能 | 設定名 | 設定値 | 説明 |
---|---|---|---|
相関 |
|
|
相関ルールの最大ルール長。 デフォルトは4です。 |
相関 |
|
|
相関ルールの最小信頼度。 デフォルトは0.1です。 |
相関 |
|
|
相関ルールの最小支持度。 デフォルトは0.1です。 |
分類 |
|
table_name |
(ディシジョン・ツリーのみ)モデル作成のアルゴリズムに使用されるコスト・マトリックスを格納する表の名前。 コスト・マトリックスは、分類ミスに関連するコストを指定します。 作成時には、ディシジョン・ツリー・モデルのみがコスト・マトリックスを使用できます。適用時には、すべての分類アルゴリズムがコスト・マトリックスを使用できます。 コスト・マトリックス表は、ユーザーが作成します。 列の要件については、「ADD_COST_MATRIXプロシージャ」を参照してください。 コストの詳細は、『Oracle Data Mining概要』を参照してください。 |
分類 |
|
table_name |
(Naive Bayes)作成データとスコアリング・データの分布の差を埋めるために、事前確率を格納する表の名前。 事前確率表は、ユーザーが作成します。 列の要件については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。 事前確率の詳細は、『Oracle Data Mining概要』を参照してください。 SVM分類は、クラスの重みについては事前確率表を使用します。 |
分類 |
|
table_name |
(GLMのみ)ロジスティック回帰モデルの各ターゲット値に関する重み情報を格納する表の名前。アルゴリズムでは、重みを使用して、より高い重み付けのクラスを優先するようにモデルにバイアスをかけます。 クラスの重み表は、ユーザーが作成します。 列の要件については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。 ロジスティック回帰のクラスの重みの詳細は、『Oracle Data Mining概要』を参照してください。 |
クラスタリング |
|
|
クラスタリング・アルゴリズムで生成されるクラスタの数。 デフォルトは10です。 |
特徴抽出 |
|
|
特徴抽出モデルで抽出される特徴の数。 アルゴリズムによって、データからデフォルトが見積もられます。 |
関連項目: マイニング機能の詳細は、『Oracle Data Mining概要』を参照してください。 |
表38-8の設定はあらゆるタイプのモデルに適用できますが、現在はGLMに対してのみ実装されています。
データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS
(接頭辞ALL
、USER
またはDBA
を使用)を問い合せると、モデルの設定値を確認できます。 *_MINING_MODEL_SETTINGS
については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
表38-8 グローバルな設定
設定名 | 設定値 | 説明 |
---|---|---|
|
|
(GLMのみ)トレーニング・データでの欠損値を処理する方法。この設定は、スコアリング・データに影響を与えません。 Oracle Data Miningでは、欠損値は、作成時と適用時に、平均値(量的属性)または最頻値(質的属性)に置き換えられます。 値 |
|
column_name |
(GLMのみ)行の重み要素を含むトレーニング・データの列の名前。 行の重みは、特定の構成が複数回繰り返される試用を設計する場合のように、繰返し行のコンパクトな表現として使用できます。また、行の重みは、モデルの作成中に特定の行を強調するためにも使用できます。たとえば、より新しい行を優先し、古い可能性のあるデータを避けるようにバイアスをかける場合に使用できます。 |
関連項目: GLMの詳細は、『Oracle Data Mining概要』を参照してください。 |
これらの設定は、Adaptive Bayes Networkアルゴリズムの動作に影響を与えます。
データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS
(接頭辞ALL
、USER
またはDBA
を使用)を問い合せると、モデルの設定値を確認できます。*_ALL_MINING_MODEL_SETTINGS
については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
表38-9 ABNの設定
設定 | 値 | 説明 |
---|---|---|
|
|
ABNモデルの作成を完了するまでの最大時間。 デフォルトは0です(時間制限がないことを示します)。 |
|
|
デフォルトは10です。 |
|
|
デフォルトは25です。 |
|
|
ABNモデルのタイプ。 デフォルトは |
これらの設定は、ディシジョン・ツリー・アルゴリズムの動作に影響を与えます。
データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS
(接頭辞ALL
、USER
またはDBA
を使用)を問い合せると、モデルの設定値を確認できます。*_ALL_MINING_MODEL_SETTINGS
については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
表38-10 ディシジョン・ツリーの設定
設定 | 値 | 説明 |
---|---|---|
|
|
ディシジョン・ツリーのツリー不純メトリック。 ツリー・アルゴリズムでは、各ノードでのデータの分岐に最適なテスト質問が検索されます。最適な分岐および分岐値は、ノードのエンティティに対するターゲット値の同質性(純度)が最大限に高くなるものです。純度は、メトリックに従って測定します。 ディシジョン・ツリーでは、純度メトリックとしてジニ( |
|
|
分岐の条件: ツリーの最大深度(ルート・ノードとリーフ・ノードとの間(リーフ・ノードを含む)の最大ノード数)。 デフォルトは7です。 |
|
|
この数値より小さいレコードを子に含めることはできません。この数値は、トレーニング行の割合で表現されます。 デフォルトは0.05で、0.05%を表します。 |
|
|
分岐の条件: 親ノードのレコードの最小数。この数値は、モデルのトレーニングに使用される総レコード数の割合で表現されます。レコード数がこの値よりも少ない場合、分岐は試行されません。 デフォルトは0.1で、0.1%を表します。 |
|
|
この数値より小さいレコードは、子に含めることができません。 デフォルトは10です。 |
|
|
分岐の条件: 値として表現される親ノードのレコードの最小数。レコード数がこの値よりも少ない場合、分岐は試行されません。 デフォルトは20です。 |
これらの設定は、GLMモデルの動作に影響を与えます。GLMは、分類(ロジスティック回帰)または回帰(線形回帰)で使用できます。
データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS
(接頭辞ALL
、USER
またはDBA
を使用)を問い合せると、モデルの設定値を確認できます。*_ALL_MINING_MODEL_SETTINGS
については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
表38-11 GLMの設定
設定名 | 設定値 | 説明 |
---|---|---|
|
|
信頼区間の信頼水準。 デフォルトの信頼水準は0.95です。 |
|
table_name |
GLMモデルに関する行レベルの診断情報を含む表の名前。この表は、モデルの作成中に作成されます。 診断表を作成する場合は、モデルの作成時にケースIDを指定する必要があります。 (「CREATE_MODELプロシージャ」を参照)診断表を指定し、ケースIDを指定しない場合は、例外が発生します。 GLM診断の詳細は、『Oracle Data Mining概要』を参照してください。 |
|
target_value |
ロジスティック回帰モデルで参照値として使用されるターゲット値。その他(非参照)のクラスの場合は、確率が生成されます。 デフォルトでは、参照クラスの場合、最も普及率の高い値(ほとんどのケース)がアルゴリズムによって選択されます。 |
|
|
リッジ回帰が有効かどうかの指定。 デフォルトでは、リッジを使用するかどうかはアルゴリズムによって決定されます。 リッジは、回帰と分類の両方のマイニング機能に適用されます。 リッジを有効にすると、 |
|
|
アルゴリズムで使用されるリッジ・パラメータの値。 この設定は、 リッジ回帰がアルゴリズムによって内部的に有効になっている場合、リッジ・パラメータはアルゴリズムによって決定されます。 |
|
|
(線形回帰のみ)リッジが作成されたときにVariance Inflation Factor(VIF)統計を作成するかどうかの指定。 デフォルトでは、リッジを有効にするとVIFは生成されません。
|
関連項目: GLMの詳細は、『Oracle Data Mining概要』を参照してください。 |
これらの設定は、k-Meansアルゴリズムの動作に影響を与えます。
データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS
(接頭辞ALL
、USER
またはDBA
を使用)を問い合せると、モデルの設定値を確認できます。*_ALL_MINING_MODEL_SETTINGS
については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
表38-12 k-Meansの設定
設定名 | 設定値 | 説明 |
---|---|---|
|
|
クラスタ・データを保持するために割り当てられるメモリーの増加因数。 デフォルト値は2です。 |
|
|
k-Meansアルゴリズムの汎用的最適化。 デフォルトは0.01です。 |
|
|
k-Meansクラスタリングの距離関数。デフォルトはユークリッドです。 |
|
|
k-Meansアルゴリズムの反復回数。 デフォルトは3です。 |
|
|
クラスタのルール記述にその属性を含めるために必要な、非NULL値でなければならない属性値の割合。 欠損値を含むデータでこのパラメータ値の設定が高すぎると、非常に短いルールや空のルールとなる可能性があります。 デフォルトは0.1です。 |
|
|
ヒストグラムのビンの数。k-Meansで生成される属性ヒストグラムでのビンの数を指定します。各属性のビンの境界は、トレーニング・データ・セット全体でグローバルに計算されます。ビニングの方法は等幅です。すべての属性でビンの数は同じです。ただし、単一の値を持つ属性では、ビンは1つのみです。 デフォルトは10です。 |
|
|
k-Meansクラスタリングの分割基準。デフォルトの基準は |
関連項目: k-Meansの詳細は、『Oracle Data Mining概要』を参照してください。 |
これらの設定は、Naive Bayesアルゴリズムの動作に影響を与えます。
データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS
(接頭辞ALL
、USER
またはDBA
を使用)を問い合せると、モデルの設定値を確認できます。*_ALL_MINING_MODEL_SETTINGS
については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
表38-13 Naive Bayesの設定
設定名 | 設定値 | 説明 |
---|---|---|
|
|
NBアルゴリズムでの組しきい値。 デフォルトは0.01です。 |
|
|
NBアルゴリズムでの単一しきい値。 デフォルトは0.01です。 |
関連項目: Naive Bayesの詳細は、『Oracle Data Mining概要』を参照してください。 |
これらの設定は、Non-Negative Matrix Factorizationの動作に影響を与えます。
データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS
(接頭辞ALL
、USER
またはDBA
を使用)を問い合せると、モデルの設定値を確認できます。*_ALL_MINING_MODEL_SETTINGS
については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
表38-14 NMFの設定
設定名 | 設定値 | 説明 |
---|---|---|
|
|
NMFアルゴリズムでの汎用的最適化。 デフォルトは0.05です。 |
|
|
NMFアルゴリズムの反復回数。 デフォルトは50です。 |
|
|
NMFアルゴリズムのランダム・シード。 デフォルトは–1です。 |
関連項目: NMFの詳細は、『Oracle Data Mining概要』を参照してください。 |
これらの設定は、O-Clusterアルゴリズムの動作に影響を与えます。
データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS
(接頭辞ALL
、USER
またはDBA
を使用)を問い合せると、モデルの設定値を確認できます。*_ALL_MINING_MODEL_SETTINGS
については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
表38-15 O-CLusterの設定
設定名 | 設定値 | 説明 |
---|---|---|
|
|
O-Clusterのバッファ・サイズ。 デフォルトは50,000です。 |
|
|
新しいクラスタを分割するために必要な最大密度を指定する割合。この割合は、全体の均一密度と関連しています。 デフォルトは0.5です。 |
関連項目: O-Clusterの詳細は、『Oracle Data Mining概要』を参照してください。 |
これらの設定は、サポート・ベクター・マシン・アルゴリズムの動作に影響を与えます。SVMは、分類、回帰または異常検出(NULLターゲットを含む分類)に使用できます。
データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS
(接頭辞ALL
、USER
またはDBA
を使用)を問い合せると、モデルの設定値を確認できます。*_ALL_MINING_MODEL_SETTINGS
については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
表38-16 SVMの設定
設定名 | 設定値 | 説明 |
---|---|---|
|
|
能動学習を有効にするか無効にするかの設定。デフォルトでは、能動学習は有効になっています。 能動学習を有効にすると、SVMアルゴリズムでは能動学習を使用して、サイズが縮小されたモデルが作成されます。能動学習を無効にすると、SVMアルゴリズムでは標準モデルが作成されます。 |
|
|
SVMアルゴリズム(分類と回帰の両方)の複雑度の値。 デフォルト値は、アルゴリズムによってデータから概算されます。 |
|
|
SVMアルゴリズムでの汎用的最適化。 デフォルトは0.001です。 |
|
|
SVM回帰のイプシロン係数の値。 デフォルト値は、アルゴリズムによってデータから概算されます。 |
|
|
SVMアルゴリズムのカーネル・キャッシュ・サイズの値。ガウス・カーネルにのみ適用されます。 デフォルトは50000000バイトです。 |
|
|
サポート・ベクター・マシンのカーネル。デフォルトは、トレーニング・データでの属性の数に基づいて、アルゴリズムによって決定されます。多数の属性がある場合、アルゴリズムでは線形カーネルが使用されます。そうでない場合は、非線形(ガウス)カーネルが使用されます。 属性の数は、トレーニング・データの列の数とは一致しません。アルゴリズムによって、質的属性が2項の量的属性に展開されます。また、Oracle Data Miningでは、ネストした列の各行が別々の属性として処理されます。SVMでは、カーネル機能の選択時にこれらの要素が考慮されます。 |
|
|
トレーニング・データでの目標となる外れ値率。1クラスSVMモデル(異常検出)に対してのみ有効です。 デフォルトは1です。 |
|
|
SVMアルゴリズムの標準偏差の値。 これは、ガウス・カーネルにのみ適用されます。 デフォルト値は、アルゴリズムによってデータから概算されます。 |
関連項目: SVMの詳細は、『Oracle Data Mining概要』を参照してください。 |
DBMS_DATA_MINING
パッケージでは、モデル属性に関する情報を格納するためにオブジェクト・データ型が使用されます。 これらの型の大部分は、テーブル・ファンクションGET
_n
によって戻されます。ここで、n
は戻す情報の型を表します。これらのファンクションは、モデル名を入力に使用し、要求された情報を行のコレクションとして戻します。
GET
ファンクションのリストは、「DBMS_DATA_MININGサブプログラムの要約」を参照してください。
Oracle Data Miningでは、トランザクション・データの処理にもオブジェクト・データ型が使用されます。 これらの型(DM_NESTED_NUMERICALS
およびDM_NESTED_CATEGORICALS
)によって、一連のマイニング属性を1つの列に格納する場合に使用可能なネストした表が定義されます。 ネストした表の詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
すべてのテーブル・ファンクションでパイプライン出力が使用され、出力の各行がモデルの記憶域から読み取られながら実体化されるため、表オブジェクトが完全に生成されるまで待機する必要がありません。 パイプライン・テーブル・ファンクションの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
表38-17に、データ・マイニングのオブジェクト・データ型を示します。
表38-17 DBMS_DATA_MININGのデータ型の要約
データ型 | 説明 |
---|---|
|
Adaptive Bayes Networkモデルの属性に関する情報。 |
|
|
|
クラスタの重心。 |
|
|
|
クラスタの子ノード。 |
|
|
|
クラスタ。 クラスタには、 |
|
|
|
Naive Bayesモデルの属性の条件付き確率。 |
|
|
|
コスト・マトリックスの実際の値および予測値。 |
|
|
|
一般化線形モデルの属性の係数および関連付けられている統計。 |
|
|
|
クラスタに関連付けられたヒストグラム。 |
|
|
|
相関ルールの項目。 |
|
|
|
|
|
|
|
モデルに関する高水準の統計。 |
|
|
|
モデルの設定。 |
|
|
|
モデルのシグネチャの属性。 |
|
|
|
Naive Bayesモデルの属性に関する情報。 |
|
|
|
質的属性の名前および値。 |
|
|
|
量的属性の名前および値。 |
|
|
|
Non-negative Matrix Factorizationモデルの機能の属性。 |
|
|
|
Non-negative Matrix Factorizationモデルの機能。 |
|
|
|
前件および後件の属性。 |
|
|
|
属性評価モデルで重要度別にランク付けされた属性。 |
|
|
|
条件付きの関係を定義するルール。 このルールには、GET_ASSOCIATION_RULESファンクションによって戻される相関ルールのいずれか、またはGET_MODEL_DETAILS_KMファンクションおよびGET_MODEL_DETAILS_OCファンクションによって戻されるクラスタのコレクションでクラスタに関連付けられたルールを指定できます。 |
|
|
|
サポート・ベクター・マシン・モデルの属性の名前、値および係数。 |
|
|
|
サポート・ベクター・マシン・モデルの各属性の線形係数。 |
|
|
|
属性の変換式および逆変換式。 |
|
|
|
モデルのユーザー定義変換のリスト。 パラメータとしてCREATE_MODELプロシージャで使用されます。 このコレクション・タイプは、 |
表38-18に、DBMS_DATA_MINING
パッケージに含まれているサブプログラムの要約を示します。
表38-18 DBMS_DATA_MININGパッケージのサブプログラム
データ型 | 用途 |
---|---|
|
分類モデルにコスト・マトリックスを追加します。 |
ALTER_REVERSE_EXPRESSIONプロシージャ |
逆変換式を指定した式に変更します。 |
データ・セットにモデルを適用します(データのスコアリングを行います)。 |
|
分類モデルのテスト・データに対する |
|
|
分類モデルをテスト・データに適用( |
分類モデルの受信者操作特性(ROC)を計算します。 |
|
モデルを作成(構築)します。 |
|
|
モデルを削除します。 |
|
モデルをダンプ・ファイルにエクスポートします。 |
マイニング機能とマイニング・アルゴリズムのすべてのデフォルト設定を戻します。 |
|
相関モデルの高頻度項目セットを戻します。 |
|
|
モデルのコスト・マトリックスを戻します。 |
Adaptive Bayes Networkモデルのディテールを戻します。 |
|
|
属性評価モデルのディテールを戻します。 |
|
一般化線形モデルのディテールを戻します。 |
GET_MODEL_DETAILS_GLOBALファンクション |
モデルに関する高水準の統計を戻します。 |
|
k-Meansモデルのディテールを戻します。 |
Naive Bayesモデルのディテールを戻します。 |
|
|
NMFモデルのディテールを戻します。 |
O-Clusterモデルのディテールを戻します。 |
|
線形カーネルを使用するSVMモデルのディテールを戻します。 |
|
ディシジョン・ツリー・モデルのディテールを戻します。 |
|
モデルの作成に使用された設定を戻します。 |
|
モデルのシグネチャを戻します。 |
|
GET_MODEL_TRANSFORMATIONSファンクション |
数多くのADP変換に加えて、モデルに埋め込まれたユーザー指定の変換定義を戻します。 |
|
2つの異なる変換仕様形式との間を変換します。 |
モデルをユーザー・スキーマにインポートします。 |
|
|
分類モデルに対する |
|
モデルからコスト・マトリックスを削除します。 |
モデルの名前を変更します。 |
このプロシージャは、コスト・マトリックス表を分類モデルに関連付けます。コスト・マトリックスでは、コストまたは利益を特定のモデル結果に割り当てることによって、そのモデルにバイアスをかけます。
コスト・マトリックスはモデルとともに格納され、モデルのスコアリング時に考慮されます。格納されるコスト・マトリックスは、モデルのデフォルトのスコアリング・マトリックスです。
また、スコアリングのためにData Mining SQLファンクションを起動したときに、コスト・マトリックスをインラインに指定できます。インラインのコスト・マトリックスを指定すると、デフォルトのかわりに、格納されたコスト・マトリックスが使用されます(存在する場合)。
モデルのデフォルト・スコアリング・マトリックスを取得するには、GET_MODEL_COST_MATRIX
ファンクションを使用します。 モデルからデフォルト・スコアリング・マトリックスを削除するには、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);
パラメータ
表38-19 ADD_COST_MATRIXプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、ユーザー独自のスキーマが使用されます。 |
|
コスト・マトリックス表の名前(表38-20を参照)。 |
|
コスト・マトリックス表のスキーマ。スキーマが指定されない場合は、現行のスキーマが使用されます。 |
使用上の注意
モデルがスキーマにない場合、ADD_COST_MATRIX
では、ALTER ANY MINING MODEL
システム権限またはそのマイニング・モデルに対するALTER
オブジェクト権限が必要です。
コスト・マトリックス表には、表38-20に示す列が必要です。実際のターゲット値と予測されるターゲット値のデータ型は、同じである必要があります。
利益は負のコストとして表示できるため、コスト・マトリックス表のCOST
列に負の数値を指定すると、特定の結果に利益を指定できます。
すべての分類アルゴリズムで、スコアリングのためにコスト・マトリックスを使用できます。 また、ディシジョン・ツリー・アルゴリズムでは、作成時でもコスト・マトリックスを使用できます。コスト・マトリックスを使用してディシジョン・ツリー・モデルを作成する場合、モデルの設定表のCLAS_COST_TABLE_NAME
設定にコスト・マトリックス表の名前を指定します。表38-7「マイニング機能の設定」を参照してください。
ディシジョン・ツリー・モデルを作成する場合に使用するコスト・マトリックスは、そのモデルに対するデフォルトのスコアリング・マトリックスになります。 スコアリング用に異なるコストを指定する場合は、REMOVE_COST_MATRIX
プロシージャを使用してコスト・マトリックスを削除し、ADD_COST_MATRIX
プロシージャを使用して新規コスト・マトリックスを追加します。
例
この例では、COSTS_NB
というコスト・マトリックス表を作成し、NB_SH_CLAS_SAMPLE
というNaive Bayesモデルに追加します。このモデルには、バイナリ・ターゲットがあります。1は顧客がプロモーションに応答することを表し、0は顧客が応答しないことを表します。 コスト・マトリックスは、応答しない顧客の分類ミスに0.25のコストを割り当て、応答する顧客の分類ミスに0.75のコストを割り当てます。 これは、応答しない顧客の分類ミスよりも、応答する顧客の分類ミスの方が3倍コストがかかることを意味します。
CREATE TABLE costs_nb ( actual_target_value NUMBER, predicted_target_value NUMBER, cost NUMBER); INSERT INTO costs_nb values (0, 0, 0); INSERT INTO costs_nb values (0, 1, .25); INSERT INTO costs_nb values (1, 0, .75); INSERT INTO costs_nb values (1, 1, 0); COMMIT; EXEC dbms_data_mining.add_cost_matrix('nb_sh_clas_sample', 'costs_nb'); SELECT cust_gender, COUNT(*) AS cnt, ROUND(AVG(age)) AS avg_age FROM mining_data_apply_v WHERE PREDICTION(nb_sh_clas_sample COST MODEL USING cust_marital_status, education, household_size) = 1 GROUP BY cust_gender ORDER BY cust_gender; C CNT AVG_AGE - ---------- ---------- F 72 39 M 555 44
このプロシージャは、逆変換式を指定した式に変更します。
変換式は、モデルの作成に使用される前に属性を変更する方法を指定します。逆変換式は、モデルの透過性のために、属性を元の形式(または元の形式の近似処理)に戻す方法を指定します。
GET_MODEL_DETAILS
ファンクションは、モデルの属性に関する情報を戻す前に逆変換式に適用されます。ターゲットが変換されると、逆変換がスコアリングの結果に適用されます。詳細は、「使用上の注意」を参照してください。
ALTER_REVERSE_EXPRESSION
を使用すると、名前/説明をクラスタまたは機能と関連付けることができます。モデルのスコアリング時に、指定した記述子が表示されます。CLUSTER_ID
、CLUSTER_PROBABILITY
およびCLUSTER_SET
ファンクションを使用すると、クラスタリング・モデルをスコアリングできます。 FEATURE_ID
、FEATURE_SET
またはFEATURE_VALUE
ファンクションを使用すると、特徴抽出モデルをスコアリングできます。 詳細は、例および『Oracle Database SQL言語リファレンス』を参照してください。
ALTER_REVERSE_EXPRESSION
を使用すると、名前/説明を異常検出モデルの結果と関連付けることができます。これらのモデルでは、1クラスSVMを使用して、レコードごとに1または0のいずれか(レコードが異常かどうかを示す)が予測されます。 ALTER_REVERSE_EXPRESSION
では、ゼロまたは1をもっと意味のあるラベルに置き換えることができます。
構文
DBMS_DATA_MINING. ALTER_REVERSE_EXPRESSION ( model_name VARCHAR2, expression CLOB, attribute_name VARCHAR2 DEFAULT NULL, attribute_subname VARCHAR2 DEFAULT NULL);
パラメータ
表38-21 ALTER_REVERSE_EXPRESSIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
|
SQL式。 |
|
属性の名前。 |
|
|
使用上の注意
自動データ準備を使用する場合、変換および逆変換はシステムによって自動的に実行されます。モデルを作成すると、システムで生成される式に加えて適用される変換および逆変換を指定できます。自動データ準備を使用しない場合、指定した変換および逆変換のみが適用されます。
例
この例では、sh_clus
モデルから生成されたクラスタにラベルを指定します。このラベルは、「クラスタ」という単語およびクラスタの内部数値識別子で構成されます。
SQL> begin 2 dbms_data_mining.alter_reverse_expression( 3 'sh_clus', '''Cluster ''||value'); 4 end; 5 / SQL> select cust_id, cluster_id(sh_clus using *) cluster_id 2 from sh_aprep_num 3 where cust_id < 100011 4 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
このプロシージャは、対象データにマイニング・モデルを適用し、その結果を表に保存します。適用プロセスは、スコアリングとも呼ばれます。
予測マイニング機能の適用プロセスでは、予測結果がターゲット列に生成されます。クラスタリングなどの記述マイニング機能の適用プロセスでは、各ケースにクラスタが確率付きで割り当てられます。
Oracle Data Miningでは、適用操作は、相関モデルおよび属性評価モデルには適用できません。
注意: データ・マイニング機能を使用すると、SQLで直接スコアリングを実行することもできます。 詳細は、『Oracle Data Miningアプリケーション開発者ガイド』のスコアリングおよびデプロイメントに関する項を参照してください。 |
構文
DBMS_DATA_MINING.APPLY ( model_name IN VARCHAR2, data_table_name IN VARCHAR2, case_id_column_name IN VARCHAR2, result_table_name IN VARCHAR2, data_schema_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表38-22 APPLYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
|
スコアリング対象のデータが保存された表またはビューの名前。 |
|
ケースID列の名前。 |
|
適用結果が保存される表の名前。 |
|
スコアリング対象のデータが保存されたスキーマの名前。 |
使用上の注意
APPLY
に指定したデータでは、モデルの作成およびテストに使用されるデータと同じ事前処理が実行される必要があります。 自動データ準備を使用する場合、アルゴリズムで必要な事前処理は、作成時と適用時の両方で、ユーザーのかわりにモデルによって処理されます。(「自動データ準備」を参照)
APPLY
では、ユーザーのスキーマに表を作成して結果を保存します。列はアルゴリズム固有です。
結果表の列は、表38-23から表38-27で説明します。 結果表のケースID列名は、ユーザーが指定したケースID列名と同じ値になります。 入力のケースID列の型は、APPLY
の出力でも維持されます。
注意: ケースID列が、APPLY で作成されるいずれの列の名前とも同じにならないことを確認してください。 たとえば、分類モデルを適用した場合、スコアリング・データのケースIDは、PREDICTION とPROBABILITY のいずれにもならないようにする必要があります(表38-23を参照)。 |
出力列'PREDICTION
'、'CLUSTER_ID
'および'FEATURE_ID
'のデータ型は、ユーザーがモデルに埋め込んだ反転式によって影響を受けます。ユーザーがスコアリング値の型を変更する反転式を指定しない場合は、その型は次の表の説明に従います。 詳細は、「ALTER_REVERSE_EXPRESSIONプロシージャ」を参照してください。
分類の結果表には、表38-23に示す列があります。モデルが質的ターゲットの場合、PREDICTION
列のデータ型はVARCHAR2
になります。モデルが量的ターゲットの場合、PREDICTION
列のデータ型はNUMBER
になります。
表38-23 分類に対するAPPLYの適用結果表
列名 | データ型 |
---|---|
ケースID列の名前 |
|
|
|
|
|
異常検出の結果表には、表38-24に示す列があります。
PREDICTION
列の値は、0または1のいずれかです。1の場合、ケースは標準的な例です。0の場合、ケースは外れ値です。
回帰の結果表には、表38-25に示す列があります。
クラスタリングは監視なしのマイニング機能であるため、ターゲットは存在しません。APPLY
操作の結果は、単にケースに対応するクラスタ識別子と、ケースの確率のみになります。 結果表には、表38-26に示す列があります。
表38-26 クラスタリングに対するAPPLYの適用結果表
列名 | データ型 |
---|---|
ケースID列の名前 |
|
|
|
|
|
特徴抽出も監視なしのマイニング機能であるため、ターゲットは存在しません。APPLY
操作の結果は、単にケースに対応する機能識別子と、ケースの一致率のみになります。 結果表には、表38-27に示す列があります。
表38-27 特徴抽出に対するAPPLYの適用結果表
列名 | データ型 |
---|---|
ケースID列の名前 |
|
|
|
|
|
例
この例では、GLM回帰モデルGLMR_SH_REGR_SAMPLE
をMINING_DATA_APPLY_V
ビューのデータに適用します。 適用結果は、REGRESSION_APPLY_RESULT
表に出力されます。
SQL> BEGIN DBMS_DATA_MINING.APPLY ( model_name => 'glmr_sh_regr_sample', data_table_name => 'mining_data_apply_v', case_id_column_name => 'cust_id', result_table_name => 'regression_apply_result'); END; / SQL> SELECT * FROM regression_apply_result WHERE cust_id > 101485; CUST_ID PREDICTION ---------- ---------- 101486 22.8048824 101487 25.0261101 101488 48.6146619 101489 51.82595 101490 22.6220714 101491 61.3856816 101492 24.1400748 101493 58.034631 101494 45.7253149 101495 26.9763318 101496 48.1433425 101497 32.0573434 101498 49.8965531 101499 56.270656 101500 21.1153047
このプロシージャは、コンフュージョン・マトリックスを計算してユーザーのスキーマにある表に格納し、モデルの精度を戻します。
コンフュージョン・マトリックスは、分類モデルに対するテスト指標値です。 一連のテスト・データにおいて、モデルによって生成された予測結果が実際のターゲット値と比較されます。 マトリックスはn-by-nであり、nはクラスの数を表します。 コンフュージョン・マトリックスには、各クラスが正しく予測された回数と、各クラスが他のクラスのいずれかになると予測された回数がリストされます。
COMPUTE_CONFUSION_MATRIX
は、次の3つの入力ストリームを受け入れます。
テスト・データに対して生成された予測結果。この情報は、次の3つの列で渡されます。
ケースID列
予測列
確率とコストのいずれかが格納されているスコアリング基準列
テスト・データの既知のターゲット値。この情報は、次の2つの列で渡されます。
ケースID列
既知のターゲット値が格納されているターゲット列
(オプション)事前定義された列を持つコスト・マトリックス表。列の要件については、「使用上の注意」を参照してください。
関連項目: コンフュージョン・マトリックスおよび分類用の他のテスト指標値の詳細は、『Oracle Data Mining概要』を参照してください。 |
構文
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');
パラメータ
表38-28 COMPUTE_CONFUSION_MATRIXプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
予測の全体的な精度(パーセント)が含まれる出力パラメータ。 |
|
予測結果が含まれる表。 |
|
テスト・データの既知のターゲット値が含まれる表。 |
|
適用結果表のケースID列。ターゲット表のケースIDと一致する必要があります。 |
|
ターゲット表のターゲット列。テスト・データの既知のターゲット値が格納されます。 |
|
コンフュージョン・マトリックスが含まれる表。この表は、このプロシージャによってユーザーのスキーマ内に作成されます。 コンフュージョン・マトリックス表の列については、「使用上の注意」を参照してください。 |
|
適用結果表の予測結果が格納される列。 デフォルトの列名は |
|
適用結果表のスコアリング基準値が格納される列。予測を決定する確率またはコストが格納されます。 デフォルトでは、スコアリングは確率に基づくため、各ケースに対して最も確率の高いクラスが予測されます。スコアリングがコストに基づく場合は、最もコストの低いクラスが予測されます。
デフォルトの列名は' 詳細は、「使用上の注意」を参照してください。 |
|
(オプション)分類ミスに関連付けられたコストを定義する表。 コスト・マトリックス表があり、 コスト・マトリックス表の列については、「使用上の注意」を参照してください。 |
|
適用結果表のスキーマ。 NULLの場合、ユーザーのスキーマと想定されます。 |
|
既知のターゲットが含まれる表のスキーマ。 NULLの場合、ユーザーのスキーマと想定されます。 |
|
コスト・マトリックス表のスキーマ(指定されている場合)。 NULLの場合、ユーザーのスキーマと想定されます。 |
|
スコアリング基準として確率またはコストのいずれを使用するか。確率またはコストは、
「使用上の注意」および「例」を参照してください。 |
使用上の注意
COMPUTE_CONFUSION_MATRIX
に渡す予測情報は、SQLファンクションPREDICTION
、DBMS_DATA_MINING.APPLY
プロシージャまたはその他のメカニズムを使用して生成できます。 プロシージャは、渡すデータが適切な場合にかぎり、コンフュージョン・マトリックスを計算できます。
COMPUTE_CONFUSION_MATRIX
にコスト・マトリックスを渡すかわりに、モデルに関連付けられているスコアリング・コスト・マトリックスを使用できます。スコアリング・コスト・マトリックスは、モデルに埋め込むか、またはモデルの適用時に動的に定義できます。スコアリング・コスト・マトリックスを使用するには、SQLファンクションPREDICTION_COST
を起動して、スコア基準列を移入します。
COMPUTE_CONFUSION_MATRIX
に渡す予測情報は、apply_result_table_name
で指定した表またはビューに格納されます。
CREATE TABLEapply_result_table_name
AS (case_id_column_name
VARCHAR2, score_column_name VARCHAR2,score_criterion_column_name
VARCHAR2);
コスト・マトリックスには、表38-29に示す列が必要です。
表38-29 コスト・マトリックスの列
列名 | データ型 |
---|---|
|
|
|
|
|
|
関連項目: コスト・マトリックスの詳細は、『Oracle Data Mining概要』を参照してください。 |
COMPUTE_CONFUSION_MATRIX
で作成されるコンフュージョン・マトリックスには、表38-30に示す列があります。
表38-30 コンフュージョン・マトリックスの列
列名 | データ型 |
---|---|
|
|
|
|
|
|
関連項目: コンフュージョン・マトリックスの詳細は、『Oracle Data Mining概要』を参照してください。 |
例
ここに示す例では、Naive Bayesモデルnb_sh_clas_sample
が使用されています。このモデルは、Oracle Data Miningのサンプル・プログラムによって作成されます。
確率に基づくコンフュージョン・マトリックスの計算
次の文は、テスト・データにモデルを適用し、予測結果と確率を表に格納します。
CREATE TABLE nb_apply_results AS SELECT cust_id, PREDICTION(nb_sh_clas_sample USING *) prediction, PREDICTION_PROBABILITY(nb_sh_clas_sample USING *) probability FROM mining_data_test_v;
スコアリング基準として確率を使用する場合は、次のようにコンフュージョン・マトリックスを計算できます。
DECLARE v_accuracy NUMBER; BEGIN DBMS_DATA_MINING.COMPUTE_CONFUSION_MATRIX ( accuracy => v_accuracy, apply_result_table_name => 'nb_apply_results', target_table_name => 'mining_data_test_v', case_id_column_name => 'cust_id', target_column_name => 'affinity_card', confusion_matrix_table_name => 'nb_confusion_matrix', score_column_name => 'PREDICTION', score_criterion_column_name => 'PROBABILITY' cost_matrix_table_name => null, apply_result_schema_name => null, target_schema_name => null, cost_matrix_schema_name => null, score_criterion_type => 'PROBABILITY'); DBMS_OUTPUT.PUT_LINE('**** MODEL ACCURACY ****: ' || ROUND(v_accuracy,4)); END; /
コンフュージョン・マトリックスとモデルの精度は、次のとおりです。
**** MODEL ACCURACY ****: .7847 SQL>SELECT * from nb_confusion_matrix; ACTUAL_TARGET_VALUE PREDICTED_TARGET_VALUE VALUE ------------------- ---------------------- ---------- 1 0 60 0 0 891 1 1 286 0 1 263
コスト・マトリックス表に基づくコンフュージョン・マトリックスの計算
前述の例のコンフュージョン・マトリックスは、高い偽陽性率を示しています。 263のケースで、実際の値が0(ゼロ)であるにもかかわらず、モデルでは1と予測されました。コスト・マトリックスを使用すると、このようなエラーを最小限に抑えることができます。
コスト・マトリックス表nb_cost_matrix
から、偽陽性は偽陰性の3倍以上のコストがかかることがわかります。
SQL> SELECT * from nb_cost_matrix; ACTUAL_TARGET_VALUE PREDICTED_TARGET_VALUE COST ------------------- ---------------------- ---------- 0 0 0 0 1 .75 1 0 .25 1 1 0
次の文は、APPLY
を使用して予測を生成する方法を示しています。
BEGIN DBMS_DATA_MINING.APPLY( model_name => 'nb_sh_clas_sample', data_table_name => 'mining_data_test_v', case_id_column_name => 'cust_id', result_table_name => 'nb_apply_results'); END; /
この文では、コスト・マトリックス表を使用してコンフュージョン・マトリックスが計算されます。 スコア基準列の名前は'PROBABILITY
'です。この列名は、APPLY
で生成される名前です。
DECLARE v_accuracy NUMBER; BEGIN DBMS_DATA_MINING.COMPUTE_CONFUSION_MATRIX ( accuracy => v_accuracy, apply_result_table_name => 'nb_apply_results', target_table_name => 'mining_data_test_v', case_id_column_name => 'cust_id', target_column_name => 'affinity_card', confusion_matrix_table_name => 'nb_confusion_matrix', score_column_name => 'PREDICTION', score_criterion_column_name => 'PROBABILITY', cost_matrix_table_name => 'nb_cost_matrix', apply_result_schema_name => null, target_schema_name => null, cost_matrix_schema_name => null, score_criterion_type => 'COST'); DBMS_OUTPUT.PUT_LINE('**** MODEL ACCURACY ****: ' || ROUND(v_accuracy,4)); END; /
生成されるコンフュージョン・マトリックスは、(263から212に)偽陽性が低下したことを示しています。
**** MODEL ACCURACY ****: .798 SQL> SELECT * FROM nb_confusion_matrix; ACTUAL_TARGET_VALUE PREDICTED_TARGET_VALUE VALUE ------------------- ---------------------- ---------- 1 0 91 0 0 942 1 1 255 0 1 212
埋め込まれたコストに基づくコンフュージョン・マトリックスの計算
ADD_COST_MATRIX
プロシージャを使用すると、モデルにコスト・マトリックスを埋め込むことができます。 埋め込まれたコストは、確率のかわりにスコアリングに使用できます。 次の文は、以前に定義済のコスト・マトリックスをモデルに追加します。
BEGIN DBMS_DATA_MINING.ADD_COST_MATRIX ('nb_sh_clas_sample', 'nb_cost_matrix');END;/
次の文は、埋め込まれたコストを使用してテスト・データにモデルを適用し、結果を表に格納します。
CREATE TABLE nb_apply_results AS SELECT cust_id, PREDICTION(nb_sh_clas_sample COST MODEL USING *) prediction, PREDICTION_COST(nb_sh_clas_sample COST MODEL USING *) cost FROM mining_data_test_v;
埋め込まれたコストを使用してコンフュージョン・マトリックスを計算できます。
DECLARE v_accuracy NUMBER; BEGIN DBMS_DATA_MINING.COMPUTE_CONFUSION_MATRIX ( accuracy => v_accuracy, apply_result_table_name => 'nb_apply_results', target_table_name => 'mining_data_test_v', case_id_column_name => 'cust_id', target_column_name => 'affinity_card', confusion_matrix_table_name => 'nb_confusion_matrix', score_column_name => 'PREDICTION', score_criterion_column_name => 'COST', cost_matrix_table_name => null, apply_result_schema_name => null, target_schema_name => null, cost_matrix_schema_name => null, score_criterion_type => 'COST'); END; /
結果は次のとおりです。
**** MODEL ACCURACY ****: .798 SQL> SELECT * FROM nb_confusion_matrix; ACTUAL_TARGET_VALUE PREDICTED_TARGET_VALUE VALUE ------------------- ---------------------- ---------- 1 0 91 0 0 942 1 1 255 0 1 212
このプロシージャは、リフトを計算し、ユーザーのスキーマにある表に結果を格納します。
リフトは、バイナリ分類モデルに対するテスト指標値です。 リフトを計算するには、ターゲット値のいずれかをポジティブ・クラスに指定する必要があります。 COMPUTE_LIFT
では、一連のテスト・データにおいて、モデルによって生成された予測結果が実際のターゲット値と比較されます。 リフトでは、モデルによるポジティブ・クラスの予測結果が、ランダムに選択した場合と比較してどの程度向上しているかが測定されます。
リフトは、確率(またはコスト)によってランク付けされてクオンタイルに分割されたスコアリング結果に対して計算されます。 各クオンタイルには、同じ数のケースのスコアが含まれます。
COMPUTE_LIFT
では、クオンタイルに基づく累積統計情報が計算されます。 クオンタイルの数およびポジティブ・クラスはユーザーが指定します。 また、COMPUTE_LIFT
は、次の3つの入力ストリームを受け入れます。
テスト・データに対して生成された予測結果。この情報は、次の3つの列で渡されます。
ケースID列
予測列
予測に関連付けられた確率とコストのいずれかが格納されているスコアリング基準列
テスト・データの既知のターゲット値。この情報は、次の2つの列で渡されます。
ケースID列
既知のターゲット値が格納されているターゲット列
(オプション)事前定義された列を持つコスト・マトリックス表。列の要件については、「使用上の注意」を参照してください。
構文
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');
パラメータ
表38-31 COMPUTE_LIFTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
予測結果が含まれる表。 |
|
テスト・データの既知のターゲット値が含まれる表。 |
|
適用結果表のケースID列。ターゲット表のケースIDと一致する必要があります。 |
|
ターゲット表のターゲット列。テスト・データの既知のターゲット値が格納されます。 |
|
リフト統計情報が含まれる表。この表は、このプロシージャによってユーザーのスキーマ内に作成されます。 リフト表の列については、「使用上の注意」を参照してください。 |
|
ポジティブ・クラス。 リフトの計算対象となるクラスです。 ターゲット列が |
|
適用結果表の予測結果が格納される列。 デフォルトの列名は' |
|
適用結果表のスコアリング基準値が格納される列。予測を決定する確率またはコストが格納されます。 デフォルトでは、スコアリングは確率に基づくため、各ケースに対して最も確率の高いクラスが予測されます。スコアリングがコストに基づく場合は、最もコストの低いクラスが予測されます。
デフォルトの列名は' 詳細は、「使用上の注意」を参照してください。 |
|
リフト計算に使用するクオンタイル数。 デフォルトは10です。 |
|
(オプション)分類ミスに関連付けられたコストを定義する表。 コスト・マトリックス表があり、 コスト・マトリックス表の列については、「使用上の注意」を参照してください。 |
|
適用結果表のスキーマ。 NULLの場合、ユーザーのスキーマと想定されます。 |
|
既知のターゲットが含まれている表のスキーマ。 NULLの場合、ユーザーのスキーマと想定されます。 |
|
コスト・マトリックス表のスキーマ(指定されている場合)。 NULLの場合、ユーザーのスキーマと想定されます。 |
|
スコアリング基準として確率またはコストのいずれを使用するか。確率またはコストは、
「使用上の注意」および「例」を参照してください。 |
使用上の注意
COMPUTE_LIFT
に渡す予測情報は、SQLファンクションPREDICTION
、DBMS_DATA_MINING.APPLY
プロシージャまたはその他のメカニズムを使用して生成できます。 プロシージャは、渡すデータが適切な場合にかぎり、リフトを計算できます。
COMPUTE_LIFT
にコスト・マトリックスを渡すかわりに、モデルに関連付けられているスコアリング・コスト・マトリックスを使用できます。スコアリング・コスト・マトリックスは、モデルに埋め込むか、またはモデルの適用時に動的に定義できます。スコアリング・コスト・マトリックスを使用するには、SQLファンクションPREDICTION_COST
を起動して、スコア基準列を移入します。
COMPUTE_LIFT
に渡す予測情報は、apply_results_table_name
で指定した表またはビューに格納されます。
CREATE TABLEapply_result_table_name
AS (case_id_column_name
VARCHAR2, score_column_name VARCHAR2,score_criterion_column_name
VARCHAR2);
コスト・マトリックスには、表38-32に示す列が必要です。
表38-32 コスト・マトリックスの列
列名 | データ型 |
---|---|
|
|
|
|
|
|
関連項目: コスト・マトリックスの詳細は、『Oracle Data Mining概要』を参照してください。 |
COMPUTE_LIFT
で作成される表には、表38-33に示す列があります。
表38-33 リフト表の列
列名 | データ型 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
関連項目: リフト表の詳細は、『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, PREDICTION(nb_sh_clas_sample USING *) prediction, PREDICTION_PROBABILITY(nb_sh_clas_sample USING *) probability FROM mining_data_test_v;
スコアリング基準として確率を使用する場合は、次のようにリフトを計算できます。
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
このプロシージャは、受信者操作特性(ROC)を計算してユーザーのスキーマにある表に結果を格納し、モデルの精度を戻します。
ROCは、バイナリ分類モデルに対するテスト指標値です。 ROCを計算するには、ターゲット値のいずれかをポジティブ・クラスに指定する必要があります。 COMPUTE_ROC
では、一連のテスト・データにおいて、モデルによって生成された予測結果が実際のターゲット値と比較されます。
ROCは、確率しきい値における変化の影響を測定します。 確率しきい値は、モデルが予測に使用する決定ポイントです。 バイナリ分類では、デフォルトの確率しきい値は0.5です。 それぞれのケースに対して、確率が50%を超える値が予測されます。
ROCは、X-Y軸上の曲線として描くことができます。 X軸を偽陽性率にします。 Y軸を真陽性率にします。 偽陽性とは、陰性であるものがテスト・データで陽性と予測されることです。 真陽性とは、陽性であるものがテスト・データで陽性と予測されることです。
COMPUTE_ROC
は、次の2つの入力ストリームを受け入れます。
テスト・データに対して生成された予測結果。この情報は、次の3つの列で渡されます。
ケースID列
予測列
確率が格納されているスコアリング基準列
テスト・データの既知のターゲット値。この情報は、次の2つの列で渡されます。
ケースID列
既知のターゲット値が格納されているターゲット列
構文
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);
パラメータ
表38-34 COMPUTE_ROCプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ROC曲線(AUC)の下部の面積が含まれる出力パラメータ。 AUCによって、実際の陽性が陽性として予測される可能性が測定されます。 AUCが大きいほど、ポジティブ・クラスの予測とネガティブ・クラスの予測の間のトレードオフに対応するモデルの柔軟性が高くなります。 AUCは、あるターゲット・クラスが別のターゲット・クラスと比較して、特定されるのが稀な場合または特定することがより重要な場合に、特に重要となります。 |
|
予測結果が含まれる表。 |
|
テスト・データの既知のターゲット値が含まれる表。 |
|
適用結果表のケースID列。ターゲット表のケースIDと一致する必要があります。 |
|
ターゲット表のターゲット列。テスト・データの既知のターゲット値が格納されます。 |
|
ROC出力が含まれる表。この表は、このプロシージャによってユーザーのスキーマ内に作成されます。 ROC表の列については、「使用上の注意」を参照してください。 |
|
ポジティブ・クラス。 ROCの計算対象となるクラスです。 ターゲット列が |
|
適用結果表の予測結果が格納される列。 デフォルトの列名は' |
|
適用結果表のスコアリング基準値が格納される列。 予測を決定する確率が格納されます。 デフォルトの列名は' |
|
適用結果表のスキーマ。 NULLの場合、ユーザーのスキーマと想定されます。 |
|
既知のターゲットが含まれている表のスキーマ。 NULLの場合、ユーザーのスキーマと想定されます。 |
使用上の注意
COMPUTE_ROC
に渡す予測情報は、SQLファンクションPREDICTION
、DBMS_DATA_MINING.APPLY
プロシージャまたはその他のメカニズムを使用して生成できます。 プロシージャは、渡すデータが適切な場合にかぎり、受信者操作特性を計算できます。
COMPUTE_ROC
に渡す予測情報は、apply_results_table_name
で指定した表またはビューに格納されます。
CREATE TABLEapply_result_table_name
AS (case_id_column_name
VARCHAR2, score_column_name VARCHAR2,score_criterion_column_name
VARCHAR2);
COMPUTE_ROC
で作成される表には、表38-35に示す列があります。
表38-35 COMPUTE_ROCの出力
列 | データ型 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
関連項目: COMPUTE_ROC の出力の詳細は、『Oracle Data Mining概要』を参照してください。 |
ROCは、通常、最適な確率しきい値を決定するために使用されます。 最適な確立しきい値を決定するには、真陽性率と偽陽性率を調べます。 真陽性率とは、陽性であるものが、テスト・データで正しく陽性と予測される割合のことです。 偽陽性率とは、陰性であるものが、テスト・データで誤って陽性と予測される割合のことです。
確率しきい値を指定すると、次の文では、適用結果表内の陽性の予測が確率順に戻されます。
SELECT case_id_column_name FROM apply_result_table_name WHEREprobability
>probability_threshold
ORDER BYprobability
DESC;
最適な確率しきい値を特定するには、2つの方法があります。 どちらの方法を採用するかは、ポジティブ・クラスとネガティブ・クラスを誤って予測した場合の相対コストがわかっているかどうかで決まります。
コストがわかっている場合は、相対コストをROC表に適用して、コストが最小になる確率しきい値を計算します。 たとえば、相対コスト比率が20(ポジティブ・クラスの誤りコスト/ネガティブ・クラスの誤りコスト=20)の場合は、次のような問合せを実行します。
WITHcost
AS ( SELECTprobability_threshold
, 20 *false_negatives
+false_positives
cost
FROMROC_table
GROUP BYprobability_threshold
),minCost
AS ( SELECT min(cost
)minCost
FROMcost
) SELECT max(probability_threshold
)probability_threshold FROMcost
,minCost
WHEREcost
=minCost
;
相対コストが明確にわかっていない場合は、ROC表の値を確率しきい値の昇順に並べ替えて表示し、表示されたトレードオフ(誤って分類されたポジティブ・クラスとネガティブ・クラスの比率)のうち、どのトレードオフ値が最適であるのかを判断できます。
SELECT * FROMROC_table
ORDER BYprobability_threshold
;
例
ここに示す例では、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;
テスト・データの予測値とターゲット値を使用して、次のようにROCを計算できます。
DECLARE v_area_under_curve NUMBER; BEGIN DBMS_DATA_MINING.COMPUTE_ROC ( roc_area_under_curve => v_area_under_curve, apply_result_table_name => 'nb_apply_results', target_table_name => 'mining_data_test_v', case_id_column_name => 'cust_id', target_column_name => 'affinity_card', roc_table_name => 'nb_roc', positive_target_value => '1', score_column_name => 'PREDICTION', score_criterion_column_name => 'PROBABILITY'); DBMS_OUTPUT.PUT_LINE('**** AREA UNDER ROC CURVE ****: ' || ROUND(v_area_under_curve,4)); END; /
生成されるAUCおよび選択されたROC表の列は、次のように表示されます。
**** AREA UNDER ROC CURVE ****: .8212 SQL> SELECT probability, true_positive_fraction, false_positive_fraction FROM nb_roc; PROBABILITY TRUE_POSITIVE_FRACTION FALSE_POSITIVE_FRACTION ----------- ---------------------- ----------------------- .00000 1 1 .50018 .826589595 .227902946 .53851 .823699422 .221837088 .54991 .820809249 .217504333 .55628 .815028902 .215771231 .55628 .817919075 .215771231 .57563 .800578035 .214904679 .57563 .812138728 .214904679 . . . . . . . . .
このプロシージャは、特定のマイニング機能を持つマイニング・モデルを作成します。
xform_list
をCREATE_MODEL
に渡すと、入力データで実行される変換のリストを指定できます。 PREP_AUTO
設定を有効にすると、自動変換に加えてその変換が使用されます。 PREP_AUTO
設定を無効にすると、指定した変換のみがモデルで実装されます。 いずれの場合も、変換定義はモデルに埋め込まれ、モデルが適用されるたびに自動的に実行されます。 「自動データ準備」を参照してください。
構文
DBMS_DATA_MINING.CREATE_MODEL ( model_name IN VARCHAR2, mining_function IN VARCHAR2, data_table_name IN VARCHAR2, case_id_column_name IN VARCHAR2, target_column_name IN VARCHAR2 DEFAULT NULL, settings_table_name IN VARCHAR2 DEFAULT NULL, data_schema_name IN VARCHAR2 DEFAULT NULL, settings_schema_name IN VARCHAR2 DEFAULT NULL, xform_list IN TRANSFORM_LIST DEFAULT NULL);
パラメータ
表38-36 CREATE_MODELプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。「マイニング・モデルのネーミングにおける制限」も参照してください。 |
|
マイニング機能。 この値のリストについては、表38-2「マイニング機能」を参照してください。 |
|
作成データが含まれる表またはビュー。 |
|
作成データのケースID列。 |
|
監視ありモデルの場合は、作成データのターゲット列。 監視なしモデルの場合は、 |
|
モデルの作成設定が含まれる表。 設定表がない(デフォルトの設定のみが使用されている)場合は、 |
|
作成データに適用されるスキーマ。 |
|
設定表に適用されるスキーマ。 |
|
自動変換に加えて、または自動変換のかわりに使用される変換のリスト。これは、 データ型は TYPE TRANFORM_REC IS RECORD ( attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), expression EXPRESSION_REC, reverse_expression EXPRESSION_REC, attribute_spec VARCHAR2(4000)); 各
ネストした属性の個々のサブ名に対しては、値' |
使用上の注意
次のデータ・ディクショナリ・ビューを問い合せると、モデルに関する情報を取得できます。
ALL_MINING_MODELS
ALL_MINING_MODEL_ATTRIBUTES
ALL_MINING_MODEL_SETTINGS
ユーザー独自のスキーマのモデルに関する情報のみを取得するには、ALL
のかわりにUSER
接頭辞を指定します。
関連項目: データ・ディクショナリ・ビューの詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。 |
例
最初の例では、サポート・ベクター・マシン・アルゴリズムを使用して分類モデルを作成します。
-- Create the settings table CREATE TABLE svm_model_settings ( setting_name VARCHAR2(30), setting_value VARCHAR2(30)); -- Populate the settings table -- Specify SVM. By default, Naive Bayes is used for classification. -- Specify ADP. By default, ADP is not used. BEGIN INSERT INTO svm_model_settings (setting_name, setting_value) VALUES (dbms_data_mining.algo_name, dbms_data_mining.algo_support_vector_machines); INSERT INTO svm_model_settings (setting_name, setting_value) VALUES (dbms_data_mining.prep_auto,dbms_data_mining.prep_auto_on); COMMIT; END; / -- Create the model using the specified settings BEGIN DBMS_DATA_MINING.CREATE_MODEL( model_name => 'svm_model', mining_function => dbms_data_mining.classification, data_table_name => 'mining_data_build_v', case_id_column_name => 'cust_id', target_column_name => 'affinity_card', settings_table_name => 'svm_model_settings'); END; /
モデル設定は、次の問合せで表示できます。
SELECT * FROM user_mining_model_settings WHERE model_name IN 'SVM_MODEL'; MODEL_NAME SETTING_NAME SETTING_VALUE SETTING ------------- ---------------------- ----------------------------- ------- SVM_MODEL ALGO_NAME ALGO_SUPPORT_VECTOR_MACHINES INPUT SVM_MODEL SVMS_KERNEL_CACHE_SIZE 50000000 DEFAULT SVM_MODEL SVMS_ACTIVE_LEARNING SVMS_AL_ENABLE DEFAULT SVM_MODEL SVMS_STD_DEV 3.004524 DEFAULT SVM_MODEL PREP_AUTO ON INPUT SVM_MODEL SVMS_COMPLEXITY_FACTOR 1.887389 DEFAULT SVM_MODEL SVMS_KERNEL_FUNCTION SVMS_GAUSSIAN DEFAULT SVM_MODEL SVMS_CONV_TOLERANCE .001 DEFAULT
次の例では、異常検出モデルを作成します。 異常検出では、ターゲットなしでSVM分類が使用されます。 この例では、最初の例でSVM分類モデル用に作成した設定表と同じ設定表を使用します。
BEGIN DBMS_DATA_MINING.CREATE_MODEL( model_name => 'anomaly_detect_model', mining_function => dbms_data_mining.classification, data_table_name => 'mining_data_build_v', case_id_column_name => 'cust_id', target_column_name => null, settings_table_name => 'svm_model_settings'); END; /
この問合せは、これらの例で作成されたモデルが、スキーマで唯一のモデルであることを示しています。
SELECT model_name, mining_function, algorithm FROM user_mining_models; MODEL_NAME MINING_FUNCTION ALGORITHM ---------------------- -------------------- ------------------------------ SVM_MODEL CLASSIFICATION SUPPORT_VECTOR_MACHINES ANOMALY_DETECT_MODEL CLASSIFICATION SUPPORT_VECTOR_MACHINES
この問合せは、ターゲットがあるのはこのSVM分類モデルのみであることを示しています。
SELECT model_name, attribute_name, attribute_type, target FROM user_mining_model_attributes WHERE target = 'YES'; MODEL_NAME ATTRIBUTE_NAME ATTRIBUTE_TYPE TARGET ------------------ --------------- ----------------- ------ SVM_MODEL AFFINITY_CARD CATEGORICAL YES
このプロシージャは、既存のマイニング・モデルを削除します。
構文
DBMS_DATA_MINING.DROP_MODEL (model_name IN VARCHAR2);
パラメータ
表38-37 DROP_MODELプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
使用上の注意
ただし、APPLY
でモデルを使用しているときに、そのモデルを削除すると、DROP
操作は成功しますが、APPLY
からは不確定な結果が戻されます。
例
census_model
というモデルがあるとします。次の例は、このモデルの削除方法を示しています。
BEGIN DBMS_DATA_MINING.DROP_MODEL(model_name => 'census_model'); END; /
このプロシージャは、指定されたデータ・マイニング・モデルをダンプ・ファイル・セットにエクスポートします。 ダンプ・ファイル・セットからのインポートは、IMPORT_MODEL
プロシージャを使用して行うことができます。 IMPORT_MODEL
とEXPORT_MODEL
の両方で、Oracle Data Pumpテクノロジが使用されています。
関連項目: モデルのエクスポートおよびインポートの詳細は、『Oracle Data Mining管理者ガイド』を参照してください。 |
構文
DBMS_DATA_MINING.EXPORT_MODEL ( filename IN VARCHAR2, directory IN VARCHAR2, model_filter IN VARCHAR2 DEFAULT NULL, filesize IN VARCHAR2 DEFAULT NULL, operation IN VARCHAR2 DEFAULT NULL, remote_link IN VARCHAR2 DEFAULT NULL, jobname IN VARCHAR2 DEFAULT NULL);
パラメータ
表38-38 EXPORT_MODELプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
モデルのエクスポート先のダンプ・ファイル・セットの名前。この名前は、スキーマ内で一意である必要があります。 ダンプ・ファイル・セットには1つ以上のファイルを保存できます。ファイルの個数は、エクスポートするモデルのサイズ(メタデータとデータの両方)および指定した(または推定された)最大ファイル・サイズによって決まります。ファイル・サイズは、 エクスポート操作が正常に終了すると、ダンプ・ファイル・セット内にファイルが1つしか存在しない場合でも、ダンプ・ファイル・セットの名前が自動的に |
|
ダンプ・ファイル・セットの作成場所を指定する、事前定義済のディレクトリ・オブジェクトの名前。 このディレクトリ・オブジェクト、およびこのディレクトリ・オブジェクトによって指定されるファイル・システム・ディレクトリに対する読取り/書込み権限が必要です。 |
|
エクスポートするモデルを指定するパラメータ(オプション)。 マイニング機能またはアルゴリズムに基づいて、モデルの名前およびグループ別に個々のモデルをエクスポートできます。たとえば、すべての回帰モデルまたはすべてのNaive Bayesモデルをエクスポートできます。 例は、表38-39を参照してください。 |
|
ダンプ・ファイル・セット内のファイルの最大サイズを指定するパラメータ(オプション)。サイズは、バイト単位、キロバイト単位(KB)、メガバイト単位(MB)、ギガバイト単位(GB)で指定可能です。デフォルトのサイズは50MBです。 エクスポートするモデルのサイズが |
|
ダンプ・ファイル・セット内のファイルのサイズを推定するかどうかを指定するパラメータ(オプション)。デフォルトでは、ファイルのサイズは推定されず、
|
|
このリリースでは使用されないパラメータ(オプション)。 |
|
エクスポート・ジョブの名前を指定するパラメータ(オプション)。 デフォルトでは、 ジョブ名を指定する場合は、スキーマ内で一意の名前を指定する必要があります。ジョブ名の最大長は30文字です。 エクスポート・ジョブのログ・ファイルが、 |
使用上の注意
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)
マイニング・モデルのデータ・ディクショナリ・ビューの詳細は、「マイニング・モデルのオブジェクト」を参照してください。
表38-39に、モデル・フィルタの例を示します。
表38-39 モデル・フィルタ・パラメータのサンプル値
サンプル値 | 意味 |
---|---|
|
|
|
|
|
|
|
すべてのNaive Bayesモデルをエクスポートします。 アルゴリズム名のリストについては、表38-4を参照してください。 |
|
すべての分類モデルをエクスポートします。マイニング機能のリストについては、表38-2を参照してください。 |
例
次の文では、DMUSER3
スキーマ内のすべてのモデルが、$ORACLE_HOME/rdbms/log
ディレクトリのmodels_out
というダンプ・ファイル・セットにエクスポートされます。 このディレクトリは、DATA_PUMP_DIR
というディレクトリ・オブジェクトにマップされています。DMUSER3
ユーザーには、このディレクトリおよびディレクトリ・オブジェクトへの読取り/書込みアクセス権があります。
SQL>execute dbms_data_mining.export_model ('models_out', 'DATA_PUMP_DIR');
SQL*Plusを終了し、作成されたダンプ・ファイルおよびログ・ファイルを表示できます。
SQL>exit >cd $ORACLE_HOME/rdbms/log >ls >DMUSER3_exp_1027.log models_out01.dmp
次の例は、同じディレクトリ・オブジェクトを使用し、同じユーザーによって実行されます。 NMF_SH_SAMPLE
というモデルおよびSVMR_SH_REGR_SAMPLE
というモデルが、同じディレクトリ内の別々のダンプ・ファイル・セットにエクスポートされます。
SQL>execute dbms_data_mining.export_model ( 'models2_out', 'DATA_PUMP_DIR', 'name in (''NMF_SH_SAMPLE'', ''SVMR_SH_REGR_SAMPLE'')'); SQL>exit >cd $ORACLE_HOME/rdbms/log >ls >DMUSER3_exp_1027.log models_out01.dmp DMUSER3_exp_924.log models2_out01.dmp
このテーブル・ファンクションは、ルールを表す行の集合を相関モデルから戻します。
フィルタ条件を指定して、ルールのサブセットをGET_ASSOCIATION_RULES
から戻すことができます。このテーブル・ファンクションのパフォーマンスは、フィルタ条件によって向上させることができます。ルールの数が多い場合は、topn
パラメータを指定するとパフォーマンスが最適化されます。
構文
DBMS_DATA_MINING.GET_ASSOCIATION_RULES ( model_name IN VARCHAR2, topn IN NUMBER DEFAULT NULL, rule_id IN INTEGER DEFAULT NULL, min_confidence IN NUMBER DEFAULT NULL, min_support IN NUMBER DEFAULT NULL, max_rule_length IN INTEGER DEFAULT NULL, min_rule_length IN INTEGER DEFAULT NULL, sort_order IN ORA_MINING_VARCHAR2_NT DEFAULT NULL, antecedent_items IN DM_ITEMS DEFAULT NULL, consequent_items IN DM_ITEMS DEFAULT NULL, min_lift IN NUMBER DEFAULT NULL) RETURN DM_RULES PIPELINED;
パラメータ
表38-40 GET_ASSOCIATION_RULESファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 これは、 |
|
まず信頼度、次に支持度に基づいて降順でルールを並べ、上位n個のルールを戻します。ソート順序を指定すると、そのソートの実行後に上位n個のルールが導出されます。
|
|
戻すルールの識別子。 |
|
この数値以上の信頼度を持つルールを戻します。 |
|
この数値以上の支持値を持つルールを戻します。 |
|
この数値以下の長さを持つルールを戻します。 ルールの長さとは、ルール内の項目数のことです(表38-41の「
|
|
この数値以上の長さを持つルールを戻します。 ルールの長さについては、「
|
|
戻される1つ以上の列の値に基づいてルールをソートします。列名の後に たとえば、結果セットを、まず
デフォルトでは、結果は、まず信頼度に基づいて降順でソートされ、次に支持度に基づいて降順でソートされます。 詳細は、例を参照してください。 |
|
これらの項目が前件にあるルールを戻します。詳細は、例を参照してください。 |
|
この項目が後件にあるルールを戻します。詳細は、例を参照してください。 |
|
この数値以上のリフトを持つルールを戻します。 |
戻り値
表38-41 GET_ASSOCIATION RULESファンクションの戻り値
戻り値 | 説明 |
---|---|
|
(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 ) |
(attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), conditional_operator CHAR(2)/*=,<>,<,>,<=,>=*/, attribute_num_value NUMBER, attribute_str_value VARCHAR2(4000), attribute_support NUMBER, attribute_confidence NUMBER) |
使用上の注意
このテーブル・ファンクションは、DM_RULES
型の行をパイプライン出力します。データ・マイニングのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。
ORA_MINING_VARCHAR2_NT
型は、VARCHAR2(4000)
の表として定義されます。
例
次の例では、相関モデルを作成した後、テーブル・ファンクションGET_ASSOCIATION_RULES
を数回コールしています。
-- prepare a settings table to override default settings CREATE TABLE market_settings AS SELECT * FROM TABLE(DBMS_DATA_MINING.GET_DEFAULT_SETTINGS) WHERE setting_name LIKE 'ASSO_%'; BEGIN -- update the value of the minimum confidence UPDATE census_settings SET setting_value = TO_CHAR(0.081) WHERE setting_name = DBMS_DATA_MINING.asso_min_confidence; -- build an AR model DBMS_DATA_MINING.CREATE_MODEL( model_name => 'market_model', function => DBMS_DATA_MINING.ASSOCIATION, data_table_name => 'market_build', case_id_column_name => 'item_id', target_column_name => NULL, settings_table_name => 'census_settings'); END; / -- View the (unformatted) rules SELECT rule_id, antecedent, consequent, rule_support, rule_confidence FROM TABLE(DBMS_DATA_MINING.GET_ASSOCIATION_RULES('market_model'));
前述の例では、すべてのルールが表示されます。上位20個のルールのみを表示するには、次の文を使用します。
-- View the top 20 (unformatted) rules SELECT rule_id, antecedent, consequent, rule_support, rule_confidence FROM TABLE(DBMS_DATA_MINING.GET_ASSOCIATION_RULES('market_model', 20));
次の例では、前件に'AQUATIC
'または'EGGS
'があり、後件が'VENOMOUS
'であるすべてのルールが戻されます。 ルールは、まずNUMBER_OF_ITEMS
、次にRULE_CONFIDENCE
、最後にRULE_SUPPORT
に基づいて降順でソートされます。
SELECT * FROM TABLE ( DBMS_DATA_MINING.GET_ASSOCIATION_RULES ('AR_Model_31', 120, NULL, 1, .51, 7, ORA_MINING_VARCHAR2_NT ('NUMBER_OF_ITEMS DESC', 'RULE_CONFIDENCE DESC', 'RULE_SUPPORT DESC'), ORA_MINING_VARCHAR2_NT('AQUATIC', 'EGGS'), ORA_MINING_VARCHAR2_NT('VENOMOUS')));
GET_DEFAULT_SETTINGS
ファンクションは、11gリリース1(11.1)では非推奨になっています。このファンクションは、データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS
に置き換えられています。このビューのUSER_
、ALL_
およびDBA_
の各バージョンを使用できます。 『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
新しいアプリケーションでは、これらのプロシージャを使用しないことをお薦めします。これらのプロシージャは、下位互換性を維持する目的のみでサポートされています。
このテーブル・ファンクションは、DBMS_DATA_MINING
パッケージでサポートされるすべてのマイニング機能とマイニング・アルゴリズムのデフォルト設定を戻します。
構文
DBMS_DATA_MINING.GET_DEFAULT_SETTINGS RETURN DM_MODEL_SETTINGS PIPELINED;
戻り値
表38-42 GET_DEFAULT_SETTINGSファンクションの戻り値
戻り値 | 説明 |
---|---|
|
(setting_name VARCHAR2(30), setting_value VARCHAR2(128)) |
使用上の注意
このテーブル・ファンクションは、DM_MODEL_SETTING
型の行をパイプライン出力します。データ・マイニングのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。
特定の機能やアルゴリズムで使用される設定がわからないときに、それらの設定の全部または一部を変更する場合は、このファンクションが特に便利です。
例
たとえば、k-Meansクラスタリングのすべての設定または一部の設定を変更する場合は、次の例のような設定表を作成し、必要に応じて個々の設定を更新します。
BEGIN CREATE TABLE mysettings AS SELECT * FROM TABLE(DBMS_DATA_MINING.GET_DEFAULT_SETTINGS) WHERE setting_name LIKE 'KMNS%'; -- now update individual settings as required UPDATE mysettings SET setting_value = 0.02 WHERE setting_name = DBMS_DATA_MINING.KMNS_MIN_PCT_ATTR_SUPPORT; END; /
このテーブル・ファンクションは、高頻度項目セットを表す行の集合を相関モデルから戻します。 高頻度項目セットの説明は、『Oracle Data Mining概要』を参照してください。
構文
DBMS_DATA_MINING.GET_FREQUENT_ITEMSETS ( model_name IN VARCHAR2, topn IN NUMBER DEFAULT NULL, max_itemset_length IN NUMBER DEFAULT NULL) RETURN DM_ITEMSETS PIPELINED;
パラメータ
表38-43 GET_FREQUENT_ITEMSETSファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
|
|
|
項目セットの最大長。 |
戻り値
表38-44 GET_FREQUENT_ITEMSETSファンクションの戻り値
戻り値 | 説明 |
---|---|
|
(itemsets_id NUMBER, items DM_ITEMS, support NUMBER, number_of_items NUMBER)
(attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), attribute_num_value NUMBER, attribute_str_value VARCHAR2(4000)) |
使用上の注意
このテーブル・ファンクションは、DM_ITEMSETS
型の行をパイプライン出力します。データ・マイニングのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。
例
この例では、相関モデルを作成した後、Oracle SQLからテーブル・ファンクションGET_FREQUENT_ITEMSETS
をコールする方法を示します。
-- prepare a settings table to override default settings CREATE TABLE market_settings AS
SELECT *
FROM TABLE(DBMS_DATA_MINING.GET_DEFAULT_SETTINGS) WHERE setting_name LIKE 'ASSO_%'; BEGIN -- update the value of the minimum confidence UPDATE market_settings SET setting_value = TO_CHAR(0.081) WHERE setting_name = DBMS_DATA_MINING.asso_min_confidence; /* build a AR model */ DBMS_DATA_MINING.CREATE_MODEL( model_name => 'market_model', function => DBMS_DATA_MINING.ASSOCIATION, data_table_name => 'market_build', case_id_column_name => 'item_id', target_column_name => NULL, settings_table_name => 'census_settings'); END; / -- View the (unformatted) Itemsets from SQL*Plus SELECT itemset_id, items, support, number_of_items FROM TABLE(DBMS_DATA_MINING.GET_FREQUENT_ITEMSETS('market_model'));
前述の例では、すべての項目セットが表示されます。上位20個の項目セットのみを表示するには、次の文を使用します。
-- View the top 20 (unformatted) Itemsets from SQL*Plus SELECT itemset_id, items, support, number_of_items FROM TABLE(DBMS_DATA_MINING.GET_FREQUENT_ITEMSETS('market_model', 20));
このファンクションは、指定したモデルに関連付けられたデフォルトのスコアリング・マトリックスの行を戻します。
デフォルトでは、このファンクションは、ADD_COST_MATRIX
プロシージャを使用してモデルに追加されたスコアリング・マトリックスを戻します。 モデルの作成に使用されるコスト・マトリックスを取得する場合は、matrix_type
にcost_matrix_type_create
を指定します。 詳細は、表38-45を参照してください。
「ADD_COST_MATRIXプロシージャ」も参照してください。
構文
DBMS_DATA_MINING.GET_MODEL_COST_MATRIX ( model_name IN VARCHAR2, matrix_type IN VARCHAR2 DEFAULT cost_matrix_type_score) RETURN DM_COST_MATRIX PIPELINED;
パラメータ
表38-45 GET_MODEL_COST_MATRIXファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
|
コスト・マトリックスのタイプ。
|
戻り値
表38-46 GET_MODEL_COST_MATRIXファンクションの戻り値
戻り値 | 説明 |
---|---|
|
actual VARCHAR2(4000), predicted VARCHAR2(4000), cost NUMBER) |
使用上の注意
コスト・マトリックスを使用して作成できるのは、ディシジョン・ツリー・モデルのみです。 コスト・マトリックスを使用してディシジョン・ツリー・モデルを作成する場合、モデルの設定表のCLAS_COST_TABLE_NAME
設定にコスト・マトリックス表の名前を指定します。表38-7「マイニング機能の設定」を参照してください。
ディシジョン・ツリー・モデルを作成する場合に使用するコスト・マトリックスは、そのモデルに対するデフォルトのスコアリング・マトリックスになります。 スコアリング用に異なるコストを指定する場合は、コスト・マトリックス表の値を変更するか、またはREMOVE_COST_MATRIX
プロシージャを使用してコスト・マトリックスを削除し、ADD_COST_MATRIX
プロシージャを使用して新規コスト・マトリックスを追加できます。
例
この例では、Naive BayesモデルNB_SH_CLAS_SAMPLE
に関連付けられたスコアリング・コスト・マトリックスを戻します。
column actual format a10 column predicted format a10 SELECT * FROM TABLE(dbms_data_mining.get_model_cost_matrix('nb_sh_clas_sample')) ORDER BY predicted, actual; ACTUAL PREDICTED COST ---------- ---------- ----- 0 0 .00 1 0 .75 0 1 .25 1 1 .00
Adaptive Bayes NetworkアルゴリズムおよびABN
アルゴリズムは、11gリリース1(11.1)では非推奨になっています。
新しいアプリケーションでは、これらのプロシージャを使用しないことをお薦めします。これらのプロシージャは、下位互換性を維持する目的のみでサポートされています。
このテーブル・ファンクションは、Adaptive Bayes Networkモデルのディテールを表す行の集合を戻します。
構文
DBMS_DATA_MINING.GET_MODEL_DETAILS_ABN ( model_name IN VARCHAR2) RETURN DM_ABN_DETAILS PIPELINED;
パラメータ
表38-47 GET_MODEL_DETAILS_ABNファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
戻り値
表38-48 GET_MODEL_DETAILS_ABNファンクションの戻り値
戻り値 | 説明 |
---|---|
|
(rule_id INTEGER, antecedent DM_PREDICATES, consequent DM_PREDICATES, rule_support NUMBER) |
(attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), conditional_operator CHAR(2), /*=,<>,<,>,<=,>=*/ attribute_num_value NUMBER, attribute_str_value VARCHAR2(4000), attribute_support NUMBER, attribute_confidence NUMBER) |
使用上の注意
このテーブル・ファンクションは、DM_ABN_DETAIL
型の行をパイプライン出力します。データ・マイニングのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。
このファンクションは、単一機能ABNモデルのみのディテールを戻します。
例
この例では、ABNモデルを作成した後、Oracle SQLからテーブル・ファンクションGET_MODEL_DETAILS_ABN
をコールする方法を示します。
BEGIN -- prepare a settings table to override default algorithm and model type CREATE TABLE abn_settings (setting_name VARCHAR2(30), setting_value VARCHAR2(128)); INSERT INTO abn_settings VALUES (DBMS_DATA_MINING.ALGO_NAME, DBMS_DATA_MINING.ALGO_ADAPTIVE_BAYES_NETWORK); INSERT INTO abn_settings VALUES (DBMS_DATA_MINING.ABNS_MODEL_TYPE, DBMS_DATA_MINING.ABNS_SINGLE_FEATURE); COMMIT; -- create a model DBMS_DATA_MINING.CREATE_MODEL ( model_name => 'abn_model', function => DBMS_DATA_MINING.CLASSIFICATION, data_table_name => 'abn_build', case_id_column_name => 'id', target_column_name => NULL, settings_table_name => 'abn_settings'); END; / -- View the (unformatted) results from SQL*Plus SELECT * FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_ABN('abn_model'));
このテーブル・ファンクションは、属性評価モデルのディテールを表す行の集合を戻します。
構文
DBMS_DATA_MINING.GET_MODEL_DETAILS_AI ( model_name IN VARCHAR2) RETURN DM_RANKED_ATTRIBUTES PIPELINED;
パラメータ
表38-49 GET_MODEL_DETAILS_AIファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
戻り値
表38-50 GET_MODEL_DETAILS_AIファンクションの戻り値
戻り値 | 説明 |
---|---|
|
(attribute_name VARCHAR2(4000, attribute_subname VARCHAR2(4000), importance_value NUMBER, rank NUMBER(38)) |
このテーブル・ファンクションは、一般化線形モデルの係数統計を戻します。
線形回帰とロジスティック回帰の両方に対して同じ統計セットが戻されますが、マイニング機能に適用されない統計はNULL
として戻されます。詳細は、「使用上の注意」を参照してください。
構文
DBMS_DATA_MINING.GET_MODEL_DETAILS_GLM ( model_name VARCHAR2) RETURN DM_GLM_COEFF_SET PIPELINED;
パラメータ
表38-51 GET_MODEL_DETAILS_GLMファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
戻り値
表38-52 GET_MODEL_DETAILS_GLMの戻り値
戻り値 | 説明 |
---|---|
|
(class VARCHAR2(4000), attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), attribute_value VARCHAR2(4000), coefficient NUMBER, std_error NUMBER, test_statistic NUMBER, p_value NUMBER, VIF NUMBER, std_coefficient NUMBER, lower_coeff_limit NUMBER, upper_coeff_limit NUMBER, exp_coefficient BINARY_DOUBLE, exp_lower_coeff_limit BINARY_DOUBLE, exp_upper_coeff_limit BINARY_DOUBLE) |
GET_MODEL_DETAILS_GLM
は、属性ごとの統計の行および切片用の追加の1行(属性名のNULL値で識別されます)を戻します。 各行のデータ型は、DM_GLM_COEFF
です。 統計については、表38-53で説明します。
表38-53 DM_GLM_COEFFデータ型の説明
列 | 説明 |
---|---|
|
ロジスティック回帰の非参照ターゲット・クラス。このモデルは、このクラスの確率を予測するために作成されます。 その他のクラス(参照クラス)は、モデル設定 線形回帰の場合、 |
|
サブ名がない場合は属性名、サブ名がある場合は属性名の最初の部分。 切片の場合、 |
|
ネストした表の属性の名前。ネストした属性のフルネームの形式は、次のとおりです。
ここで、 属性がネストしていない場合、 |
|
属性の値(質的属性のみ)。 量的属性の場合、 |
|
線形係数推定値。 |
|
係数推定値の標準誤差。 |
|
線形回帰の場合、係数推定値のt値。 ロジスティック回帰の場合、係数推定値のWaldカイ二乗値。 |
|
|
|
分散拡大要因。切片の場合、この値はゼロです。ロジスティック回帰の場合、 |
|
係数の標準化推定値。 |
|
係数の信頼限界値の下限。 |
|
係数の信頼限界値の上限。 |
|
ロジスティック回帰の指数係数。 線形回帰の場合、 |
|
ロジスティック回帰の場合、係数の信頼限界値の下限に対する指数係数。線形回帰の場合、 |
|
ロジスティック回帰の場合、係数の信頼限界値の指数係数。線形回帰の場合、 |
使用上の注意
各係数に対して、必ずしもすべての統計が戻されるわけではありません。次の場合、統計はNULLになります。
マイニング機能に適用されない場合。 たとえば、exp_coefficient
は線形回帰には適用されません。
理論上、計算できない場合。たとえば、リッジ回帰が有効な場合、VIF(有効な場合)以外の統計を含めずに係数の値が戻されます。 (リッジ回帰の詳細は、表38-11「GLMの設定」を参照してください。)
システム・リソースの制限が原因で計算できない場合。
値が無限大になる可能性がある場合。
このテーブル・ファンクションは、モデル全体に関する統計を戻します。グローバルな詳細は、GLMおよび相関ルールで使用できます。
線形回帰およびロジスティック回帰では、グローバルな詳細が別々に戻されます。リッジ回帰が有効な場合、戻されるグローバルな詳細がより少なくなります。 リッジ回帰の詳細は、表38-11「GLMの設定」を参照してください。
構文
DBMS_DATA_MINING.GET_MODEL_DETAILS_GLOBAL ( model_name IN VARCHAR2) RETURN DM_MODEL_GLOBAL_DETAILS PIPELINED;
パラメータ
表38-54 GET_MODEL_DETAILS_GLOBALファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
戻り値
表38-55 GET_MODEL_DETAILS_GLOBALファンクションの戻り値
戻り値 | 説明 |
---|---|
|
(global_detail_name VARCHAR2(30), global_detail_value NUMBER) |
GLMのグローバルな詳細: 線形回帰
表38-56 線形回帰のグローバルな詳細
GLOBAL_DETAIL_NAME | 説明 |
---|---|
|
モデルの自由度。 |
|
モデルの平方和。 |
|
モデルの平均平方。 |
|
モデルのF値の統計。 |
|
モデルのF値の確率。 |
|
誤差の自由度。 |
|
誤差の平方和。 |
|
誤差の平均平方。 |
|
修正された総自由度。 |
|
修正された総平方和。 |
|
2乗平均平方根誤差。 |
|
依存平均。 |
|
変動係数。 |
|
R2乗。 |
|
調整済R2乗。 |
|
赤池情報量基準。 |
|
Schwarzのベイズ情報量基準。 |
|
予測の推定平均平方誤差。多変量正規性を想定しています。 |
|
HockingのSp統計。 |
|
JP統計(最終予測誤差)。 |
|
パラメータ数(切片を含む係数の数)。 |
|
行数。 |
|
モデルが収束したかどうか。収束した場合、値は |
|
有効な共分散行列。共分散行列が計算された場合、値は |
GLMのグローバルな詳細: ロジスティック回帰
表38-57 ロジスティック回帰のグローバルな詳細
GLOBAL_DETAIL_NAME | 説明 |
---|---|
|
切片のみのモデルの適合度に関する赤池の基準。 |
|
切片および共変量(予測子)モデルの適合度に関する赤池の基準。 |
|
切片のみのモデルの適合度に関するSchwarzの基準。 |
|
切片および共変量(予測子)モデルの適合度に関するSchwarzの基準。 |
|
切片のみのモデルの-2対数尤度。 |
|
モデルの-2対数尤度。 |
|
尤度比の自由度。 |
|
尤度比のカイ二乗値。 |
|
尤度比のカイ二乗確率値。 |
|
擬似R二乗(Cox&Snell) |
|
擬似R二乗(Nagelkerke) |
|
依存平均。 |
|
正確な予測の割合。 |
|
不正確に予測された行の割合。 |
|
両方のクラスの確率が同じケースの割合。 |
|
パラメータ数(切片を含む係数の数)。 |
|
行数。 |
|
モデルが収束したかどうか。収束した場合、値は |
|
有効な共分散行列。共分散行列が計算された場合、値は |
相関ルールのグローバルな詳細
単一のグローバルな詳細は、相関モデルによって生成されます。
このテーブル・ファンクションは、k-Meansクラスタリング・モデルのディテールを表す行の集合を戻します。
モデルに関する特定の情報を要求するようにGET_MODEL_DETAILS_KM
の入力を指定すると、問合せのパフォーマンスが向上します。 フィルタ・パラメータを指定しない場合、GET_MODEL_DETAILS_KM
はモデルに関するすべての情報を戻します。
構文
DBMS_DATA_MINING.GET_MODEL_DETAILS_KM ( model_name VARCHAR2, cluster_id NUMBER DEFAULT NULL, attribute VARCHAR2 DEFAULT NULL, centroid NUMBER DEFAULT 1, histogram NUMBER DEFAULT 1, rules NUMBER DEFAULT 2, attribute_subname VARCHAR2 DEFAULT NULL) RETURN DM_CLUSTERS PIPELINED;
パラメータ
表38-59 GET_MODEL_DETAILS_KMファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
|
モデル内のクラスタのID。指定したクラスタIDが有効な場合、そのクラスタのディテールのみが戻されます。そうでない場合は、すべてのクラスタのディテールが戻されます。 |
|
属性の名前。指定した属性名が有効な場合、その属性のディテールのみが戻されます。そうでない場合は、すべての属性のディテールが戻されます。 |
|
次の値を指定できます。
|
|
次の値を指定できます。
|
|
次の値を指定できます。
|
戻り値
表38-60 GET_MODEL_DETAILS_KMファンクションの戻り値
戻り値 | 説明 |
---|---|
|
(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) |
(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) |
|
|
|
(attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), mean NUMBER, mode_value VARCHAR2(4000), variance NUMBER) |
|
(attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), bin_id NUMBER, lower_bound NUMBER, upper_bound NUMBER, label VARCHAR2(4000), count NUMBER) |
|
(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) |
|
(attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), conditional_operator CHAR(2)/*=,<>,<,>,<=,>=*/, attribute_num_value NUMBER, attribute_str_value VARCHAR2(4000), attribute_support NUMBER, attribute_confidence NUMBER) |
使用上の注意
このテーブル・ファンクションは、DM_CLUSTERS
型の行をパイプライン出力します。データ・マイニングのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。
例
この例では、k-Meansクラスタリング・モデルを作成した後、Oracle SQLからテーブル・ファンクションGET_MODEL_DETAILS_KM
をコールする方法を示します。
BEGIN
-- create a settings table
UPDATE cluster_settings
SET setting_value = 3
WHERE setting_name = DBMS_DATA_MINING.KMEANS_BLOCK_GROWTH;
/* build a k-Means clustering model */
DBMS_DATA_MINING.CREATE_MODEL(
model_name => 'eight_clouds',
function => DBMS_DATA_MINING.CLUSTERING,
data_table_name => 'eight_clouds_build',
case_id_column_name => 'id',
target_column_name => NULL,
settings_table_name => 'cluster_settings');
END;
/
-- View the (unformatted) rules from SQL*Plus
SELECT id, record_count, parent, tree_level, dispersion,
child, centroid, histogram, rule
FROM TABLE(DBMS_DATA_MINING_GET_MODEL_DETAILS_KM('eight_clouds'));
このテーブル・ファンクションは、Naive Bayesモデルのディテールを表す行の集合を戻します。
構文
DBMS_DATA_MINING.GET_MODEL_DETAILS_NB ( model_name IN VARCHAR2) RETURN DM_NB_DETAILS PIPELINED;
パラメータ
表38-61 GET_MODEL_DETAILS_NBファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
戻り値
表38-62 GET_MODEL_DETAILS_NBファンクションの戻り値
戻り値 | 説明 |
---|---|
|
(target_attribute_name VARCHAR2(30), target_attribute_str_value VARCHAR2(4000), target_attribute_num_value NUMBER, prior_probability NUMBER, conditionals DM_CONDITIONALS) |
(attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), attribute_str_value VARCHAR2(4000), attribute_num_value NUMBER, conditional_probability NUMBER) |
使用上の注意
このテーブル・ファンクションは、DM_NB_DETAILS
型の行をパイプライン出力します。データ・マイニングのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。
例
この例では、Naive Bayesアルゴリズムを使用して、census_model
という分類モデルを事前に作成していると想定します。このモデルのディテールを取り出すには、次のように入力します。
-- You can view the Naive Bayes model details in many ways -- Consult the Oracle Application Developer's Guide - -- Object-Relational Features for different ways of -- accessing Oracle Objects. -- View the (unformatted) details from SQL*Plus SELECT attribute_name, attribute_num_value, attribute_str_value, prior_probability, conditionals, FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_NB('census_model');
書式化のルールは、nbdemo.sql
を参照してください。
このテーブル・ファンクションは、Non-Negative Matrix Factorizationモデルのディテールを表す行の集合を戻します。
構文
DBMS_DATA_MINING.GET_MODEL_DETAILS_NMF ( model_name IN VARCHAR2) RETURN DM_NMF_FEATURE_SET PIPELINED;
パラメータ
表38-63 GET_MODEL_DETAILS_NMFファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
戻り値
表38-64 GET_MODEL_DETAILS_NMFファンクションの戻り値
戻り値 | 説明 |
---|---|
|
(feature_id NUMBER, mapped_feature_id VARCHAR2(4000), attribute_set DM_NMF_ATTRIBUTE_SET) |
(attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), attribute_value VARCHAR2(4000), coefficient NUMBER) |
使用上の注意
このテーブル・ファンクションは、DM_NMF_FEATURE_SET
型の行をパイプライン出力します。データ・マイニングのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。
例
この例では、my_nmf_model
というNMFモデルを事前に作成していると想定します。このモデルのディテールを取り出すには、次のように入力します。
--View (unformatted) details from SQL*Plus SELECT feature_id, attribute_set FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_NMF( 'my_nmf_model'));
このテーブル・ファンクションは、O-Clusterクラスタリング・モデルのディテールを表す行の集合を戻します。戻り値の行集合は、モデルの作成時に生成されたクラスタリング・パターンを列挙しています。
モデルに関する特定の情報を要求するようにGET_MODEL_DETAILS_OC
の入力を指定すると、問合せのパフォーマンスが向上します。 フィルタ・パラメータを指定しない場合、GET_MODEL_DETAILS_OC
はモデルに関するすべての情報を戻します。
構文
DBMS_DATA_MINING.GET_MODEL_DETAILS_OC ( model_name VARCHAR2, cluster_id NUMBER DEFAULT NULL, attribute VARCHAR2 DEFAULT NULL, centroid NUMBER DEFAULT 1, histogram NUMBER DEFAULT 1, rules NUMBER DEFAULT 2) RETURN DM_CLUSTERS PIPELINED;
パラメータ
表38-65 GET_MODEL_DETAILS_OCファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
|
モデル内のクラスタのID。指定したクラスタIDが有効な場合、そのクラスタのディテールのみが戻されます。そうでない場合は、すべてのクラスタのディテールが戻されます。 |
|
属性の名前。指定した属性名が有効な場合、その属性のディテールのみが戻されます。そうでない場合は、すべての属性のディテールが戻されます。 |
|
次の値を指定できます。
|
|
次の値を指定できます。
|
|
次の値を指定できます。
|
戻り値
表38-66 GET_MODEL_DETAILS_OCファンクションの戻り値
戻り値 | 説明 |
---|---|
|
(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) |
(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) |
|
|
|
(attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), mean NUMBER, mode_value VARCHAR2(4000), variance NUMBER) |
|
(attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), bin_id NUMBER, lower_bound NUMBER, upper_bound NUMBER, label VARCHAR2(4000), count NUMBER) |
|
(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) |
|
(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
型の行をパイプライン出力します。データ・マイニングのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。
例
この例では、my_oc_model
というOCモデルを事前に作成していると想定します。このモデルのディテールから情報を取り出すには、次のように入力します。
--View (unformatted) details from SQL*Plus SELECT T.id clu_id, T.record_count rec_cnt, T.parent parent, T.tree_level tree_level FROM (SELECT * FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_OC( 'my_oc_model')) ORDER BY id) T WHERE ROWNUM < 11;
このテーブル・ファンクションは、サポート・ベクター・マシン・モデルのディテールを表す行の集合を戻します。このテーブル・ファンクションを適用できるのは、線形カーネルを使用して作成された分類モデルまたは回帰モデルに限られます。 その他のカーネルについては、ORA-40215が戻されます。
線形SVMモデルでは、ゼロ以外の係数のみが格納されます。これにより記憶域が削減され、モデルをロードする速度が上がります。 その結果、GET_MODEL_DETAILS_SVM
で戻される係数のリストに属性がない場合、この属性の係数はゼロとして解釈されます。
構文
DBMS_DATA_MINING.GET_MODEL_DETAILS_SVM ( model_name IN VARCHAR2) RETURN DM_SVM_LINEAR_COEFF_SET PIPELINED;
パラメータ
表38-67 GET_MODEL_DETAILS_SVMファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
戻り値
表38-68 GET_MODEL_DETAILS_SVMファンクションの戻り値
戻り値 | 説明 |
---|---|
|
(class VARCHAR2(4000), attribute_set DM_SVM_ATTRIBUTE_SET) |
(attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), attribute_value VARCHAR2(4000), coefficient NUMBER) 詳細は、「使用上の注意」を参照してください。 |
使用上の注意
このテーブル・ファンクションは、DM_SVM_LINEAR_COEFF
型の行をパイプライン出力します。データ・マイニングのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。
DM_SVM_LINEAR_COEFF
のclass
列は分類ターゲット値を表します。回帰のターゲットの場合、class
はNULLです。分類モデルの個々の分類ターゲット値の場合は、係数の集合が戻されます。バイナリ分類モデル、1クラス分類子モデルおよび回帰モデルの場合は、係数の単一集合のみが戻されます。
ネストした表DM_SVM_ATTRIBUTE_SET
のattribute_value
列は、質的属性で使用されます。coefficient
列は、線形係数の値です。
例
この例では、SVMモデルを作成した後、Oracle SQLからテーブル・ファンクションGET_MODEL_DETAILS_SVM
をコールする方法を示します。
-- Create SVM model BEGIN dbms_data_mining.create_model( model_name => 'SVM_Clas_sample', mining_function => dbms_data_mining.classification, data_table_name => 'svmc_sample_build_prepared', case_id_column_name => 'id', target_column_name => 'affinity_card', settings_table_name => 'svmc_sample_settings'); END; / -- Display model details SELECT * FROM TABLE(DBMS_DATA_MINING.GET_MODEL_DETAILS_SVM('SVM_Clas_sample')) ORDER BY class;
このテーブル・ファンクションは、ディシジョン・ツリー・モデルのディテールを示すXMLオブジェクトを戻します。
構文
DBMS_DATA_MINING.GET_MODEL_DETAILS_XML ( model_name IN VARCHAR2) RETURN XMLTYPE;
パラメータ
表38-69 GET_MODEL_DETAILS_XMLファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
戻り値
使用上の注意
このファンクションは、ディシジョン・ツリーを表すXMLを戻します。この定義は、Data Mining Group Predictive Model Markup Language(PMML)バージョン2.1の仕様で規定されている定義です。この仕様については、http://www.dmg.org
を参照してください。
GET_MODEL_SETTINGS
ファンクションは、11gリリース1(11.1)では非推奨になっています。このファンクションは、データ・ディクショナリ・ビュー*_MINING_MODEL_SETTINGS
に置き換えられています。このビューのUSER_
、ALL_
およびDBA_
の各バージョンを使用できます。 『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
新しいアプリケーションでは、これらのプロシージャを使用しないことをお薦めします。これらのプロシージャは、下位互換性を維持する目的のみでサポートされています。
このテーブル・ファンクションは、モデルの作成に使用された設定のリストを戻します。
構文
DBMS_DATA_MINING.GET_MODEL_SETTINGS( model_name IN VARCHAR2) RETURN DM_MODEL_SETTINGS PIPELINED;
パラメータ
表38-71 GET_MODEL_SETTINGSファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
戻り値
表38-72 GET_MODEL_SETTINGSファンクションの戻り値
戻り値 | 説明 |
---|---|
|
(setting_name VARCHAR2(30), setting_value VARCHAR2(128)) |
使用上の注意
このテーブル・ファンクションは、DM_MODEL_SETTING型の行をパイプライン出力します。データ・マイニングのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。
このテーブル・ファンクションを使用すると、モデルの作成に使用された設定を確認できます。 このファンクションの目的は情報の参照に限られています。モデルの設定は変更できません。
例
この例では、Naive Bayesアルゴリズムを使用して、census_model
という分類モデルを事前に作成していると想定します。Oracle SQLを使用してこのモデルの設定を参照するには、次の文を実行します。
SELECT setting_name, setting_value FROM TABLE(DBMS_DATA_MINING.GET_MODEL_SETTINGS('census_model'));
GET_MODEL_SIGNATURE
ファンクションは、11gリリース1(11.1)では非推奨になっています。 このファンクションは、データ・ディクショナリ・ビュー*_MINING_MODEL_ATTRIBUTES
に置き換えられています。このビューのUSER_
、ALL_
およびDBA_
の各バージョンを使用できます。 『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。
新しいアプリケーションでは、これらのプロシージャを使用しないことをお薦めします。これらのプロシージャは、下位互換性を維持する目的のみでサポートされています。
このテーブル・ファンクションはモデルのシグネチャを戻します。これは、モデルの作成に使用され、スコアリング・データに存在する必要がある列属性を表示します。
ケースIDはマイニング属性とみなされません。分類モデルと回帰モデルでは、ターゲット属性もモデルのシグネチャに入りません。
関連項目: GET_MODEL_SIGNATURE ファンクションを使用するかわりに、データ・ディクショナリ・ビューALL_MINING_MODEL_ATTRIBUTES を問い合せることができます。 『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。 |
構文
DBMS_DATA_MINING.GET_MODEL_SIGNATURE( model_name IN VARCHAR2) RETURN DM_MODEL_SIGNATURE PIPELINED;
パラメータ
表38-73 GET_MODEL_SIGNATUREファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
戻り値
表38-74 GET_MODEL_SIGNATUREファンクションの戻り値
戻り値 | 説明 |
---|---|
|
|
使用上の注意
このテーブル・ファンクションは、DM_MODEL_SIGNATURE
型の行をパイプライン出力します。データ・マイニングのデータ型およびテーブル・ファンクションからのパイプライン出力については、「データ型」を参照してください。
例
この例では、Naive Bayesアルゴリズムを使用して、census_model
という分類モデルを事前に作成していると想定します。Oracle SQLを使用してこのモデルのシグネチャを参照するには、次の文を実行します。
SELECT attribute_name, attribute_type FROM TABLE(DBMS_DATA_MINING.GET_MODEL_SIGNATURE('census_model');
このファンクションは、モデルに関連付けられた変換定義を戻します。
データは変換され、変換定義はモデルのトレーニング(作成)プロセス中にモデルに埋め込まれます。変換は自動的に生成されるか、またはユーザーが定義できます(あるいはその両方)。
構文
DBMS_DATA_MINING.GET_MODEL_TRANSFORMATIONS ( model_name IN VARCHAR2) RETURN DM_TRANSFORMS PIPELINED;
パラメータ
表38-75 GET_MODEL_TRANSFORMATIONSファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
[schema_name.]model_nameの形式のモデル名。スキーマを指定しない場合は、独自のスキーマが使用されます。 |
戻り値
表38-76 GET_MODEL_TRANSFORMATIONSファンクションの戻り値
戻り値 | 説明 |
---|---|
|
(attribute_name VARCHAR2(4000), attribute_subname VARCHAR2(4000), expression CLOB, reverse_expression CLOB) |
GET_MODEL_TRANSFORMATIONS
では、変換定義に加えて、逆変換定義が戻されます。 逆変換は、GET_MODEL_DETAILS
ファンクションによって戻されるモデル属性に適用されます。また、予測モデルが適用されるときに、ターゲットにも適用されます。逆変換を使用すると、モデルの透過性が有効になります。つまり、モデルによって生成された属性情報が、可能なかぎり元の未変換の状態になります。
このファンクションは、変換の仕様をDM_TRANSFORMS
型からTRANSFORM_LIST
型に変換するために使用されます。
DM_TRANSFORMS
は、GET_MODEL_TRANSFORMATIONS
ファンクションから戻されるモデルの変換を出力するために使用されます。
DBMS_DATA_MINING_TRANSFORM
パッケージのCREATE_MODEL
およびファンクションでは、TRANSFORM_LIST
を使用できます。 これらをGET_MODEL_TANSFORMATIONS
の出力で使用するには、最初にGET_TRANSFORM_LIST
を呼び出してTRANSFORM_LIST
型に変換する必要があります。
構文
DBMS_DATA_MINING.GET_TRANSFORM_LIST ( xform_list OUT NOCOPY TRANSFORM_LIST, model_xforms IN DM_TRANSFORMS);
パラメータ
表38-77 GET_TRANSFORM_LISTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
このプロシージャは、EXPORT_MODEL
またはexpdp
エクスポート・ユーティリティによって作成されたダンプ・ファイル・セットから、指定されたデータ・マイニング・モデルをインポートします。 IMPORT_MODEL
とEXPORT_MODEL
の両方で、Oracle Data Pumpテクノロジが使用されています。
関連項目: モデルのエクスポートおよびインポートの詳細は、『Oracle Data Mining管理者ガイド』を参照してください。 |
構文
DBMS_DATA_MINING.IMPORT_MODEL ( filename IN VARCHAR2, directory IN VARCHAR2, model_filter IN VARCHAR2 DEFAULT NULL, operation IN VARCHAR2 DEFAULT NULL, remote_link IN VARCHAR2 DEFAULT NULL, jobname IN VARCHAR2 DEFAULT NULL, schema_remap IN VARCHAR2 DEFAULT NULL);
パラメータ
表38-78 IMPORT_MODELプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
モデルのインポート元のダンプ・ファイル・セットの名前。 ダンプ・ファイル・セットは、 ダンプ・ファイル・セットには1つ以上のファイルを保存できます。 (詳細は、「EXPORT_MODELプロシージャ」を参照。) ダンプ・ファイル・セット内に複数のダンプ・ファイルが存在する場合は、ファイルを列挙するかわりに |
|
ダンプ・ファイル・セットの場所を指定する、事前定義済のディレクトリ・オブジェクトの名前。 このディレクトリ・オブジェクト、およびこのディレクトリ・オブジェクトによって指定されるファイル・システム・ディレクトリに対する読取り/書込み権限が必要です。 |
|
インポートする1つ以上のモデルを指定するパラメータ。
'mymodel1' 'name IN (''mymodel2'',''mymodel3'')' 1行目では、 |
|
モデルをインポートするか、モデルを作成するSQL文をインポートするかを指定するパラメータ(オプション)。デフォルトでは、モデルがインポートされます。
|
|
このリリースでは使用されないパラメータ(オプション)。 |
|
インポート・ジョブの名前を指定するパラメータ(オプション)。 デフォルトでは、 ジョブ名を指定する場合は、スキーマ内で一意の名前を指定する必要があります。ジョブ名の最大長は30文字です。 インポート・ジョブのログ・ファイルが、 |
|
別のスキーマにインポートするためのパラメータ(オプション)。デフォルトでは、モデルのエクスポートとインポートは同じスキーマ内で行われます。 ダンプ・ファイル・セットが別のスキーマに属している場合は、 注意: 別のスキーマからモデルをインポートする際に、 |
例
この例では、dmuser2
スキーマ内でモデルのエクスポートとインポートを行っています。次に、同じモデルをdmuser3
スキーマにインポートしています。 dmuser3
ユーザーには、IMPORT_FULL_DATABASE
権限があります。
SQL> connect dmuser2 Enter password:dmuser2_password
Connected. SQL> select model_name from user_mining_models; MODEL_NAME ------------------------------ NMF_SH_SAMPLE SVMO_SH_CLAS_SAMPLE SVMR_SH_REGR_SAMPLE -- export the model called NMF_SH_SAMPLE to a dump file in same schema SQL>EXECUTE DBMS_DATA_MINING.EXPORT_MODEL ('NMF_SH_SAMPLE_out', 'DATA_PUMP_DIR', 'name = ''NMF_SH_SAMPLE'''); -- import the model back into the same schema SQL>EXECUTE DBMS_DATA_MINING.IMPORT_MODEL ('NMF_SH_SAMPLE_out01.dmp', 'DATA_PUMP_DIR', 'name = ''NMF_SH_SAMPLE'''); -- connect as different user -- import same model into that schema SQL> connect dmuser3 Enter password:dmuser3_password
Connected. SQL>EXECUTE DBMS_DATA_MINING.IMPORT_MODEL ('NMF_SH_SAMPLE_out01.dmp', 'DATA_PUMP_DIR', 'name = ''NMF_SH_SAMPLE''', 'IMPORT', NULL, 'nmf_imp_job', 'dmuser2:dmuser3');
この例では、ユーザーSCOTT
が作成したダンプ・ファイルmodel_exp_001.dmp
から、ユーザーMARY
がすべてのモデルをインポートします。 ダンプ・ファイルは、DM_DUMP
というディレクトリ・オブジェクトにマップされたファイル・システム・ディレクトリに保存されています。 ユーザーMARY
がIMPORT_FULL_DATABASE
権限を持っていない場合は、IMPORT_MODEL
からエラーが戻されます。
-- import all models DECLARE file_name VARCHAR2(40); BEGIN file_name := 'model_exp_001.dmp'; DBMS_DATA_MINING.IMPORT_MODEL( filename=>file_name, directory=>'DM_DUMP', schema_remap=>'SCOTT:MARY'); DBMS_OUTPUT.PUT_LINE( 'DBMS_DATA_MINING.IMPORT_MODEL of all models from SCOTT done!'); END; /
このプロシージャは、予測モデルまたは記述モデルをデータに適用した結果(APPLY
結果)を上位N番までのフィルタに基づいてランク付けします。分類モデルの場合は、このプロシージャへの入力パラメータとしてコスト・マトリックスを指定すると、予測のコストを反映したランク付けされた結果が得られます。
構文
DBMS_DATA_MINING.RANK_APPLY ( apply_result_table_name IN VARCHAR2, case_id_column_name IN VARCHAR2, score_column_name IN VARCHAR2, score_criterion_column_name IN VARCHAR2, ranked_apply_table_name IN VARCHAR2, top_N IN INTEGER DEFAULT 1, cost_matrix_table_name IN VARCHAR2 DEFAULT NULL, apply_result_schema_name IN VARCHAR2 DEFAULT NULL, cost_matrix_schema_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表38-79 RANK_APPLYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
テスト・データセットに対する |
|
ケースID列の名前。この名前は適用( |
|
適用結果表の予測列の名前。 |
|
適用結果表の確率列の名前。 |
|
ランク付けされた適用結果が保存される表の名前。 |
|
上位N番までが、精密なリコール計算の |
|
コスト・マトリックス表の名前。 |
|
|
|
コスト・マトリックス表に適用されるスキーマの名前。 |
使用上の注意
RANK_APPLY
を使用すると、上位N番までのフィルタに基づいてランク付けされた適用結果を作成できます。また、モデルがコスト付きで作成されている場合は、予測のコストを反映した結果が得られます。
CREATE_MODEL
、DROP_MODEL
、RENAME_MODEL
などの他のDDL操作の観点から見ると、RANK_APPLY
の動作はAPPLY
の動作と似ています。このプロシージャの基本動作は、モデル型には依存しません。重要な入力パラメータは、APPLY
によって固定スキーマ表に出力される適用結果です。
RANK_APPLY
の主な使用目的は、本番環境においてモデルをスコアリング・データに適用(APPLY
)して、最終的な適用結果を作成することです。 APPLY
を使用してテスト・データにモデルを適用し、様々なコスト・マトリックス表に対するテスト指標値を計算した後、最適なコスト・マトリックスをRANK_APPLY
への入力として指定できます。
以降の項では、サポートされる個々のアルゴリズムにおいて、適用結果が保存される表のスキーマを示します。 case_id
列の値は、適用結果のケースID列と同じ値になります。
量的ターゲットの場合、ランク付けされた適用結果は次の定義を持つ表に保存されます。
(case_id VARCHAR2/NUMBER,
prediction NUMBER,
probability NUMBER,
cost NUMBER,
rank INTEGER)
質的ターゲットの場合、ランク付けされた適用結果は次の定義を持つ表に保存されます。
(case_id VARCHAR2/NUMBER,
prediction VARCHAR2,
probability NUMBER,
cost NUMBER,
rank INTEGER)
クラスタリングは監視なしのマイニング機能であるため、ターゲットは存在しません。APPLY
操作の結果は、単にケースに対応するクラスタ識別子と、ケースの確率のみになります。コスト・マトリックスは考慮されません。ランク付けされた適用結果は次の定義を持つ表に保存されます。この表のクラスタ識別子はtop-N
によってランク付けされます。
(case_id VARCHAR2/NUMBER,
cluster_id NUMBER,
probability NUMBER,
rank INTEGER)
特徴抽出も監視なしのマイニング機能であるため、ターゲットは存在しません。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;
分類モデルからデフォルトのスコアリング・マトリックスを削除します。
構文
DBMS_DATA_MINING.REMOVE_COST_MATRIX ( model_name IN VARCHAR2);
パラメータ
表38-80 Remove_Cost_Matrixプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
[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
このプロシージャは、マイニング・モデルの名前を、指定した新しい名前に変更します。
モデル名は、[schema_name.]model_nameの形式です。スキーマを指定しない場合は、独自のスキーマが使用されます。マイニング・モデルのネーミングにおける制限の詳細は、「マイニング・モデルのネーミングにおける制限」を参照してください。
構文
DBMS_DATA_MINING.RENAME_MODEL ( model_name IN VARCHAR2, new_model_name IN VARCHAR2);
パラメータ
使用上の注意
ただし、APPLY
でモデルを使用しているときに、そのモデルの名前を変更すると、RENAME
操作は成功しますが、APPLY
からは不確定な結果が戻されます。
例
census_model
というモデルがあるとします。次の例は、このモデルの名前を変更する方法を示しています。
BEGIN DBMS_DATA_MINING.RENAME_MODEL( model_name => 'census_model', new_model_name => 'census_new_model'); END; /