モデル設定の指定
モデル設定を指定すれば、自分のモデルを構成できます。
機械学習モデルは、作成時に多数の構成設定を使用して構成できます。CREATE_MODELまたはCREATE_MODEL2プロシージャにモデル設定を指定します。CREATE_MODELプロシージャに設定を指定するには、次の表に示す列を持つ設定表を作成し、その表をプロシージャに渡します。 
                  
CREATE_MODEL2プロシージャも使用できます。この場合、プロシージャで使用できる変数にモデル設定を直接渡すことができます。変数は、DBMS_DATA_MINING.SETTING_LISTプロシージャを使用して宣言できます。 
                  
表6-1 設定表に必要な列
| 列名 | データ型 | 
|---|---|
| 
 | 
 | 
| 
 | 
 | 
 例6-1では、サポート・ベクター・マシン(SVM)分類モデルの設定表が作成されます。SVMはデフォルトの分類機能ではないため、ALGO_NAME設定を使用してこのアルゴリズムを指定します。SVMS_KERNEL_FUNCTIONをSVMS_LINEARに設定することにより、モデルは線形カーネルを使用して作成されます。カーネル関数を指定しない場合、アルゴリズムがデータの属性の数に基づいてカーネルを選択します。
                  
例6-2では、SETTING_LISTの変数に格納されているモデル設定を使用して、モデルを作成します。
                  
通常はモデルに適用される設定と、アルゴリズムに固有の設定があります。モデル設定は表6-2および表6-3を参照してください。
表6-3 アルゴリズム固有のモデルの設定
| アルゴリズム | 説明 | 
|---|---|
| CUR行列分解 | |
| デシジョン・ツリー | |
| 期待値最大化 | |
| 明示的セマンティック分析 | |
| 指数平滑法 | |
| 一般化線形モデル | |
| k-Means | |
| 多変量状態推定法 - 逐次確率比検定 | |
| Naive Bayes | |
| ニューラル・ネットワーク | |
| Non-Negative Matrix Factorization | DBMS_DATA_MINING -アルゴリズムの設定: Non-Negative Matrix Factorization | 
| O-Cluster | |
| ランダム・フォレスト | |
| 特異値分解 | |
| サポート・ベクター・マシン | |
| XGBoost | 
ノート:
XGBoostの目標には、分類機能モデルにのみ適用されるものもあれば、回帰機能モデルにのみ適用されるものもあります。互換性のないobjective値を指定すると、エラーが発生します。DBMS_DATA_MINING.CREATE_MODELプロシージャで、DBMS_DATA_MINING.CLASSIFICATIONを関数として指定した場合、使用できる目標値はbinary値およびmulti値のみです。例外の1つはbinary: logitrawで、これは、連続値を生成して回帰モデルにのみ適用されます。DBMS_DATA_MINING.REGRESSIONを関数として指定する場合は、binary: logitrawまたはcount、rank、regおよび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;