モデル設定の指定
機械学習モデルの作成時の構成方法について理解します。
機械学習モデルは、作成時に多数の構成設定を使用して構成できます。設定を指定するには、次の表に示す列を持つ設定表を作成し、その表をCREATE_MODEL
に渡します。
CREATE_MODEL2
プロシージャを使用できます。これは、プロシージャで使用できる変数にモデル設定を直接渡すことができます。変数は、DBMS_DATA_MINING.SETTING_LIST
プロシージャを使用して宣言できます。
表4-1 設定表に必要な列
列名 | データ型 |
---|---|
|
|
|
|
例4-1では、サポート・ベクター・マシン(SVM)分類モデルの設定表が作成されます。SVMはデフォルトの分類機能ではないため、ALGO_NAME
設定を使用してこのアルゴリズムを指定します。SVMS_KERNEL_FUNCTION
をSVMS_LINEAR
に設定することにより、モデルは線形カーネルを使用して作成されます。カーネル関数を指定しない場合、アルゴリズムがデータの属性の数に基づいてカーネルを選択します。
例4-2では、SETTING_LIST
の変数に格納されているモデル設定を使用して、モデルを作成します。
通常はモデルに適用される設定と、アルゴリズムに固有の設定があります。モデル設定は表4-2および表4-3を参照してください。
表4-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の「学習タスクの設定」表にリストされています。
例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;