ヘッダーをスキップ
Oracle Data Miningアプリケーション開発者ガイド
11g リリース2(11.2)
E57719-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

5 モデルの作成

この章では、データ・マイニング・モデルを作成し、モデルの詳細を取得する方法について説明します。


注意:

この章の内容は、『Oracle Data Mining概要』で説明されているマイニング機能やマイニング・アルゴリズムを基本的に理解していることを前提としています。

この章には、次の項が含まれます。

モデルの作成手順

データ・マイニング・モデル作成の一般的な手順を次に示します。

  1. データを準備します。(第3章を参照。)

  2. オプションで、モデルの設定を指定します。(「モデルの設定」を参照。)

  3. モデルを作成します。(「モデルの作成」を参照。)

  4. モデルの詳細を確認します。(「モデルの詳細」を参照。)

  5. モデルをテストします。(分類と回帰の詳細は、Oracle Data Mining概要を参照してください。)

  6. 次のような問題についてモデルを評価します: モデルはどの程度正確か。モデルに関連付けられているルールがある場合、それらのルールの信頼度や支持度はどれほどか。モデルがビジネス上の問題にどのくらいよく対応しているか。


注意:

このプロセスをさらに詳しく理解するために、Oracle Database付属のサンプル・データ・マイニング・プログラムのソース・コードを見ることができます。「サンプル・マイニング・モデル」を参照してください。


関連項目:

モデルの作成プロセスの詳細は、『Oracle Data Mining概要』を参照してください。

モデルの設定

データ・マイニング・モデルは、作成時に多数の設定を使用してモデルを構成できます。設定を指定するには、設定表を作成してそれをモデル作成プロセスへ渡します。すべての設定がデフォルト値を持つため、設定表はオプションです。

モデルの設定の詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。HTMLバージョンの『Oracle Data Miningアプリケーション開発者ガイド』を使用している場合は、表5-1のリンクから、各タイプのモデル設定についてのドキュメントに直接移動することができます。

表5-1 モデルの設定

設定 ドキュメント

マイニング機能の変更

『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照。

アルゴリズムの変更

『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照。

グローバルなモデルの特性の設定

『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照。

自動データ準備の有効化/無効化

『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照。


設定表の指定

設定表は、表5-2に示す列を持つ必要があります。

表5-2 設定表に必要な列

列名 データ型

setting_name

VARCHAR2(30)

setting_value

VARCHAR2(4000)


setting_name列に挿入する値は、DBMS_DATA_MININGパッケージで定義されている1つ以上の定数です。設定名(setting_name)が示す内容に応じて、setting_value列の値には、設定自体に対応する実際の数値や事前定義の定数を指定できます。setting_value列は、VARCHAR2として定義されます。TO_CHAR()関数を使用して数値入力を文字列に明示的にキャストするか、あるいはデータベースから提供される暗黙的な型変換を使用できます。

例5-1では、SVM分類モデルの設定表を作成します。SVMはデフォルトの分類機能ではないため、ALGO_NAME設定を使用してこのアルゴリズムを指定します。SVMS_KERNEL_FUNCTIONSVMS_LINEARに設定することにより、モデルは線形カーネルを使用して作成されます。カーネル関数を指定しない場合、アルゴリズムがデータの属性の数に基づいてカーネルを選択します。

例5-1 設定表の作成

CREATE TABLE svmc_sh_sample_settings (
  setting_name VARCHAR2(30),
  setting_value VARCHAR2(4000));

BEGIN 
  INSERT INTO svmc_sh_sample_settings (setting_name, setting_value) VALUES
    (dbms_data_mining.algo_name, dbms_data_mining.algo_support_vector_machines);
  INSERT INTO svmc_sh_sample_settings (setting_name, setting_value) VALUES
    (dbms_data_mining.svms_kernel_function, dbms_data_mining.svms_linear);
  COMMIT;
END;
/

アルゴリズムの指定

ALGO_NAME設定では、モデルのアルゴリズムを指定できます。特定のマイニング機能に対してデフォルトのアルゴリズムを使用する場合、または使用できるアルゴリズムが1つしかない場合は、ALGO_NAME設定を指定する必要はありません。

表5-3 データ・マイニングのアルゴリズム

ALGO_NAMEの値 アルゴリズム デフォルトかどうか マイニング・モデルの機能

ALGO_AI_MDL

最小記述

-


属性評価

ALGO_APRIORI_ASSOCIATION_RULES

Apriori

-


相関

ALGO_DECISION_TREE

ディシジョン・ツリー

-


分類

ALGO_GENERALIZED_LINEAR_MODEL

一般化線形モデル

-


分類、回帰

ALGO_KMEANS

k-Means

デフォルト

クラスタリング

ALGO_NAIVE_BAYES

Naive Bayes

デフォルト

分類

ALGO_NONNEGATIVE_MATRIX_FACTOR

Non-Negative Matrix Factorization

-


特徴抽出

ALGO_O_CLUSTER

O-Cluster

-


クラスタリング

ALGO_SUPPORT_VECTOR_MACHINES

Support Vector MachineSuppor

デフォルト

デフォルトの回帰アルゴリズム

回帰、分類、異常検出(ターゲットのない分類)


コストの指定

CLAS_COST_TABLE_NAME設定は、ディシジョン・ツリー・モデルの作成に使用するコスト・マトリックス表の名前を指定します。コスト・マトリックスは、分類モデルにバイアスをかけて、コストのかかる分類ミスを最小化します。コスト・マトリックス表は、表5-4に示す列を持つ必要があります。

表5-4 コスト・マトリックス表に必要な列

列名 データ型

actual_target_value

CHARVARCHAR2NUMBER、またはFLOAT

predicted_target_value

CHARVARCHAR2NUMBER、またはFLOAT

cost

NUMBER


ディシジョン・ツリーは、作成時にコスト・マトリックスを指定できる唯一のアルゴリズムです。ただし、スコアリングの際には、どの分類モデルにもコスト・マトリックスを作成して関連付けることができます。

スコアリングにコストを使用する場合は、表5-4に示す列を持つ表を作成し、DBMS_DATA_MINING.ADD_COST_MATRIXプロシージャを使用してコスト・マトリックス表をモデルに追加します。PREDICTION関数を呼び出すときに、コスト・マトリックスをインラインで指定することもできます。


関連項目:

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

事前確率の指定

CLAS_PRIORS_TABLE_NAME設定は、Naive Bayesモデルの作成に使用する事前確率表の名前を指定します。事前確率は、作成データと実際の母集団の間の分布の差を埋めるために使用されます。事前確率表は、表5-5に示す列を持つ必要があります。

表5-5 事前確率表に必要な列

列名 データ型

target_value

CHARVARCHAR2NUMBER、またはFLOAT

prior_probability

NUMBER



関連項目:

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

クラスの重みの指定

CLAS_WEIGHTS_TABLE_NAME設定は、より高い重み付けのクラスを優先するようにロジスティック回帰(GLM分類)またはSVM分類のモデルにバイアスをかけるために使用する、クラスの重み表の名前を指定します。重み表は、表5-6に示す列を持つ必要があります。

表5-6 クラスの重みの表に必要な列

列名 データ型

target_value

CHARVARCHAR2NUMBER、またはFLOAT

class_weight

NUMBER



関連項目:

クラスの重みの詳細は、『Oracle Data Mining概要』を参照してください。

データ・ディクショナリにおけるモデルの設定

マイニング・モデルの設定に関する情報は、データ・ディクショナリ・ビューALL/USER/DBA_MINING_MODEL_SETTINGSから取得できます。ALL接頭辞を使用した場合、このビューは、現在のユーザーがアクセスできるモデルの設定に関する情報を戻します。USER接頭辞を使用した場合は、ユーザー・スキーマ内のモデルの設定に関する情報を戻します。DBA接頭辞を使用できるのはDBAのみです。

ALL_MINING_MODEL_SETTINGSの列は次のとおりです。各列の説明は、表5-7を参照してください。

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)

表5-7 ALL_MINING_MODEL_SETTINGS

説明

owner

マイニング・モデルの所有者

model_name

マイニング・モデルの名前

setting_name

設定の名前

setting_value

設定の値

setting_type

値がユーザーによって指定される場合はINPUT、システム生成値の場合はDEFAULT


次の問合せを発行すると、SVM分類モデルSVMC_SH_CLAS_SAMPLEの設定が表示されます。ALGO_NAMECLAS_PRIORS_TABLE_NAMEおよびSVMS_KERNEL_FUNCTIONの設定はユーザーが指定しています。これらの設定は、モデルの設定表で指定されています。

例5-2 ALL_MINING_MODEL_SETTINGS

SQL> COLUMN setting_value FORMAT A35
SQL> SELECT setting_name, setting_value, setting_type
            FROM all_mining_model_settings
            WHERE model_name in 'SVMC_SH_CLAS_SAMPLE';
 
SETTING_NAME                   SETTING_VALUE                       SETTING
------------------------------ ----------------------------------- -------
SVMS_ACTIVE_LEARNING           SVMS_AL_ENABLE                      DEFAULT
PREP_AUTO                      OFF                                 DEFAULT
SVMS_COMPLEXITY_FACTOR         0.244212                            DEFAULT
SVMS_KERNEL_FUNCTION           SVMS_LINEAR                         INPUT
CLAS_WEIGHTS_TABLE_NAME        svmc_sh_sample_class_wt             INPUT
SVMS_CONV_TOLERANCE            .001                                DEFAULT
ALGO_NAME                      ALGO_SUPPORT_VECTOR_MACHINES        INPUT
 
7 rows selected.






















SQL> COLUMN setting_value FORMAT A25
SQL> SELECT setting_name, setting_value, setting_type 
                           FROM all_mining_model_settings 
           WHERE model_name in 'SVMC_SH_CLAS_SAMPLE';
 
SETTING_NAME                   SETTING_VALUE                  SETTING_TYPE
------------------------------ -------------------------      ------------
ALGO_NAME                      ALGO_SUPPORT_VECTOR_MACHINES   INPUT
SVMS_ACTIVE_LEARNING           SVMS_AL_ENABLE                 DEFAULT
CLAS_PRIORS_TABLE_NAME         svmc_sh_sample_priors          INPUT
PREP_AUTO                      OFF                            DEFAULT
SVMS_COMPLEXITY_FACTOR         0.244212                       DEFAULT
SVMS_KERNEL_FUNCTION           SVMS_LINEAR                    INPUT
SVMS_CONV_TOLERANCE            .001                           DEFAULT

注意:

設定表で指定されていないモデル設定の一部はアルゴリズムによって決定されます。システム生成の設定値は、ALL_MINING_MODEL_SETTINGSビューを問い合せることによって確認できます。


関連項目:

モデル設定の詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

モデルの作成

DBMS_DATA_MININGパッケージの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,
      transform_list        IN DM_TRANSFORMS DEFAULT NULL;)

関連項目:

『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』DBMS_DATA_MINING.CREATE_MODELに関する項を参照してください。

マイニング機能

マイニング機能は、CREATE_MODELプロシージャに必須の引数です。データ・マイニング機能によって、モデル化や解決の対象となり得る問題のクラスが特定されます。

データ・マイニング機能は、監視あり学習または監視なし学習のいずれかを実装しています。監視あり学習では、独立属性のセットを使用して従属属性の値またはターゲットを予測します。監視なし学習では従属属性と独立属性は区別されません。

監視あり機能は予測的です。監視なし機能は記述的です。

CREATE_MODELmining_functionパラメータに指定できる値を表5-8に示します。

表5-8 マイニング・モデルの機能

Mining_Functionの値 説明

ASSOCIATION

相関(Association)は、記述マイニング機能の一種。相関モデルは、関係と、その関係がデータセット内で発生する確率を特定する。

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

ATTRIBUTE_IMPORTANCE

属性評価(Attribute Importance)は、予測マイニング機能の一種。属性評価モデルは、特定の結果を予測する中で属性の相対的な重要度を識別する。

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

CLASSIFICATION

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

分類モデルでは、Naive Bayes、ディシジョン・ツリー、ロジスティック回帰またはサポート・ベクター・マシンの各アルゴリズムが使用される。デフォルトはNaive Bayes。

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

CLUSTERING

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

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

FEATURE_EXTRACTION

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

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

REGRESSION

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

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



関連項目:

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

変換リスト

アルゴリズムによる処理が実行される前に作成データに適用する変換のリストを、必要に応じて指定できます。DBMS_DATA_MINING_TRANSFORMSTACKインタフェースを使用して様々な属性の変換式のリストを作成したり、DBMS_DATA_MINING_TRANSFORMXFORMインタフェースを使用して単一の変換を指定したり、または独自のSQL式を作成したりすることが可能です。

CREATE_MODELに対する変換リスト引数は、自動データ準備(ADP)を制御するPREP_AUTO設定と次のように相互作用します。

  • ADPが有効で、変換リストを指定した場合、ユーザー指定の変換は自動変換とともに適用されてモデルに組み込まれます。

  • ADPが無効で、変換リストを指定した場合、ユーザー指定の変換が適用されてモデルに組み込まれますが、システム生成の変換は実行されません。

  • ADPが有効で、変換リストを指定しなかった場合、システム生成の変換が適用されてモデルに組み込まれます。

  • ADPが無効で、変換リストも指定しなかった場合、変換はモデルに組み込まれません。モデルの作成、テストおよびスコアリングに使用するデータセットは別個に準備する必要があります。これは、リリース11以前の動作であり、11gではデフォルトの動作です。


関連項目:

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

モデルの詳細

モデルの詳細とは、モデルの属性やルールなどのモデルに関する情報を記述したものです。GET_MODEL_DETAILSファンクションを呼び出すと、モデルの詳細を取得できます。各アルゴリズム用に個別のGET_MODEL_DETAILSファンクションが存在します。

モデルの詳細は、属性に適用された変換を元に戻すため、情報がユーザーにとって理解しやすくなります。モデルに組み込まれた変換を取得するには、GET_MODEL_TRANSFORMATIONSファンクションを呼び出します。

表5-9にまとめたモデルの詳細によって、モデルの透明性が確保されています。

表5-9 モデルの詳細

アルゴリズム モデルの詳細

Apriori(相関ルール)

相関ルールと高頻度項目セット

ディシジョン・ツリー

モデル全体(モデルの内容とルール)

一般化線形モデル

属性レベルの係数および統計情報(GET_MODEL_DETAILS_GLM)、グローバルなモデルの情報(GET_MODEL_DETAILS_GLOBAL)

k-Means

各クラスタの統計情報と階層の情報、重心、属性ヒストグラム、ルール

MDL(属性評価)

各属性のランク付けされた重要度

Naive Bayes

条件付き確率と事前確率

Non-Negative Matrix Factorization

係数

O-Cluster

各クラスタの統計情報と階層の情報、重心、属性ヒストグラム、ルール

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

線形モデルの係数


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

マイニング・モデルはデータベース・スキーマ・オブジェクトです。システム権限やオブジェクト権限によりデータ・マイニング操作を制御します(『Oracle Data Mining管理者ガイド』のユーザーと権限に関する項を参照)。さらに、マイニング・モデルはSQL AUDITとSQL COMMENTもサポートしています(『Oracle Data Mining管理者ガイド』のマイニング・モデルのスキーマ・オブジェクトに関する項を参照)。

データ・ディクショナリのマイニング・モデル

マイニング・モデル・オブジェクトに関する情報は、データ・ディクショナリ・ビューALL/USER/DBA_MINING_MODELSから取得できます。ALL接頭辞を使用した場合、このビューは、現在のユーザーがアクセスできるマイニング・モデルに関する情報を戻します。USER接頭辞を使用した場合は、ユーザー・スキーマ内のマイニング・モデルに関する情報を戻します。DBA接頭辞を使用できるのはDBAのみです。

ALL_MINING_MODELSの列は次のとおりです。各列の説明は、表5-10を参照してください。

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)

表5-10 ALL_MINING_MODELS

説明

owner

マイニング・モデルの所有者。

model_name

マイニング・モデルの名前。

mining_function

マイニング・モデルの機能。「マイニング機能」を参照。

algorithm

マイニング・モデルで使用されるアルゴリズム。「アルゴリズムの指定」を参照。

creation_date

マイニング・モデルが作成された日付。

build_duration

マイニング・モデル作成プロセスの期間(秒単位)。

model_size

マイニング・モデルのサイズ(MB単位)。

comments

マイニング・モデルにSQL COMMENTが適用された結果。


例5-3の問合せでは、DMUSERスキーマ内のマイニング・モデルに関する情報が戻されます。

例5-3 ALL_MINING_MODELS

SQL> select model_name, mining_function, algorithm, creation_date, build_duration
            FROM all_mining_models WHERE owner IN 'DMUSER';

MODEL_NAME              MINING_FUNCTION         ALGORITHM                  CREATION_DATE BUILD_DURA 
---------------------   ---------------------  --------------------------- ----------------------- 
AI_SH_SAMPLE            ATTRIBUTE_IMPORTANCE   MINIMUM_DESCRIPTION_LENGTH   13-JUN-07         1 
AR_SH_SAMPLE            ASSOCIATION_RULES      APRIORI_ASSOCIATION_RULES    13-JUN-07         5 
DT_SH_CLAS_SAMPLE       CLASSIFICATION         DECISION_TREE                13-JUN-07         4 
KM_SH_CLUS_SAMPLE       CLUSTERING             KMEANS                       13-JUN-07         7 
NB_SH_CLAS_SAMPLE       CLASSIFICATION         NAIVE_BAYES                  13-JUN-07         3 
OC_SH_CLUS_SAMPLE       CLUSTERING             O_CLUSTER                    13-JUN-07        14 
NMF_SH_SAMPLE           FEATURE_EXTRACTION     NONNEGATIVE_MATRIX_FACTOR    13-JUN-07         2 
SVMC_SH_CLAS_SAMPLE     CLASSIFICATION         SUPPORT_VECTOR_MACHINES      13-JUN-07         4 
GLMR_SH_REGR_SAMPLE     REGRESSION             GENERALIZED_LINEAR_MODEL     13-JUN-07         3 
GLMC_SH_CLAS_SAMPLE     CLASSIFICATION         GENERALIZED_LINEAR_MODEL     13-JUN-07         3 
SVMR_SH_REGR_SAMPLE     REGRESSION             SUPPORT_VECTOR_MACHINES      13-JUN-07         7 
SVMO_SH_CLAS_SAMPLE     CLASSIFICATION         SUPPORT_VECTOR_MACHINES      13-JUN-07         3 
T_SVM_CLAS_SAMPLE       CLASSIFICATION         SUPPORT_VECTOR_MACHINES      13-JUN-07         8 
T_NMF_SAMPLE            FEATURE_EXTRACTION     NONNEGATIVE_MATRIX_FACTOR    13-JUN-07         7

マイニング・モデルの権限

独自のスキーマにモデルを作成するには、CREATE MINING MODEL権限を所有している必要があります。所有しているモデルに対しては、どのような操作も実行できます。これには、モデルの適用、コスト・マトリックスの追加、モデルの名前の変更、およびモデルの削除が含まれます。

適切なシステム権限を所有している場合、他のスキーマのマイニング・モデルに対しても特定の操作を実行できます。たとえば、CREATE ANY MINING MODELを所有している場合、他のスキーマにモデルを作成できます。SELECT ANY MINING MODELを所有している場合、他のスキーマにあるモデルを適用できます。モデルにコメントを追加するには、COMMENT ANY MINING MODEL権限を所有している必要があります。


関連項目:

詳細は、『Oracle Data Mining管理者ガイド』を参照してください。

サンプル・マイニング・モデル

例5-3で示されたモデルは、Oracle Database付属のOracle Data Miningサンプル・プログラムによって作成されます。これらのPL/SQLまたはJavaサンプル・プログラムは、Oracle Data Miningでサポートされている各アルゴリズムに対応するマイニング・モデルを作成します。

サンプル・プログラムは、Oracle Database Companionからインストールされます。インストール後は、Oracleホームのrdbms/demoサブディレクトリに格納されます。Linuxシステムでは、次のようなコマンドを使用してPL/SQLデータ・マイニング・サンプル・プログラムを表示できます。

> cd $ORACLE_HOME/rdbms/demo
> ls dm*.sql

同様に、Javaデータ・マイニング・サンプル・プログラムは次のようなコマンドを使用して表示できます。

> cd $ORACLE_HOME/rdbms/demo
> ls dm*.java

関連項目:

データ・マイニング・サンプル・プログラムのインストール、設定および実行方法については、『Oracle Data Mining管理者ガイド』を参照してください。