機械学習でランダム フォレスト アルゴリズムを実装するためのガイド

王林
リリース: 2023-04-08 18:01:08
転載
786 人が閲覧しました

データの予測と分析に機械学習モデルが普及するにつれて、ランダム フォレスト アルゴリズムの使用が勢いを増しています。ランダム フォレストは、機械学習の分野で回帰および分類タスクに使用される教師あり学習アルゴリズムです。これは、トレーニング時に多数の決定木を構築し、クラスのモード (分類) または単一ツリーの平均予測 (回帰) のいずれかのクラスを出力することによって機能します。

#この記事では、オンラインの実世界データ セットを使用してランダム フォレスト アルゴリズムを実装する方法について説明します。また、詳細なコードの説明と各ステップの説明、モデルのパフォーマンスと視覚化の評価も提供します。

使用するデータセットは「ウィスコンシン州乳がん (診断) データセット」です。これは一般に公開されており、UCI Machine Learning リポジトリを通じてアクセスできます。データセットには、30 の属性と 2 つのカテゴリ (悪性と良性) を持つ 569 のインスタンスがあります。私たちの目標は、これらの症例を 30 の属性に基づいて分類し、良性か悪性かを判断することです。データセットは https://www.kaggle.com/datasets/uciml/breast-cancer-wisconsin-data からダウンロードできます。

まず、必要なライブラリをインポートします:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
ログイン後にコピー

次に、データセットを読み込みます:

df = pd.read_csv(r"C:UsersUserDownloadsdatabreast_cancer_wisconsin_diagnostic_dataset.csv")
df
ログイン後にコピー

出力:

機械学習でランダム フォレスト アルゴリズムを実装するためのガイド

機械学習でランダム フォレスト アルゴリズムを実装するためのガイド

##モデルを構築する前に、データを前処理する必要があります。 「id」列と「Unnamed: 32」列はモデルには役に立たないので、削除します。

df = df.drop([ 'id' , 'Unnamed: 32' ], axis=1) 
df
ログイン後にコピー

出力:

機械学習でランダム フォレスト アルゴリズムを実装するためのガイド

次に、「Diagnostic」列をターゲット変数に割り当て、機能から削除します。

target = df['diagnosis']
features = df.drop('diagnosis', axis=1)
ログイン後にコピー

データセットをトレーニング セットとテスト セットに分割します。データの 70% をトレーニングに使用し、30% をテストに使用します。

X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.3, random_state=42)
ログイン後にコピー

データを前処理してトレーニング セットとテスト セットに分割すると、次のことが可能になります。ランダム フォレスト モデルを構築します。

rf = RandomForestClassifier(n_estimators=100, random_state=42) 
rf.fit(X_train, y_train)
ログイン後にコピー

ここでは、フォレスト内のデシジョン ツリーの数を 100 に設定し、ランダム状態を [結果の再現性を確保] に設定します。

これで、モデルのパフォーマンスを評価できます。精度スコア、混同行列、分類レポートを評価に使用します:

y_pred = rf.predict(X_test)
ログイン後にコピー
# 准确度分数
print("Accuracy Score:", accuracy_score(y_test, y_pred))
# Confusion Matrix
conf_matrix = confusion_matrix(y_test, y_pred)
print("Confusion Matrix:n", conf_matrix)
# Classification Report
class_report = classification_report(y_test, y_pred)
print("Classification Report:n", class_report)
ログイン後にコピー

出力:

機械学習でランダム フォレスト アルゴリズムを実装するためのガイド

精度スコアは、インスタンスを正しく分類する際にモデルがどの程度うまく機能するかを示します。混同行列により、モデルの分類パフォーマンスをより深く理解できるようになります。分類レポートは、両方のクラスの適合率、再現率、f1 スコア、およびサポート値を提供します。

最後に、モデル内の各機能の重要性を視覚化できます。これを行うには、特徴の重要度の値を示す棒グラフを作成します。

importance = rf.feature_importances_
feat_imp = pd.Series(importance, index=features.columns)
feat_imp = feat_imp.sort_values(ascending=False)
ログイン後にコピー
plt.figure(figsize=(12,8))
feat_imp.plot(kind='bar')
plt.ylabel('Feature Importance Score')
plt.title("Feature Importance")
plt.show()
ログイン後にコピー

出力:

機械学習でランダム フォレスト アルゴリズムを実装するためのガイド

##この棒グラフは、各機能の重要性を降順で表示します。最初の 3 つの重要な特徴は、「平均凹面」、「最悪の凹面」、および「最悪の領域」であることがわかります。

要約すると、機械学習でのランダム フォレスト アルゴリズムの実装は、分類タスクのための強力なツールです。これを使用して、複数の特徴に基づいてインスタンスを分類し、モデルのパフォーマンスを評価できます。このペーパーでは、オンラインの実世界データセットを使用し、詳細なコードの説明と各ステップの説明、モデルのパフォーマンスと視覚化の評価を提供します。

以上が機械学習でランダム フォレスト アルゴリズムを実装するためのガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:51cto.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート