28 ランダム・フォレスト
分類アルゴリズムとしてランダム・フォレストを使用する方法について説明します。
28.1 ランダム・フォレストについて
ランダム・フォレストは、ツリーのアンサンブル(フォレストとも呼ばれる)を構築する分類アルゴリズムです。
このアルゴリズムは、複数のディシジョン・ツリー・モデルを構築し、アンサンブルを使用して予測します。それぞれのディシジョン・ツリーは、入力としてトレーニング・データ・セットからランダム・サンプルを選択することで構築されます。ツリーの各ノードでは、分岐ポイントの計算のために予測子のランダム・サンプルが選択されます。これにより、異なるツリーで使用されるデータにばらつきが生じます。パラメータのRFOR_SAMPLING_RATIO
とRFOR_MTRY
は、各ノードで選択されるサンプル・サイズと予測子の数を指定するために使用されます。ユーザーは、アルゴリズムの実行前にODMS_RANDOM_SEED
を使用してランダム・シード値を設定できます。
関連トピック
28.2 ランダム・フォレストの構築
ランダム・フォレストは、Oracle Machine Learning for SQLの既存のインフラストラクチャとアプリケーション・プログラミング・インタフェース(API)に基づいて構築されます。
モデルは、既存のAPIにパラメータを指定することで構築します。スコアリングは既存の分類アルゴリズムと同じSQL問合せとAPIを使用して実行されます。OML4SQLは、古典的なランダム・フォレスト・アルゴリズムの変種を実装します。この実装では、ビッグ・データのセットがサポートされます。アルゴリズムの実装は、次の点で異なります。
-
OML4SQLでは、バギングはサポートされませんが、かわりに非復元サンプリングが用意されています
-
ユーザーはツリーの深度を指定できます。ツリーは最大深度までは構築されません。
例28-1の例
この例は、ランダム・フォレスト・モデルの構築方法についての説明です。設定表を作成してデータを移入するときに、設定表に行を挿入してアルゴリズムとバリアントを指定します。
INSERT INTO SETTINGS_TABLE (setting_name, setting_value) VALUES ('ALGO_NAME', 'ALGO_RANDOM_FOREST');
次のようにモデルを構築します。
BEGIN DBMS_DATA_MINING.CREATE_MODEL(
model_name => ‘model-name',
mining_function => dbms_data_mining.classification,
data_table_name => 'test_table',
case_id_column_name => '',
target_column_name => 'test_target',
settings_table_name => 'settings_table');
END;
/
参照:
使用可能なモデル設定のリストと説明は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。注意:
hyperparameterという用語は、モデル設定でも同じ意味で使用されます。