この章では、データ・マイニング・モデルを作成し、モデルの詳細を取得する方法について説明します。
注意: この章の内容は、『Oracle Data Mining概要』で説明されているマイニング機能やマイニング・アルゴリズムを基本的に理解していることを前提としています。 |
この章には、次の項が含まれます。
データ・マイニング・モデル作成の一般的な手順を次に示します。
データを準備します。(第3章を参照。)
オプションで、モデルの設定を指定します。(「モデルの設定」を参照。)
モデルを作成します。(「モデルの作成」を参照。)
モデルの詳細を確認します。(「モデルの詳細」を参照。)
モデルをテストします。(分類と回帰の詳細は、Oracle Data Mining概要を参照してください。)
次のような問題についてモデルを評価します: モデルはどの程度正確か。モデルに関連付けられているルールがある場合、それらのルールの信頼度や支持度はどれほどか。モデルがビジネス上の問題にどのくらいよく対応しているか。
注意: このプロセスをさらに詳しく理解するために、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に示す列を持つ必要があります。
setting_name
列に挿入する値は、DBMS_DATA_MINING
パッケージで定義されている1つ以上の定数です。設定名(setting_name)が示す内容に応じて、setting_value
列の値には、設定自体に対応する実際の数値や事前定義の定数を指定できます。setting_value
列は、VARCHAR2
として定義されます。TO_CHAR()
関数を使用して数値入力を文字列に明示的にキャストするか、あるいはデータベースから提供される暗黙的な型変換を使用できます。
例5-1では、SVM分類モデルの設定表を作成します。SVMはデフォルトの分類機能ではないため、ALGO_NAME
設定を使用してこのアルゴリズムを指定します。SVMS_KERNEL_FUNCTION
をSVMS_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
設定を指定する必要はありません。
ALGO_NAMEの値 | アルゴリズム | デフォルトかどうか | マイニング・モデルの機能 |
---|---|---|---|
|
- |
||
|
- |
||
|
- |
||
|
- |
||
|
デフォルト |
||
|
デフォルト |
||
|
Non-Negative Matrix Factorization |
- |
|
|
- |
クラスタリング |
|
|
デフォルト |
CLAS_COST_TABLE_NAME
設定は、ディシジョン・ツリー・モデルの作成に使用するコスト・マトリックス表の名前を指定します。コスト・マトリックスは、分類モデルにバイアスをかけて、コストのかかる分類ミスを最小化します。コスト・マトリックス表は、表5-4に示す列を持つ必要があります。
表5-4 コスト・マトリックス表に必要な列
列名 | データ型 |
---|---|
|
|
|
|
|
|
ディシジョン・ツリーは、作成時にコスト・マトリックスを指定できる唯一のアルゴリズムです。ただし、スコアリングの際には、どの分類モデルにもコスト・マトリックスを作成して関連付けることができます。
スコアリングにコストを使用する場合は、表5-4に示す列を持つ表を作成し、DBMS_DATA_MINING.ADD_COST_MATRIX
プロシージャを使用してコスト・マトリックス表をモデルに追加します。PREDICTION
関数を呼び出すときに、コスト・マトリックスをインラインで指定することもできます。
関連項目: コストの詳細は、『Oracle Data Mining概要』を参照してください。 |
CLAS_PRIORS_TABLE_NAME
設定は、Naive Bayesモデルの作成に使用する事前確率表の名前を指定します。事前確率は、作成データと実際の母集団の間の分布の差を埋めるために使用されます。事前確率表は、表5-5に示す列を持つ必要があります。
関連項目: 事前確率の詳細は、『Oracle Data Mining概要』を参照してください。 |
CLAS_WEIGHTS_TABLE_NAME
設定は、より高い重み付けのクラスを優先するようにロジスティック回帰(GLM分類)またはSVM分類のモデルにバイアスをかけるために使用する、クラスの重み表の名前を指定します。重み表は、表5-6に示す列を持つ必要があります。
関連項目: クラスの重みの詳細は、『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
列 | 説明 |
---|---|
|
マイニング・モデルの所有者 |
|
マイニング・モデルの名前 |
|
設定の名前 |
|
設定の値 |
|
値がユーザーによって指定される場合はINPUT、システム生成値の場合はDEFAULT |
次の問合せを発行すると、SVM分類モデルSVMC_SH_CLAS_SAMPLE
の設定が表示されます。ALGO_NAME
、CLAS_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_MODEL
のmining_functionパラメータに指定できる値を表5-8に示します。
関連項目: マイニング機能の概要は、『Oracle Data Mining概要』を参照してください。 |
アルゴリズムによる処理が実行される前に作成データに適用する変換のリストを、必要に応じて指定できます。DBMS_DATA_MINING_TRANSFORM
のSTACK
インタフェースを使用して様々な属性の変換式のリストを作成したり、DBMS_DATA_MINING_TRANSFORM
のXFORM
インタフェースを使用して単一の変換を指定したり、または独自の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にまとめたモデルの詳細によって、モデルの透明性が確保されています。
マイニング・モデルはデータベース・スキーマ・オブジェクトです。システム権限やオブジェクト権限によりデータ・マイニング操作を制御します(『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
列 | 説明 |
---|---|
|
マイニング・モデルの所有者。 |
|
マイニング・モデルの名前。 |
|
マイニング・モデルの機能。「マイニング機能」を参照。 |
|
マイニング・モデルで使用されるアルゴリズム。「アルゴリズムの指定」を参照。 |
|
マイニング・モデルが作成された日付。 |
|
マイニング・モデル作成プロセスの期間(秒単位)。 |
|
マイニング・モデルのサイズ(MB単位)。 |
|
マイニング・モデルにSQL |
例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管理者ガイド』を参照してください。 |