ランダム フォレスト アルゴリズムは、複数のデシジョン ツリーと、ブートストラップと集計と呼ばれる手法を使用して回帰および分類タスクを実行できるアンサンブル手法です。この背後にある基本的な考え方は、単一のデシジョン ツリーに依存するのではなく、複数のデシジョン ツリーを組み合わせて最終出力を決定することです。
機械学習におけるランダム フォレスト
ランダム フォレストは、多数の分類木を生成します。フォレスト内の各ツリーの下に入力ベクトルを配置し、入力ベクトルに基づいて新しいオブジェクトを分類します。各ツリーにはクラス (「投票」と呼ぶことができます) が割り当てられ、最も多くの票を獲得したクラスが最終的に選択されます。
次の段階は、ランダム フォレスト アルゴリズムがどのように機能するかを理解するのに役立ちます。
ステップ 1: まず、データセットからランダムなサンプルを選択します。
ステップ 2: サンプルごとに、アルゴリズムによってデシジョン ツリーが作成されます。すると、各決定木の予測結果が得られます。
ステップ 3: このステップで予想される各結果について投票が行われます。
ステップ 4: 最後に、最も多くの票を獲得した予測結果を最終予測結果として選択します。
ランダム フォレスト手法には次の利点があります。
- さまざまな意思決定の出力を平均化または統合することで、過剰適合の問題を解決します。木の質問。
- ランダム フォレストは、幅広いデータ項目に対して個別のデシジョン ツリーよりも優れたパフォーマンスを発揮します。
- ランダム フォレスト アルゴリズムは、大量のデータがない場合でも高い精度を維持します。
ランダム フォレストの特徴
ランダム フォレスト アルゴリズムの主な特徴は次のとおりです:
- はい 現在利用可能な最も正確なアルゴリズム。
- 巨大なデータベースに適しています。
- 何万もの入力変数を削除せずに処理できます。
- フォレストが成長するにつれて、汎化誤差の内部不偏推定値が生成されます。
- 大量のデータ損失が発生した場合でも精度を維持します。
- これには、クラス母集団内の不均一なデータセットの不正確さをバランスさせるためのメソッドが含まれています。
- 作成したフォレストは保存して、将来他のデータに使用できます。
- 変数とカテゴリ間の関係を示すプロトタイプを作成します。
- これは、例のペア間の距離を計算します。これは、クラスタリング、外れ値の検出、またはデータの魅力的なビュー (縮尺どおり) の提供に役立ちます。
- ラベルなしデータは、上記の機能を使用して教師なしクラスタリング、データ視覚化、および外れ値の識別を作成するために使用できます。
ランダム フォレストには、基本的な学習モデルとして複数のデシジョン ツリーがあります。データセットから行サンプリングと特徴サンプリングをランダムに実行して、各モデルのサンプル データセットを形成します。この部分はブートストラップと呼ばれます。
ランダム フォレスト回帰手法の使用方法
- 特定の質問またはデータを設計し、必要なデータを決定するためのソースを取得します。 。
- データがアクセス可能な形式であることを確認してください。そうでない場合は、必要な形式に変換してください。
- 必要なデータを取得するために必要な、明らかな異常や欠落しているデータ ポイントを指定します。
- 機械学習モデルを作成します。
- 達成したいベースライン モデルを設定します
- トレーニング データの機械学習モデル。
- テスト データを使用してモデルへの洞察を提供する
- 次に、テスト データとモデル予測データのパフォーマンス メトリクスを比較します。
- 満足できない場合は、それに応じてモデルを改善するか、他のデータ モデリング手法を使用してください。
- この段階では、取得されたデータが解釈され、それに応じて報告されます。
#ランダム フォレスト アルゴリズムの Python 実装プロセス
ステップ 1: 必要なライブラリをインポートします。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
ログイン後にコピー
ステップ 2: データセットをインポートして印刷する
ata=pd.read_csv('Salaries.csv')
print(data)
ログイン後にコピー
ステップ 3: データセットのすべての行と列 1 を x として選択し、すべての行と列 2 を y として選択します
x=df.iloc[:,:-1]#":" はすべての行が選択されることを意味し、":-1" は最後の列が無視されることを意味します
y=df.iloc[: , -1:]#":" はすべての行を選択することを意味し、"-1:" は最後の列を除くすべての列を無視することを意味します
#「iloc()」関数を使用すると、特定の行を選択できますデータ セットのセル、つまり、データ フレームまたはデータ セット内の値のセットから特定の行または列に属する値を選択するのに役立ちます。
ステップ 4: ランダム フォレスト リグレッサーをデータ セットに適合させる
from sklearn.ensemble import RandomForestRegressor
regressor=RandomForestRegressor(n_estimators=100,random_state=0)
regressor.fit(x,y)
ログイン後にコピー
ステップ 5: 新しい結果を予測する
Y_pred=regressor.predict(np.array([6.5]).reshape(1,1))
ログイン後にコピー
ステップ 6: 結果を視覚化する
#うわー
以上がランダム フォレスト アルゴリズムの原理と実際のアプリケーションの Python の例 (完全なコード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。