36.2 CREATE_MODELプロシージャ
CREATE_MODEL
プロシージャの設定を示します。
DBMS_DATA_MINING
パッケージのCREATE_MODEL
プロシージャでは、指定のデータを使用して機械学習のモデルを作成します(作成の際に、モデルの名前と機械学習ファンクションを指定します)。モデルは、構成設定とユーザー指定の変換を使用して作成できます。
PROCEDURE CREATE_MODEL( model_name IN VARCHAR2, mining_function IN VARCHAR2, data_table_name IN VARCHAR2, case_id_column_name IN VARCHAR2, target_column_name IN VARCHAR2 DEFAULT NULL, settings_table_name IN VARCHAR2 DEFAULT NULL, data_schema_name IN VARCHAR2 DEFAULT NULL, settings_schema_name IN VARCHAR2 DEFAULT NULL, xform_list IN TRANSFORM_LIST DEFAULT NULL);
36.2.1 機械学習ファンクションの選択
CREATE_MODEL
プロシージャに使用可能なOracle Machine Learning for SQL機械学習ファンクションについて説明します。
OML4SQLの機械学習ファンクションによって、モデル化と解決が可能な問題のクラスを指定します。機械学習の指定には、CREATE_MODEL
プロシージャのmining_function
引数を使用します。
OML4SQLの機械学習ファンクションは、教師あり学習または教師なし学習のどちらかを実装しています。教師あり学習では、独立属性のセットを使用して従属属性の値またはターゲットを予測します。教師なし学習では従属属性と独立属性は区別されません。教師あり機能は予測的です。教師なし機能は記述的です。
ノート:
OML4SQLの用語では、機能(function)は機械学習への特定のアプローチによって解決される一般的な問題の種類を表します。SQL言語の用語では、関数(function)は結果を戻す演算子を表します。
OML4SQLのドキュメントでは、ファンクションまたは機械学習ファンクションという用語は、OML4SQLの機械学習のファンクションを表します。SQL関数またはSQL機械学習関数という用語は、スコアリング(機械学習のモデルを適用すること)に対応するSQL関数を表します。
CREATE_MODEL
プロシージャのmining_function
パラメータには、次の表に示した値を指定できます。
表36-2 Oracle Machine Learningのmining_function値
mining_functionの値 | 説明 |
---|---|
|
相関は、記述の機械学習ファンクションの一種です。相関モデルによって、データ・セット内に存在する関係とその発生確率(相関ルール)を特定します。 相関モデルではAprioriアルゴリズムが使用される。 |
|
属性重要度は、予測の機械学習ファンクションの一種です。属性評価モデルは、特定の結果を予測する中で属性の相対的な重要度を識別する。 属性重要度のモデルでは、最小記述長アルゴリズムとCUR行列分解が使用されます。 |
|
分類は、予測の機械学習ファンクションの一種です。分類モデルは、履歴データを使用して質的ターゲットを予測する。 分類のモデルでは、Naive Bayes、ニューラル・ネットワーク、ディシジョン・ツリー、ロジスティック回帰、ランダム・フォレスト、サポート・ベクター・マシン、明示的セマンティック分析またはXGBoostを使用できます。デフォルトはNaive Bayes。 分類の機械学習ファンクションは、1クラスSVMモデルおよび多変量状態推定法 - 逐次確率比検定モデルの異常検出に指定することもできます。 |
|
クラスタリングは、記述の機械学習ファンクションの一種です。クラスタリング・モデルは、データセットの中で自然なグループを識別する。 クラスタリング・モデルでは、k-Means、O-Clusterまたは期待値の最大化を使用できます。デフォルトはk-Means。 |
|
特徴抽出は、記述の機械学習ファンクションの一種です。特徴抽出モデルは、最適化された属性のセットを作成する。 特徴抽出モデルでは、Non-Negative Matrix Factorization、特異値分解(主成分分析にも使用可能)または明示的セマンティック分析が使用される。デフォルトはNon-Negative Matrix Factorization。 |
|
回帰は、予測の機械学習ファンクションの一種です。回帰モデルは、履歴データを使用して量的ターゲットを予測する。 回帰のモデルでは、サポート・ベクター・マシン、GLM回帰またはXGBoostを使用できます。デフォルトはサポート・ベクター・マシン。 |
|
時系列は、予測の機械学習ファンクションの一種です。時系列モデルは、ユーザー指定の時間ウィンドウに渡って時間順に並べられた過去の数値データに関する将来の値を予測します。時系列モデルでは、指数平滑法アルゴリズムが使用されます。デフォルトは指数平滑法です。 |
36.2.2 アルゴリズムの選択
モデルのアルゴリズム設定の指定について説明します。
ALGO_NAME
設定では、モデルのアルゴリズムを指定できます。機械学習ファンクションにデフォルトのアルゴリズムを使用する場合や、機械学習ファンクションに利用可能なアルゴリズムが1つのみの場合は、ALGO_NAME
設定を指定する必要はありません。
表36-3 Oracle Machine Learningのアルゴリズム
ALGO_NAMEの値 | アルゴリズム | デフォルトかどうか | 機械学習モデルのファンクション |
---|---|---|---|
|
最小記述長 |
— |
属性重要度 |
|
Apriori |
— |
相関 |
|
CUR行列分解 |
— |
属性重要度 |
|
ディシジョン・ツリー |
— |
分類 |
|
期待値最大化 |
— |
クラスタリング |
|
明示的セマンティック分析 |
— |
特徴抽出および分類 |
|
指数平滑法 |
— |
時系列 |
ALGO_EXTENSIBLE_LANG |
拡張可能アルゴリズムで使用される言語 |
— |
すべての機械学習ファンクションがサポートされます |
|
— |
分類と回帰 |
|
|
k-Means |
デフォルト |
クラスタリング |
|
多変量状態推定法 - 逐次確率比検定 |
— |
異常検出(ターゲットのない分類) |
|
Naive Bayes |
デフォルト |
分類 |
|
ニューラル・ネットワーク |
— |
分類 |
|
Non-Negative Matrix Factorization |
デフォルト |
特徴抽出 |
|
O-Cluster |
— |
クラスタリング |
|
ランダム・フォレスト |
— |
分類 |
|
特異値分解(主成分分析にも使用可能) |
— |
特徴抽出 |
|
サポート・ベクター・マシン |
デフォルト |
デフォルトの回帰アルゴリズム。回帰、分類および異常検出(ターゲットのない分類) |
|
XGBoost |
— |
分類と回帰 |
36.2.3 変換の指定
変換におけるxform_list
パラメータの役割について説明します。
36.2.3.1 変換リストの作成
様々な方法で変換リストを作成する理由について説明します。
変換リストを作成する方法は次のとおりです。
-
DBMS_DATA_MINING_TRANSFORM
のSTACK
インタフェース。STACK
インタフェースは、属性または属性のグループに適用可能な事前定義された変換のセットを提供します。たとえば、すべての質的属性に対して教師ありビニングを指定することができます。 -
DBMS_DATA_MINING_TRANSFORM
のSET_TRANSFORM
プロシージャ。SET_TRANSFORM
プロシージャは、指定されたSQL式を指定された属性に適用します。たとえば、次の文では、country_id
の変換指示を、my_xforms
という変換リストに追加します。変換指示は、アルゴリズムの処理が開始される前にcountry_id
を10で割ります。逆変換はcountry_id
に10を掛けます。dbms_data_mining_transform.SET_TRANSFORM (my_xforms, 'country_id', NULL, 'country_id/10', 'country_id*10');
逆変換はモデルの詳細で適用されます。
country_id
が教師ありモデルのターゲットである場合、逆変換はスコアリングされるターゲットにも適用されます。
36.2.3.2 変換リストおよび自動データ準備
変換リストと自動データ準備(ADP)間の相互作用について理解します。
CREATE_MODEL
に対する変換リスト引数は、自動データ準備(ADP)を制御するPREP_AUTO
設定と次のように相互作用します。
-
ADPが有効で、変換リストを指定した場合、ユーザー指定の変換は自動変換とともに適用されてモデルに組み込まれます。指定した変換は、自動変換の前に実行されます。
-
ADPが無効で、変換リストを指定した場合、ユーザー指定の変換が適用されてモデルに組み込まれますが、システム生成の変換は実行されません。
-
ADPが有効で、変換リストを指定しなかった場合、システム生成の変換が適用されてモデルに組み込まれます。
-
ADPが無効で、変換リストも指定しなかった場合、変換はモデルに組み込まれません。モデルの作成、テストおよびスコアリングに使用するデータセットは別個に準備する必要があります。