29 ランダム・フォレスト

分類アルゴリズムとしてランダム・フォレストを使用する方法を学習します。

29.1 ランダム・フォレストについて

ランダム・フォレストは、ツリーのアンサンブル(フォレストとも呼ばれる)を作成する分類アルゴリズムです。

このアルゴリズムでは、多数のディシジョン・ツリー・モデルが作成され、ツリーの集合を使用して予測が行われます。個々のディシジョン・ツリーは、トレーニング・データセットからランダムなサンプルを入力値として選択することで作成されます。ツリーの各ノードでは、分岐点を計算するために予測子のランダム・サンプルのみが選択されます。これにより、フォレスト内の様々なツリーで使用されるデータが変化します。RFOR_SAMPLING_RATIOパラメータとRFOR_MTRYパラメータは、各ノードで選択されるサンプル・サイズと予測子の数を指定するために使用されます。ユーザーは、アルゴリズムを実行する前に、ODMS_RANDOM_SEEDを使用してランダム・シード値を設定できます。

29.2 ランダム・フォレストの構築

ランダム・フォレストは、Oracle Machine Learning for SQLの既存のインフラストラクチャおよびアプリケーション・プログラミング・インタフェース(API)を基に構築されています。

このモデルは、既存のAPIでパラメータを指定して構築されます。スコアリングは、既存の分類アルゴリズムと同じSQL問合せとAPIを使用して実行されます。OML4SQLには、古典的なランダム・フォレスト・アルゴリズムとはわずかに異なるアルゴリズムが実装されています。この実装により、大規模なデータセットがサポートされます。アルゴリズムの実装は、次の点で異なります。

  • OML4SQLでは、バギングがサポートされておらず、かわりに、置換えなしのサンプリングが提供されています。

  • ユーザーは、ツリーの深さを指定できます。ツリーは最大の深さまで作成されません。

例29-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パッケージおよびタイプ・リファレンス』を参照してください。

注意:

モデル設定と同じ意味でハイパーパラメータという用語も使用されます。

29.3 ランダム・フォレストを使用したスコアリング

ランダム・フォレスト・アルゴリズムを使用したスコアリングの方法を学習します。

ランダム・フォレストを使用したスコアリングは、他の分類アルゴリズムと同じです。次の関数がサポートされています: PREDICTIONPREDICTION_PROBABILITYPREDICTION_COST PREDICTION_SETPREDICTION_DETAILS