モデル設定の指定
モデル設定を指定すれば、自分のモデルを構成できます。
機械学習モデルは、作成時に多数の構成設定を使用して構成できます。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;