モデル設定の指定

モデル設定を指定すれば、自分のモデルを構成できます。

機械学習モデルは、作成時に多数の構成設定を使用して構成できます。CREATE_MODELまたはCREATE_MODEL2プロシージャにモデル設定を指定します。CREATE_MODELプロシージャに設定を指定するには、次の表に示す列を持つ設定表を作成し、その表をプロシージャに渡します。

CREATE_MODEL2プロシージャも使用できます。この場合、プロシージャで使用できる変数にモデル設定を直接渡すことができます。変数は、DBMS_DATA_MINING.SETTING_LISTプロシージャを使用して宣言できます。

表6-1 設定表に必要な列

列名 データ型

setting_name

VARCHAR2(30)

setting_value

VARCHAR2(4000)

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

例6-2では、SETTING_LISTの変数に格納されているモデル設定を使用して、モデルを作成します。

通常はモデルに適用される設定と、アルゴリズムに固有の設定があります。モデル設定は表6-2および表6-3を参照してください。

表6-2 一般的なモデルの設定

設定 説明

機械学習ファンクションの設定

機械学習手法の設定

アルゴリズム名

アルゴリズム名

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

グローバル設定

自動データ準備

自動データ準備

表6-3 アルゴリズム固有のモデルの設定

アルゴリズム 説明

CUR行列分解

DBMS_DATA_MINING -アルゴリズムの設定: CUR行列分解

デシジョン・ツリー

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

期待値最大化

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

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

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

指数平滑法

DBMS_DATA_MINING —アルゴリズムの設定: 指数平滑法モデル

一般化線形モデル

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

k-Means

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

多変量状態推定法 - 逐次確率比検定

DBMS_DATA_MINING - アルゴリズム設定: 多変量状態推定技術 - 逐次確率比検定

Naive Bayes

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

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

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

Non-Negative Matrix Factorization

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

O-Cluster

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

ランダム・フォレスト

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

特異値分解

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

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

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

XGBoost

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

ノート:

XGBoostの目標には、分類機能モデルにのみ適用されるものもあれば、回帰機能モデルにのみ適用されるものもあります。互換性のないobjective値を指定すると、エラーが発生します。DBMS_DATA_MINING.CREATE_MODELプロシージャで、DBMS_DATA_MINING.CLASSIFICATIONを関数として指定した場合、使用できる目標値はbinary値およびmulti値のみです。例外の1つはbinary: logitrawで、これは、連続値を生成して回帰モデルにのみ適用されます。DBMS_DATA_MINING.REGRESSIONを関数として指定する場合は、binary: logitrawまたはcountrankregおよびsurvivalのいずれかの値を目標として指定できます。

XGBoostの目標の設定値は、DBMS_DATA_MINING — アルゴリズムの設定: XGBoostの「学習タスクの設定」表にリストされています。

例6-1 CREATE.MODELプロシージャを使用した設定表の作成およびSVM分類モデルの作成

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;
/
-- 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 => 'svmc_sh_sample_settings');
END;

例6-2 CREATE_MODEL2プロシージャを使用したSVM分類モデルのモデル設定の指定

DECLARE
    v_setlist DBMS_DATA_MINING.SETTING_LIST;
BEGIN
    v_setlist('PREP_AUTO') := 'ON';
    v_setlist('ALGO_NAME') := 'ALGO_SUPPORT_VECTOR_MACHINES';
    v_setlist('SVMS_KERNEL_FUNCTION') := 'SVMS_LINEAR';
 
    DBMS_DATA_MINING.CREATE_MODEL2(
        MODEL_NAME          => 'SVM_MODEL',
        MINING_FUNCTION     => 'CLASSIFICATION',
        DATA_QUERY          => 'select * from mining_data_build_v',
        SET_LIST            => v_setlist,
        CASE_ID_COLUMN_NAME => 'CUST_ID,
	TARGET_COLUMN_NAME  => 'AFFINITY_CARD');
END;