モデル設定の指定
機械学習モデルの作成時の構成方法について理解します。
機械学習モデルは、作成時に多数の構成設定を使用して構成できます。設定を指定するには、次の表に示す列を持つ設定表を作成し、その表を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;