モデル設定の指定

機械学習モデルの作成時の構成方法について理解します。

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

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

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

列名 データ型

setting_name

VARCHAR2(30)

setting_value

VARCHAR2(4000)

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

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

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

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

設定 説明

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

機械学習手法の設定

アルゴリズム名

アルゴリズム名

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

グローバル設定

自動データ準備

自動データ準備

表4-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の「学習タスクの設定」表にリストされています。

例4-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;

例4-2 CREATE_MODEL2プロシージャを使用したGLM回帰モデルのモデル設定の指定

DECLARE
    v_setlist DBMS_DATA_MINING.SETTING_LIST;
BEGIN
    v_setlist('PREP_AUTO') := 'ON';
    v_setlist('ALGO_NAME') := 'ALGO_GENERALIZED_LINEAR_MODEL';
    v_setlist('GLMS_DIAGNOSTICS_TABLE_NAME') := 'GLMR_DIAG';
    v_setlist('GLMS_FTR_SELECTION') := 'GLMS_FTR_SELECTION_ENABLE';
    v_setlist('GLMS_FTR_GENERATION') := 'GLMS_FTR_GENERATION_ENABLE';
 
    DBMS_DATA_MINING.CREATE_MODEL2(
        MODEL_NAME          => 'GLM_REGR',
        MINING_FUNCTION     => 'REGRESSION',
        DATA_QUERY          => 'select * from TRAINING_DATA',
        SET_LIST            => v_setlist,
        CASE_ID_COLUMN_NAME => 'HID',
	TARGET_COLUMN_NAME  => 'MEDV');
END;

モデル設定

Oracle Machine Learningでは、アルゴリズムおよびモデルの設定またはハイパーパラメータを指定するための設定を使用します。設定には、一般的な設定と、機械学習ファンクションおよびアルゴリズムに固有の設定があります。