25 ランダム・フォレスト
分類アルゴリズムとしてランダム・フォレストを使用する方法を学習します。
関連項目
25.1 ランダム・フォレストとは
ランダム・フォレストは、Oracle Data Miningで使用される分類アルゴリズムです。このアルゴリズムは、ツリーのアンサンブル(フォレストとも呼ばれる)を作成します。
このアルゴリズムは、多数のデシジョン・ツリー・モデルを作成し、アンサンブルを使用して予測します。個々のデシジョン・ツリーは、トレーニング・データセットからランダムなサンプルを入力値として選択することで作成されます。ツリーの各ノードでは、分岐点を計算するために予測子のランダム・サンプルのみが選択されます。これにより、フォレスト内の様々なツリーで使用されるデータが変化します。RFOR_SAMPLING_RATIO
パラメータとRFOR_MTRY
パラメータは、各ノードで選択されるサンプル・サイズと予測子の数を指定するために使用されます。ユーザーは、アルゴリズムを実行する前に、ODMS_RANDOM_SEED
を使用してランダム・シード値を設定できます。
関連項目
25.2 ランダム・フォレストの構築
ランダム・フォレストは、Oracle Data Miningの既存のインフラストラクチャ上とアプリケーション・プログラミング・インタフェース(API)上に構築されます。
このモデルは、既存のAPIでパラメータを指定して構築されます。スコアリングは、既存の分類アルゴリズムと同じSQL問合せとAPIを使用して実行されます。Oracle Data Miningは、古典的なランダム・フォレスト・アルゴリズムのバリアントを実装しています。この実装により、大規模なデータセットがサポートされます。アルゴリズムの実装は、次の点で異なります。
-
Oracle Data Miningではバギングがサポートされていないため、かわりに置換えなしのサンプリングを提供します。
-
ユーザーは、ツリーの深さを指定できます。ツリーは最大の深さまで作成されません。
例25-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;
/