5.2 CREATE_MODELプロシージャ

DBMS_DATA_MININGパッケージのCREATE_MODELプロシージャは、指定されたデータを使用して、指定された名前およびマイニング機能を持つマイニング・モデルを作成します。モデルは、構成設定とユーザー指定の変換を使用して作成できます。

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

5.2.1 マイニング機能の選択

CREATE_MODELへのマイニング機能の提供について説明します。

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

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

ノート:

データ・マイニングの用語では、機能(function)とは、特定のデータ・マイニング・アプローチを使用して解決される問題の一般的な種類です。SQL言語の用語では、関数(function)は値を戻す演算子です。

Oracle Data Miningのドキュメントでは、機能(function)またはマイニング機能(mining function)という用語は、データ・マイニング機能を表し、SQL関数(SQL function)またはSQLデータ・マイニング関数(SQL Data Mining function)という用語は、スコアリング(データ・マイニング・モデルの適用)用のSQL関数を表します。

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

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

Mining_Functionの値 説明

ASSOCIATION

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

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

ATTRIBUTE_IMPORTANCE

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

属性重要度モデルでは、最小記述長アルゴリズムとCUR行列分解が使用されます。

CLASSIFICATION

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

分類モデルでは、Naive Bayes、ニューラル・ネットワーク、ディシジョン・ツリー、ロジスティック回帰、ランダム・フォレスト、サポート・ベクター・マシンまたは明示的セマンティック分析を使用できます。デフォルトはNaive Bayes。

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

CLUSTERING

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

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

FEATURE_EXTRACTION

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

特徴抽出モデルでは、Non-Negative Matrix Factorization、特異値分解(主成分分析にも使用可能)または明示的セマンティック分析が使用される。デフォルトはNon-Negative Matrix Factorization。

REGRESSION

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

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

TIME_SERIES

時系列は、予測マイニング機能です。時系列モデルは、ユーザー指定の時間ウィンドウに渡って時間順に並べられた過去の数値データに関する将来の値を予測します。時系列モデルでは、指数平滑法アルゴリズムが使用されます。デフォルトは指数平滑法です。

関連トピック

5.2.2 アルゴリズムの選択

モデルのアルゴリズム設定の指定について説明します。

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

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

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

ALGO_AI_MDL

最小記述

属性評価

ALGO_APRIORI_ASSOCIATION_RULES

Apriori

相関

ALGO_CUR_DECOMPOSITION

CUR分解

 

属性評価

ALGO_DECISION_TREE

ディシジョン・ツリー

分類

ALGO_EXPECTATION_MAXIMIZATION

期待値最大化

ALGO_EXPLICIT_SEMANTIC_ANALYS

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

特徴抽出

分類

ALGO_EXPONENTIAL_SMOOTHING

指数平滑法

時系列

ALGO_EXTENSIBLE_LANG

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

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

ALGO_GENERALIZED_LINEAR_MODEL

一般化線形モデル

分類、回帰

ALGO_KMEANS

k-Means

デフォルト

クラスタリング

ALGO_NAIVE_BAYES

Naive Bayes

デフォルト

分類

ALGO_NEURAL_NETWORK

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

分類

ALGO_NONNEGATIVE_MATRIX_FACTOR

Non-Negative Matrix Factorization

デフォルト

特徴抽出

ALGO_O_CLUSTER

O-Cluster

クラスタリング

ALGO_RANDOM_FOREST

ランダム・フォレスト

分類

ALGO_SINGULAR_VALUE_DECOMP

特異値分解(主成分分析にも使用可能)

特徴抽出

ALGO_SUPPORT_VECTOR_MACHINES

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

デフォルト

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

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

5.2.3 変換の指定

必要に応じて、CREATE_MODELxform_listパラメータで作成データに対する変換を指定できます。変換の指示がモデル内に組み込まれ、新しいデータへのモデルの適用時には常にその変換指示が再適用されます。

5.2.3.1 変換リストの作成

変換リストを作成する方法は次のとおりです。

  • DBMS_DATA_MINING_TRANSFORMSTACKインタフェース。

    STACKインタフェースは、属性または属性のグループに適用可能な事前定義された変換のセットを提供します。たとえば、すべての質的属性に対して教師ありビニングを指定することができます。

  • DBMS_DATA_MINING_TRANSFORMSET_TRANSFORMプロシージャ。

    SET_TRANSFORMプロシージャは、指定されたSQL式を指定された属性に適用します。たとえば、次の文では、country_idの変換指示を、my_xformsという変換リストに追加します。変換指示は、アルゴリズムの処理が開始される前にcountry_idを10で割ります。逆変換はcountry_idに10を掛けます。

      dbms_data_mining_transform.SET_TRANSFORM (my_xforms,
         'country_id', NULL, 'country_id/10', 'country_id*10');
    

    逆変換はモデルの詳細で適用されます。country_idが教師ありモデルのターゲットである場合、逆変換はスコアリングされるターゲットにも適用されます。

5.2.3.2 変換リストおよび自動データ準備

変換リストと自動データ準備(ADP)間の相互作用について理解します。

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

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

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

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

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