このプロトコルは、公開されているベンチマークデータを用いて心臓病予測のためのアンサンブル機械学習モデルを作成し評価する計算プロセスを概説し、再現可能な前処理および評価構造を用いています。
Research Article
このプロトコルは、公開されているベンチマークデータを用いて心臓病予測のためのアンサンブル機械学習モデルを作成し評価する計算プロセスを概説し、再現可能な前処理および評価構造を用いています。
本論文は、ハードボーティング、ソフトボーティング、スタッキングなどの異なる機械学習アルゴリズムを組み合わせた、心臓病の予測におけるアンサンブルラーニングアルゴリズムの計算ベンチマーク評価を提示します。評価はKaggleリポジトリ(https://www.kaggle.com/datasets/sid321axn/heart-statlog-cleveland-hungary-final)から入手可能な心血管データセットを用いて行われ、1,190件の事例と11の臨床的特徴を含みます。このプロセスにはデータ前処理が含まれ、欠損値の処理、外れ値の除去、変数のスケーリング、クラスバランスを含み、ランダムフォレスト(RF)に基づく均一な入力特徴選択を用いて不要な特徴を排除します。評価されたモデルの中で、スタッキングアンサンブル分類器はテストデータセットで91.88%という最高確率を記録しました。比較分析のために精度、リコール率、F1スコアなどの追加指標が計算されましたが、本研究の重点は臨床検証よりも方法論的ベンチマーキングにあります。
Decision Tree、Random Forest、AdaBoost、XGBoostなどのさまざまな基本分類器が独立して適用・テストされます。これらのモデルは、ハードボーティング、ソフトボーティング、スタッキングなどのアンサンブル技法を用いて組み合わせられます。スタッキングでは、ロジスティック回帰がメタモデルとして用いられ、アウトオブフォードサンプルのクロス検証済み予測に基づいて学習され、過学習を回避します。
評価は比較の主要な基準として精度を用い、個々の分類システムとその組み合わせ戦略を同じ前処理および検証環境で均一に比較できるようにします。比較適応のためにパフォーマンス指標は提供されますが、このアプローチの重点は臨床評価ではなく戦略の策定と評価にあります。
このプロトコルにより、公開されている心血管データセット上でアンサンブル機械学習アルゴリズムを比較しやすくなり、データ前処理とアンサンブル構成手法の体系的な比較を支援します。
公開されている心血管疾患データセットは、分類アルゴリズムや予測モデリング技術を評価するための機械学習研究のベンチマーク問題として広く利用されています。臨床および人口統計的属性を含むこれらのデータセットは、制御された実験条件下で前処理戦略、特徴選択手法、アンサンブル学習アーキテクチャを比較するための標準化かつ再現性の高い基盤を提供します。そのため、臨床推論や実際の展開を支援するよりも、アルゴリズム的行動の評価に一般的に用いられています。
これまでの研究では、ロジスティック回帰(LR)、サポートベクターマシン(SVM)、ランダムフォレスト(RF)、勾配ブースティングモデル6、7、8、9など、心血管疾患の予測のためのさまざまな機械学習手法が検討されています。近年では、ハードボート、ソフトボート、スタッキングなどのアンサンブル学習技術に焦点を当て、モデルをより安定させ、パフォーマンスを向上させる研究が行われています。10,11,12,13,14。しかし、これらの研究におけるデータの準備方法、特徴の取り扱い方、検証方法、結果の測定方法の違いにより、直接報告された結果を比較するのは困難です。文献で一般的に報告されている心血管疾患カテゴリーの大まかな文脈概要を提供するために、図1に概念的な説明を示しています。

図1: よく報告されている心血管疾患カテゴリーの概念的イラスト(文脈的背景のみを含みます)。 この図の拡大版はこちらをクリックしてご覧ください。
図1 は高レベルの文脈参照用のみを含み、本研究で分析されたデータセットや提案された計算プロトコルの出力から得られたデータを表すものではありません。
特に、多くの既存の研究は、特徴選択タイミング、クラスバランス、アンサンブル構成など個々の方法論的要素の貢献を明確に分離せずにパフォーマンス成果を強調しています。15,16,17,18。このばらつきは、公開データセット上で一貫した前処理パイプラインと評価プロトコルを用いてアンサンブル機械学習手法を体系的に評価する再現可能なベンチマーキングフレームワークの必要性を浮き彫りにしています。
アンサンブル学習手法、特にスタッキング手法は、標準化された前処理および検証条件下で評価した場合、個々の基底分類器と比較して分類精度の向上とクラスごとのバランスの取れた性能を示すと仮説されています。
したがって、本研究の目的は、公開されているKaggleデータセットを用いて心血管疾患予測のためのアンサンブル機械学習手法の計算ベンチマーキング解析を行うことです。このプロセスには、標準化されたデータ前処理、特徴の重要度をランク付けするためのランダムフォレストアルゴリズムの利用、そしてハードボーティング、ソフトボーティング、スタッキングを含むさまざまなアンサンブル手法の採用が含まれます。ロジスティック回帰はスタッキングにおけるメタ分類アルゴリズムとして用いられます。これにより、交差検証済みの予測を用いるため、過学習が起きません。
本研究は公開データセットのベンチマーク調査として厳密に意図されています。その発見は単一のデータセットに依存し、データセット固有のバイアスの可能性により制限されており、臨床検証や展開を意味しません。臨床応用を検討する前に、独立したデータセットを用いた外部検証と前向き評価が必要です。
以下の研究課題が本研究の指針となります。
本研究は、ハードボーティング、ソフトボーティング、スタッキングなどの異なるアンサンブル機械学習手法が、公開されている心血管疾患データセットに適用した場合の分類精度の比較を検証します。
Access restricted. Please log in or start a trial to view this content.
このプロトコルは、公開されている心血管疾患データセットを用いてアンサンブル機械学習モデルのベンチマークを行う再現可能な計算ワークフローを記述しました。
データセットの選択
この研究は、Kaggleリポジトリから入手した公開されている心血管疾患データセットを用いています。データセットは1190のインスタンスで構成され、11の特徴を含んでいました。モデルトレーニングにはデータの80%が利用され、残りの20%はパフォーマンス評価に割り当てられました。 表1は データセットの特徴の詳細な説明を示しました。データセットはpandasライブラリ(バージョン1.5.3)を使ってPython(バージョン3.9)に読み込みました。データセットの整合性は、欠損した値、重複レコード、一貫性のないデータ型を検証することで検証されました。
表1は 、心血管疾患データセットに含まれる人口統計的、臨床的、実験的属性と、それらのデータタイプおよび符号化形式を要約しています。これらの特徴は、その後のすべてのモデル訓練および評価手順の入力変数を構成しました。
| いや、いいえ | フィーチャー名 | データ型 | 概要 |
| 1 | 年代 | 数値 | 患者の年齢(年数)です。 |
| 2 | セックス | 名目上の | 男性は1、女性は0で表されます。 |
| 3 | 胸痛の種類 | カテゴリカル | 1: 典型的な 2: 典型的な狭心症 3: 狭心痛以外の痛み 4: 無症状 |
| 4 | 安静時血圧 | 数値 | 安静時の血圧はミリメートル水銀(mmHg)で測定されます。 |
| 5 | コレステロール値 | 数値 | 血清コレステロール(mg/dL)はミリグラム毎デシリットルで示す。 |
| 6 | 空腹時血糖 | 名目上の | 空腹時中の血糖値が120 mg/dlを超えると、真は1、偽は0と表されます。 |
| 7 | 安静時心電図 | カテゴリー的 | 以下の3つの異なる値が割り当てられています:正常は0、ST-T波の異常は1、左心室肥大は2です。 |
| 8 | 最大心拍数 | 数値 | 達成した最大心拍数 |
| 9 | 狭心症運動 | 名目上の | 運動によって誘発される狭心症で、0はNO、1はYesを表します。 |
| 10 | オールドピーク | 数値 | 運動中のST抑制と安静時の比較。 |
| 11 | ST斜面 | カテゴリー的 | ピーク時のST区間傾斜は以下の通りに分類されます:0:正常 1:上り坂 2:平坦 3:下り坂 |
表1: 心臓病予測に使用されるデータセットの特徴の説明。
データの前処理
データの前処理はPythonライブラリを使用して行われました。欠損値を含む行はpandasで削除されました。DataFrame.dropna() 関数。数値的特徴の外れ値は、四分位範囲(IQR)法とボックスプロットベースの可視化を用いて特定・除去され、特徴全体にわたる分布と検出された外れ値を示しています(図2)。すべての数値変数は、scikit-learnライブラリ(バージョン1.2.2)のStandardScaler関数を使ってスケーリングされました。クラスの不均衡は、モデル訓練前にバランスの取れたクラス分布を得るためにランダムなアンダーサンプリングによって対処されました。

図2: 心血管疾患データセット内のすべての属性のボックスプロット。 この図の拡大版はこちらをクリックしてご覧ください。
ピアソン相関係数(PCC)を用いて特徴間の関係性を評価しました。得られる相関行列はヒートマップとして可視化され、ペアワイズ特徴相関の強さと方向を示し、除去のための冗長な属性を強調します(図3)。

図3: 心臓病データセットの相関行列。 この図の拡大版はこちらをクリックしてご覧ください。
このモデルは、美的に美しい相関行列のヒートマップを生成し、データ内の異なる特徴間の相関をより迅速に理解できるようにします。このヒートマップは色を使って、どの程度、どの方向で相関しているかを示しており、探索データ分析において重要なツールとなっています。明るい色ほど正の相関が高く、暗い色は負の相関が高く、緑色は相関がゼロに近いほど高いです。
特徴抽出
特徴選択は、オープンソースの機械学習ライブラリにあるRandomForestClassifierを通じて実装されたランダムフォレスト特徴重要度を用いて行われました。特徴重要度スコアは不純物の平均減少に基づいて計算され、特徴はそれに応じてランク付けされました。上位Nランクの特徴は後続の分析のために保持されました。特徴選択はすべての前処理ステップ完了後、列車とテストの分割前に適用され、すべての分類モデルおよびアンサンブル構成で固定かつ一貫した特徴セットが使用されることが保証されました(図4)。

図4: ランダムフォレスト特徴重要度を用いて計算された特徴重要度スコア。特徴は正規化された重要度値でランク付けされます。 この図の拡大版はこちらをクリックしてご覧ください。
特徴はランダムフォレスト特徴重要度を用いた不純物の平均減少に基づいてランク付けされ、random_state = 42;しかし、利用可能なすべての特徴(N=11)はその後のモデルトレーニングのために保持されました。特徴選択は前処理後、列車・試験分割前に適用され、すべてのモデルで固定された特徴セットを確保しました。
モデルトレーニングとアンサンブル構築
データセットはtrain_test_split()関数を用いた80:20の分割比率でトレーニングとテストのサブセットに分割されました。トレーニングデータはモデル開発とアンサンブル構築に専念され、テストデータはパフォーマンス評価のために予約されました。Decision Tree、Random Forest、AdaBoost、XGBoostなどの基本分類器は、特に指定がない限り、デフォルトのハイパーパラメータ設定で訓練データセット上で訓練されました。
ハードボートモデルとソフトボートアンサンブルモデルはVotingClassifierを用いて構築され、すべての基本分類器に均等な重みを割り当てて客観的な比較を確実にしました。メタ分類器としてロジスティック回帰を用いてスタッキングアンサンブルモデルが実装されました。メタ分類器は、基底分類器の5重クロス検証によって生成されたオフフォールド予測に基づいて訓練され、過学習を減らし、アンサンブル性能の偏りのない推定を可能にしました。
提案モデル
提案されたアンサンブルフレームワークは、複数のアンサンブル学習戦略を用いて複合分類器を構築するために実装されました。すべてのトレーニングデータは標準化され、トレーニングと評価の両フェーズの整合性を確保するために、テストデータにも同じ前処理ステップが適用されました。基底分類器はハードボーティング、ソフトボーティング、スタッキングの仕組みを用いて統合され、スタッキングメタクラシファイアはクロス検証された予測に基づくロジスティック回帰を用いて訓練されました。アンサンブルフレームワークの全体的なアーキテクチャとデータフロー(図5)。

図5: 提案モデルのアーキテクチャ。 この図の拡大版はこちらをクリックしてご覧ください。
レベルI:
アンサンブルフレームワークのレベルIでは、4つの基本分類器—Random Forest、Decision Tree、XGBoost、AdaBoost—がスケールドトレーニングデータセットを用いて訓練されました。これらの基本分類器は、ハードボートとソフトボートのアンサンブルモデルの両方を構築するために組み合わされました。客観性を保ち、アンサンブル構成時の差重み調整によるバイアスを防ぐために、すべての基底分類器に均等な重みが割り当てられました。
レベルII:
レベルIIでは、基底分類器で生成された予測を組み合わせてスタッキングアンサンブル分類器が実装されました。基本分類器は5折のクロス検証を用いて訓練され、各折り返しに対して非折り返しの予測が生成されました。これらのフォールド外予測は入力特徴として用いられ、ロジスティック回帰メタ分類器の訓練に用いられ、過学習を減らし、アンサンブル性能の偏りのない推定が可能となりました。
Access restricted. Please log in or start a trial to view this content.
このセクションでは、データ前処理と特徴選択の影響を提示し、個別およびアンサンブル分類器のパフォーマンスを比較し、標準評価指標におけるベンチマーキング結果をまとめます。欠損除去、クラスバランス、特徴スケーリングを含むデータ前処理により、すべての分類器間で一貫した入力分布が得られました。前処理データ上で訓練されたモデルは、未処理ベースラインと比べて、5回のクロスバリデーション実行およびトレイン・テスト分割でパフォーマンスのばらつきが減少しました。特に、クラスバランスは評価されたすべてのモデルにおいて一貫してマイノリティクラスの想起率を向上させました。
ランダムフォレストに基づく特徴重要度ランキングを用いて、各特徴の相対的な寄与を評価しました。しかし、利用可能な入力特徴はすべてモデル学習のために保持され、すべての分類器に一様に適用されました。特徴選択によりモデルの安定性が向上し、過学習が減少し、5重クロス検証実行におけるパフォーマンス指標の標準偏差が低くなったことが示されました。本研究における「最適化」とは、ハイパーパラメータチューニングではなく、特徴セットおよびアンサンブル構成の洗練を...
Access restricted. Please log in or start a trial to view this content.
本研究は、スタッキングベースのアンサンブル学習が、標準化された前処理およびベンチマーキング条件下で個々の分類器や投票ベースのアンサンブルと比較して一貫して優れ、より安定した分類性能を達成していることを示しています。
本研究で観察されたアンサンブル性能の一貫性は、比較機械学習研究における方法論的厳密さの重要性を強調しています(19,20,21,22,23,24,25)。すべてのモデルにおける前処理、特徴選択、検証手順を制御することで、実験バイアスを最小限に抑...
Access restricted. Please log in or start a trial to view this content.
著者らは、この研究活動に関して利益相反はないと宣言しています。本稿で提示された結果、分析、結論に影響を与えた金銭的、個人的、専門的な関係は一切ありません。
著者らは、本研究を支えた公開データセットやオープンソースソフトウェアリソースの使用を認めています。著者らはまた、スリ・スリ大学(ブバネーシュワル)やSOA大学(ブバネーシュワル)を含むそれぞれの機関が、この研究に必要な学術環境と研究施設を提供してくれたことに感謝の意を表しています。
Access restricted. Please log in or start a trial to view this content.
| Name | Company | Catalog Number | Comments |
|---|---|---|---|
| AdaBoost分類器 | scikit-learn 開発者 | 該当なし | ベンチマーキングに使われるアンサンブルブースティング分類器 |
| ジュピター・ノートブック | プロジェクト・ジュピター | 該当なし | 計算ノートブック環境 |
| Kaggle Heart Statlog(クリーブランド–ハンガリー)データセット | カグル | 該当なし | 公開心血管データセット(1190件、11件の特徴)。URL: https://www.kaggle.com/datasets/sid321axn/heart-statlog-cleveland-hungary-final |
| ロジスティック回帰 | scikit-learn 開発者 | 該当なし | スタッキングアンサンブルで使われるメタ分類器 |
| Matplotlib | Matplotlib開発チーム | 該当なし | データ可視化ライブラリ |
| NumPy | NumPy 開発者 | 該当なし | 数値計算ライブラリ |
| pandas(バージョン1.5.3) | パンダス開発チーム | 該当なし | データ前処理と取り扱い |
| Python(バージョン3.9) | Pythonソフトウェア財団 | 該当なし | 実装に使用されるプログラミング環境 |
| ランダムフォレスト分類器 | scikit-learn 開発者 | 該当なし | ベース分類器と特徴重要度計算 |
| シーボーン | シーボーン開発チーム | 該当なし | 相関行列のヒートマップ可視化 |
| スタンダードスケーラー | scikit-learn 開発者 | 該当なし | 特徴スケーリング関数 |
| 投票分類器 | scikit-learn 開発者 | 該当なし | ハードボーティングアンサンブルとソフトボーティングアンサンブルの実装 |
| XGBoostClassifier | DMLC | 該当なし | ベースラーナーとして使用される勾配ブースティング分類器 |
Access restricted. Please log in or start a trial to view this content.
Request permission to reuse the text or figures of this JoVE article
Request Permission