Python のランダム フォレスト手法とは何ですか?
ランダム フォレストは、分類や回帰などの問題に適用できる強力なアンサンブル学習アルゴリズムです。集団的な意思決定方法で精度と堅牢性を向上させるために、複数のデシジョン ツリーで構成されます。ランダム フォレストの構築に必要な Python ライブラリの依存関係には、scikit-learn (sklearn) を使用するランダム フォレスト パッケージが含まれます。
ランダムフォレストとは何ですか?
ランダム フォレストは、データセットでトレーニングすることによって出力変数の値を予測する教師あり学習モデルです。連続または離散出力変数を処理します。ランダム フォレストは複数のデシジョン ツリーで構成されます。変数と構築された分割点上の分割点をランダムに選択します。
ランダム フォレストの利点は何ですか?
ランダム フォレストには、現代のデータ サイエンスで最も人気のある予測手法の 1 つとなっている重要な利点がいくつかあります。
Python を使用してランダム フォレストを実装するにはどうすればよいですか?
ランダム フォレストの実装には、Python ライブラリ scikit-learn (sklearn) のインストールが必要です。インストール手順は次のとおりです。
pip install scikit-learn
インストール後、sklearn ライブラリによって提供される API を使用して、ランダム フォレストを実装できます。
この前に、必要なライブラリをロードする必要があります:
from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split
一般的に、ランダム フォレスト モデルをトレーニングし、それを予測に使用するには、次の 4 つの手順を実行できます。
このコード例では、scikit-learn の組み込み Iris データセットを使用します。
def load_data(): data = load_iris() return data.data, data.target
n_estimatorsこのパラメーターはフォレスト内の木の数を定義します。各木はランダムなサンプルと変数を使用してトレーニングされます。選択する推奨されるツリーの数は、特定の問題のサイズによって異なります。この数を超えるとトレーニング時間が長くなり、ツリーが少なすぎるとモデルが過学習になる可能性があります:
def create_model(): model = RandomForestClassifier(n_estimators=100, max_depth=3, random_state=0) return model
def train_test_split_data(X, y, test_size=0.3): return train_test_split(X, y, test_size=test_size, random_state=0)
fit() メソッドを使用してモデルをトレーニングし、テスト データを使用してモデルの精度を評価します。
def train_model(model, X_train, y_train): model.fit(X_train, y_train) return model def evaluate_model(model, X_test, y_test): accuracy = model.score(X_test, y_test) return accuracy
from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split def load_data(): data = load_iris() return data.data, data.target def create_model(): model = RandomForestClassifier(n_estimators=100, max_depth=3, random_state=0) return model def train_test_split_data(X, y, test_size=0.3): return train_test_split(X, y, test_size=test_size, random_state=0) def train_model(model, X_train, y_train): model.fit(X_train, y_train) return model def evaluate_model(model, X_test, y_test): accuracy = model.score(X_test, y_test) return accuracy if __name__ == "__main__": X, y = load_data() X_train, X_test, y_train, y_test = train_test_split_data(X, y) model = create_model() trained_model = train_model(model, X_train, y_train) accuracy = evaluate_model(trained_model, X_test, y_test) print("Accuracy:", accuracy)
以上がPython のランダム フォレスト技術とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。