投票回帰変数を使用した糖尿病データセットの回帰予測 VotingRegressor

1. 著者紹介

Yu Chengwei、男性、西安理工大学電子情報学部、2022 年大学院 研究方向
: マシンビジョンと人工知能
電子メール: [email protected]
Zhang Siyi、女性、西安理工大学電子情報学部、 2022 年の大学院生、張宏偉氏の人工知能研究グループ
研究方向: マシン ビジョンと人工知能
電子メール: [email protected]

2. VotingRegressor の概要

2.1 VotingRegressor の概要

VotingRegressor は、複数の個別の回帰モデルの予測を組み合わせた回帰タスクのアンサンブル学習方法です。これは、さまざまなモデルの長所を組み合わせることによって予測パフォーマンスを向上させることを目的としたアンサンブル学習の概念に由来しています。VotingRegressor アルゴリズムを使用すると、線形回帰、デシジョン ツリー、ランダム フォレスト、サポート ベクター回帰などのさまざまな回帰モデルを 1 つのアンサンブル モデルに組み合わせることができます。VotingRegressor は、個々のモデルの多様性とその集合的な予測力を活用することで、単一のモデルを単独で使用するよりも正確で堅牢な予測結果を提供することを目指しています。VotingRegressor アルゴリズムの具体的な実装と詳細は、使用されるソフトウェア ライブラリまたはフレームワークによって異なる場合があることに注意してください。

2.2 VotingRegressor アルゴリズムは次の重要な原則に従います。

①.VotingRegressor では、コレクション内の個々の回帰モデルが指定された入力を予測します。最終的な予測結果は、個々の予測結果を合計することで得られます。集計は、予測の平均 (平均) または加重平均を取ることで実行できます。
②. VotingRegressor は通常、均等または重み付けされた投票スキームを使用して、個々のモデルの予測の重要性を決定します。投票が等しい場合、各モデルの予測は同じ重みを持ちます。加重投票では、各モデルの予測には、推定されたパフォーマンスまたは信頼性に基づいて特定の重みが与えられます。
③. VotingRegressor は回帰タスク用に設計されているため、個々の予測の集計ではターゲット変数の連続的な性質が考慮されます。最終的な予測は、ターゲット変数の集計された推定値を表す連続値です。

3. 投票リグレッサー VotingRegressor を使用して、糖尿病データセットに対して回帰予測実験プロセスを実行します。

3.1 コード フローの概要

①. データ処理用の pandas、回帰モデル用の scikit-learn モジュール、視覚化用の matplotlib など、必要なライブラリをインポートします。
②. sklearn.datasets のload_diabetes() 関数を使用して、糖尿病データセットを読み込みます。特徴を X に割り当て、ターゲット変数を y に割り当てます。
③. sklearn.model_selection の train_test_split() 関数を使用して、データ セットをトレーニング セットとテスト セットに分割します。テスト サイズを 0.2 (データの 20%) に指定し、再現性のためにランダムな状態を設定します。
④. 線形回帰、ランダム フォレスト回帰、SVR (空間自己回帰モデル) の 3 つの個別の回帰モデルを作成します。
⑤. VotingRegressor インスタンスを作成し、名前と対応する回帰モデル インスタンスを含むプリミティブ リストを渡します。
⑥. vote_model オブジェクトの fit() メソッドを呼び出して、学習データを使用して、設定されたモデルを学習します。
⑦. vote_modelのpredict()メソッドを使用してテストセットを予測します。
⑧. sklearn.metrics のmean_squared_error() 関数と r2_score() 関数を使用して、平均誤差 (MSE) と R 二乗スコアを計算することでモデルを評価します。
⑨. plt.scatter() を使用して散布図を作成し、予測値と真の値を視覚化します。plt.plot() を使用して、完全な予測のための基準線を追加します。軸にラベルを付け、プロットのタイトルを付けます。プロットを表示するには、 plt.show() を使用します。
⑩. 計算された MSE スコアと R 二乗スコアを出力します。
このコードは、VotingRegressor が 3 つの異なる回帰モデルの予測を組み合わせて、糖尿病データセットのアンサンブル予測を提供する方法を示しています。散布図は、真の値と予測値の関係を視覚化します。

3.2 完全なコード

import pandas as pd
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor
from sklearn.svm import SVR
from sklearn.ensemble import VotingRegressor
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt

# Load the Diabetes dataset
diabetes = load_diabetes()
X = diabetes.data
y = diabetes.target

# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Create individual regression models
model1 = LinearRegression()
model2 = RandomForestRegressor()
model3 = SVR()

# Create the VotingRegressor with the individual models
voting_model = VotingRegressor([('lr', model1), ('rf', model2), ('svm', model3)])

# Train the ensemble model
voting_model.fit(X_train, y_train)

# Make predictions on the test set
y_pred = voting_model.predict(X_test)

# Evaluate the model
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

# Plot the predicted values vs. true values
plt.scatter(y_test, y_pred)
plt.plot([min(y_test), max(y_test)], [min(y_test), max(y_test)], 'r--')
plt.xlabel('True Values')
plt.ylabel('Predicted Values')
plt.title('True Values vs. Predicted Values')
plt.show()

print("Mean Squared Error:", mse)
print("R-squared Score:", r2)


3.3 実験結果

ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/m0_37758063/article/details/131294477