すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:心臓病を予測する

最終更新日:Dec 13, 2024

心臓病は人間の命を脅かします。 健康診断データに基づいて心臓病の身体指標を分析することができれば、心臓病を予防することができます。 このトピックでは、心臓病患者の健康診断データに基づいて、データマイニングアルゴリズムを使用してPlatform for AI (PAI) で心臓病予測モデルを構築する方法について説明します。

前提条件

データマイニング手順

image

データセット

このトピックで説明するパイプラインでは、UCI Machine Learning Repositoryのオープンソースデータセットを使用します。 詳細については、「心臓病データセット」をご参照ください。 データセットには、米国の地域の303人の心臓病患者の健康診断データが含まれています。 次の表に、データセットのフィールドを示します。

項目

タイプ

説明

age

STRING

患者の年齢。

性別

STRING

患者の性別。 有効な値: femalemale

cp

STRING

患者が持っている胸痛のタイプ。 有効な値: 典型的非定型非狭心症無症候性

trestbps

STRING

患者の安静時血圧レベル。

チョル

STRING

患者の血清コレステロールレベル。

fbs

STRING

患者の空腹時血糖値。 空腹時血糖値が120 mg/dlを超える場合、値はtrueに設定されます。 それ以外の場合、値はfalseに設定されます。

restecg

STRING

患者の安静時心電図 (ECG) の結果。 有効な値: normhyp

タラハ

STRING

患者の最大心拍数。

exang

STRING

患者が運動誘発性狭心症を有するかどうかを示す。 有効な値は truefalse です。

oldpeak

STRING

安静に対する運動によって誘発されるSTうつ病。

slop

STRING

ピーク运动STセグメントの勾配。 有効な値: downflatup

ca

STRING

蛍光透視法によって着色される主要な血管の数。

thal

STRING

患者が持っている欠陥のタイプ。 有効な値: normfixrev

status

STRING

患者の心臓病の存在。 有効な値: buffsick

心臓病を予測する

  1. Machine Learning Designerページに移動します。

    1. PAIコンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。 [ワークスペース] ページで、管理するワークスペースの名前をクリックします。

    3. 左側のナビゲーションウィンドウで、モデルトレーニング > 可视化モデリング (デザイナー)を選択します。

  2. Build a pipeline

    1. 可视化モデリング (デザイナー)ページで、プリセットテンプレートタブをクリックします。

    2. [パイプラインテンプレート] タブの [心臓病の予測] セクションで、[作成] をクリックします。

    3. [パイプラインの作成] ダイアログボックスで、必要なパラメーターを設定します。 デフォルト値を使用できます。

      Pipeline Data Pathパラメーターに指定された値は、パイプラインのランタイム中に生成された一時データおよびモデルのObject Storage Service (OSS) バケットパスです。

    4. OKをクリックします。

      パイプラインの作成には約10秒かかります。

    5. [パイプラインリスト] タブで、心臓病予測という名前のパイプラインを見つけ、開くをクリックします。

    6. 次の図に示すように、キャンバス上のパイプラインのコンポーネントを表示します。 システムは、プリセットテンプレートに基づいてパイプラインを自動的に作成します。

      心脏病预测实验

      地域

      説明

      このセクションに表示されるコンポーネントは、データを前処理します。 たとえば、コンポーネントはデータのノイズを除去し、欠落した値を埋め、値を数値に変換します。 各サンプルにおいて、患者は健康または病気のいずれかである。 したがって、このパイプラインでの心臓病の予測は分類の問題です。 このパイプラインで使用されるデータセットには、14のフィーチャフィールドと1つのゴールフィールドが含まれます。 データの前処理中に、各フィールドの値は、フィールドの意味に基づいて数値に変換する必要があります。 パラメーター:

      • 2値フィールド: コンポーネントは一方の値を0に、もう一方の値を1に変換します。 たとえば、性別フィールドの値は女性または男性です。 変換後、0女性を指定し、1男性を指定します。

      • 多値フィールド: コンポーネントは、値を0、1、2、または3に変換します。 たとえば、cpフィールドには、胸痛の種類を軽いものから重いものまで指定する4つの値があります。 変換後、0〜3の値を使用して、軽度から重度への胸痛のレベルを指定します。

      サンプルSQLスクリプト:

      select age,
      (case sex when 'male' then 1 else 0 end) as sex,
      (case cp when 'angina' then 0  when 'notang' then 1 else 2 end) as cp,
      trestbps,
      chol,
      (case fbs when 'true' then 1 else 0 end) as fbs,
      (case restecg when 'norm' then 0  when 'abn' then 1 else 2 end) as restecg,
      thalach,
      (case exang when 'true' then 1 else 0 end) as exang,
      oldpeak,
      (case slop when 'up' then 0  when 'flat' then 1 else 2 end) as slop,
      ca,
      (case thal when 'norm' then 0  when 'fix' then 1 else 2 end) as thal,
      (case status  when 'sick' then 1 else 0 end) as ifHealth
      from  ${t1};

      このセクションに表示されるコンポーネントは、フィーチャの派生やスケール変更などのフィーチャエンジニアリングを実行します。 ロジスティック回帰モデルはDOUBLE型の入力データのみを受け入れるため、Type Transformコンポーネントは入力特徴データをDOUBLE型に変換します。 次に、Feature Select Runnerコンポーネントは、エントロピーとGiniインデックスを使用して、予測結果に対する各特徴の影響を測定します。 正規化コンポーネントは、各フィーチャの値を0から1の範囲の値に変換します。 これにより、予測結果に対するディメンションの影響が取り除かれます。 正規化式は、result=(val − min)/(max − min) である。

      このセクションに表示されるコンポーネントは、モデルをトレーニングして予測を実行します。

      1. 分割コンポーネントは、データセットを7:3の比率でトレーニングデータセットと予測データセットに分割します。

      2. ロジスティック回帰コンポーネントはモデルをトレーニングします。

        説明

        PMMLモデルファイルをエクスポートする場合は、[フィールド設定] タブの [PMMLを生成するかどうか] チェックボックスをオンにします。 キャンバス上の空白領域をクリックし、[パイプライン属性] タブで [データストレージ] を指定します。

      3. トレーニングデータセットと予測データセットが予測コンポーネントにインポートされます。 予測コンポーネントは、予測結果を生成する。

      Confusion MatrixおよびEvaluateコンポーネントは、モデルを評価します。

  3. パイプラインを実行し、結果を表示します。

    1. キャンバスの左上隅で、imageアイコンをクリックします。

    2. パイプラインの実行後、キャンバス上のロジスティック回帰コンポーネントを右クリックし、モデルオプション > PMMLファイルへのエクスポートを選択してトレーニングされた心臓病予測モデルをエクスポートします。

    3. キャンバスで [予測] を右クリックし、[データの表示] > [予測結果出力ポート] を選択して予測結果を表示します。 モデルの評価レポートを表示します。

  4. 結果を表示します。

    1. キャンバスで評価を右クリックして、ビジュアル分析をクリックします。

    2. 評価ダイアログボックスで、インデックスデータタブをクリックしてモデルの評価に使用されるインデックスを表示します。

      指标数据評価レポートでは、AUCの値は、モデルの予測精度が90% よりも高いことを示しています。

    3. キャンバスで混乱マトリックスを右クリックして、ビジュアル分析をクリックします。

    4. 混乱マトリックスダイアログボックスで、統計タブをクリックして、モデルの精度などのモデル統計を表示します。

次に何をすべきか

パイプラインが期待どおりに実行されている場合は、サービス呼び出し用のモデルをデプロイできます。 デプロイの詳細については、「オンラインサービスとしてモデルをデプロイする」および「PMMLプロセッサ」をご参照ください。