説明: これは機械学習の実践プロジェクトです (データ + コード + ドキュメント + ビデオ説明)データ + コード + ドキュメント + ビデオ説明が必要な場合は、記事の最後に直接アクセスして入手できます。
1. プロジェクトの背景
Hunter–prey optimizer (HPO) は、Naruei & Keynia によって 2022 年に提案された最新の最適化検索アルゴリズムです。彼らは、捕食者(ライオン、ヒョウ、オオカミなど)と被食者(鹿やガゼルなど)の行動にヒントを得て、狩猟者と被食者の位置移動法に基づいた新しい探索法と適応度更新法を設計しました。
このプロジェクトでは、HPO ハンター-プレイ最適化アルゴリズムを使用して、BP ニューラル ネットワーク回帰モデルを最適化するための最適なパラメーター値を見つけます。
2. データ取得
今回のモデリングデータはインターネットから取得したもの(このプロジェクトの作成者が作成)、データ項目の統計は次のとおりです。
データ詳細は以下の通りです(一部表示)。
3. データの前処理
3.1 Pandas ツールを使用してデータを表示する
Pandas ツールの head() メソッドを使用して、データの最初の 5 行を表示します。
キーコード:
3.2 データ欠落ビュー
データ情報を表示するには、Pandas ツールの info() メソッドを使用します。
上の図からわかるように、変数は合計 11 個あり、データには欠損値がなく、合計 2000 個のデータがあります。
キーコード:
3.3 データ記述統計
Pandas ツールの description() メソッドを使用して、データの平均、標準偏差、最小値、分位数、および最大値を表示します。
キーコードは次のとおりです。
4. 探索的データ分析
4.1 y 変数のヒストグラム
Matplotlib ツールの hist() メソッドを使用して、ヒストグラムを描画します。
上の図からわかるように、y 変数は主に -400 ~ 400 の間に集中しています。
4.2 相関分析
上図からわかるように、値が大きいほど相関が強いことを示しており、正の値は正の相関、負の値は負の相関を示します。
5. 特徴量エンジニアリング
5.1 特徴データとラベルデータの確立
キーコードは次のとおりです。
5.2 データセットの分割
train_test_split() メソッドを使用して、80% のトレーニング セットと 20% のテスト セットに従って分割します。キー コードは次のとおりです。
6. BP ニューラル ネットワーク回帰モデルを最適化するための HPO ハンター-獲物最適化アルゴリズムを構築する
主に HPO ハンター-プレイ最適化アルゴリズムを使用して、ターゲット回帰の BP ニューラル ネットワーク回帰アルゴリズムを最適化します。
6.1 HPO ハンター・プレイ最適化アルゴリズムによって発見された最適パラメータ
キーコード:
最適なパラメータ:
6.2 最適パラメータ値構築モデル
6.3 最適パラメータモデルの概要情報
6.4 最適パラメータモデルのネットワーク構造
6.5 最適パラメータモデルトレーニングセットテストセット損失曲線
7. モデルの評価
7.1 評価指標と結果
評価指標には主に説明可能な分散値、平均絶対誤差、平均二乗誤差、R二乗値などが含まれます。
上の表から、R 二乗が 0.9996 であることがわかります。これは、モデルの効果が優れていることを意味します。
キーコードは次のとおりです。
7.2 実測値と予測値の比較表
上図から、実際の値と予測値の変動は基本的に同じであり、モデル フィッティング効果が良好であることがわかります。
8. 結論と展望
要約すると、この論文は、HPO ハンター-プレイ最適化アルゴリズムを使用して、BP ニューラル ネットワーク回帰アルゴリズムの最適なパラメーター値を見つけて回帰モデルを構築し、最終的に提案したモデルがうまく機能することを証明します。このモデルは、日常の製品の予測に使用できます。
def __init__(self, m, T, lb, ub, R, C, X_train, y_train, X_test, y_test):
self.M = m # 种群个数
self.T = T # 迭代次数
self.lb = lb # 下限
self.ub = ub # 上限
self.R = R # 行
self.C = C # 列
self.b = 0.1 # 调节参数
self.X_train = X_train # 训练集特征
self.X_test = X_test # 测试集特征
self.y_train = y_train # 训练集标签
self.y_test = y_test # 测试集标签
# ******************************************************************************
# 本次机器学习项目实战所需的资料,项目资源如下:
# 项目说明:
# 链接:https://pan.baidu.com/s/1-P7LMzRZysEV1WgmQCpp7A
# 提取码:5fv7
# ******************************************************************************
# 提取特征变量和标签变量
y = df['y']
X = df.drop('y', axis=1)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
プロジェクトの実践の詳細については、機械学習プロジェクトの実践コレクションのリストを参照してください。