R基于邏輯回歸模型實現心臟病檢測及SHAP值解釋項目實戰

說明:這是一個機器學習實戰項目(附帶數據+代碼+文檔+視頻講解),如需數據+代碼+文檔+視頻講解可以直接到文章最后關注獲取。

1.項目背景

心血管疾病是全球范圍內導致死亡的主要原因之一,每年有數百萬人因此失去生命。在眾多的心臟病中,冠心病尤為常見,它是由向心臟供血的冠狀動脈發生硬化或阻塞所引起的。早期發現心臟病的風險因素并進行有效干預對于降低發病率和死亡率至關重要。然而,由于心臟病的發生受到多種復雜因素的影響,包括但不限于年齡、性別、血壓、膽固醇水平等,傳統的診斷方法往往存在一定的局限性。基于此,利用先進的數據分析技術,特別是邏輯回歸模型,對心臟病風險進行預測成為了研究熱點之一。

邏輯回歸作為一種廣泛應用于醫學領域的統計分析方法,能夠有效地處理二分類問題,并通過概率形式輸出結果,非常適合用于心臟病風險評估。通過收集患者的各種生理指標數據,如年齡、性別、體重指數(BMI)、血壓、血糖水平等,邏輯回歸模型可以學習到這些特征與心臟病發作之間的關系,從而幫助醫生更準確地識別高危人群。此外,隨著機器學習解釋性的日益重視,SHAP(Shapley Additive exPlanations)值作為一種新興的解釋工具,能夠為每個預測提供詳細的貢獻度分析,使得模型不僅限于預測,還能解釋為何做出這樣的預測,這對于醫療決策支持系統尤為重要。

本項目旨在利用R語言實現一個基于邏輯回歸的心臟病檢測模型,并采用SHAP值來解釋模型的預測結果。首先,我們將從公開的數據集中獲取心臟病相關的多維度數據,然后進行必要的數據清洗和預處理工作,以確保數據的質量和一致性。接著,使用邏輯回歸模型訓練數據,并評估其性能。最后,借助SHAP值深入分析各特征對心臟病預測的重要性及其影響方向,進而提升模型的透明度和可解釋性。通過這一系列步驟,我們期望不僅能提高心臟病預測的準確性,還能為臨床醫生提供有價值的參考信息,輔助制定個性化的治療方案。

本項目通過R基于邏輯回歸模型實現心臟病檢測及SHAP值解釋項目實戰。 ????????????

2.數據獲取

本次建模數據來源于網絡(本項目撰寫人整理而成),數據項統計如下:

編號 

變量名稱

描述

1

age

病人的年齡(以年為單位)

2

sex

病人性別 (1 = 男, 0 = 女)

3

cp

胸痛類型 (1: 典型心絞痛, 2: 非典型心絞痛, 3: 無心絞痛, 4: 無癥狀)

4

trestbps

入院時的靜息血壓(毫米汞柱)

5

chol

血清中的膽固醇含量(毫克/分升)

6

fbs

空腹血糖水平 (> 120 mg/dl 為 1, 否則為 0)

7

restecg

靜息心電圖結果 (0: 正常, 1: ST-T 波異常, 2: 可能或肯定的左室肥大)

8

thalach

達到的最大心率

9

exang

運動誘發的心絞痛 (1 = 是, 0 = 否)

10

oldpeak

相對于休息的舊峰 ST 抑制(連續值)

11

slope

峰值運動 ST 段的斜率 (1: 上坡, 2: 平坦, 3: 下坡)

12

ca

通過熒光透視顯示的主要血管數目(0-3)

13

thal

心肌灌注顯像的結果 (3 = 正常, 6 = 固定缺陷, 7 = 可逆缺陷)

14

y

0 = 沒有心臟病病,1 = 有心臟病

數據詳情如下(部分展示):

3.數據預處理

3.1?查看數據

使用head()方法查看前五行數據:

關鍵代碼:

3.2數據缺失查看

使用colSums方法統計數據缺失信息:

從上圖可以看到,總共有14個變量,數據中無缺失值。

關鍵代碼:

3.3數據描述性統計

通過summary方法來查看數據的平均值、最小值、分位數、最大值。

關鍵代碼如下: ?

4.探索性數據分析

4.1?因變量柱狀圖

用ggplot工具繪制柱狀圖:

4.2 y=1樣本chol變量分布直方圖

用ggplot工具繪制直方圖:

4.3 相關性分析

從上圖中可以看到,數值越大相關性越強,正值是正相關、負值是負相關。

5.特征工程

5.1 啞特征處理

啞特征處理,即將類別型變量轉換為若干二進制變量,以利于統計模型中使用,有效提高模型準確性與解釋力。

關鍵代碼如下:

處理結果部分展示:

5.2?數據集拆分

通過subset方法按照80%訓練集、20%驗證集進行劃分,關鍵代碼如下:

6.構建邏輯回歸分類模型?

主要通過R基于邏輯回歸模型實現心臟病檢測,用于目標分類。 ??????????

6.1 構建模型

模型名稱

模型參數

邏輯回歸分類模型????

y ~ .

data = data

family = binomial(link = 'logit')

6.2 模型摘要信息

7.模型評估

7.1評估指標及結果

評估指標主要包括準確率、查準率、查全率、F1分值等等。

模型名稱

指標名稱

指標值

測試集

邏輯回歸分類模型??

準確率

0.8360656

查準率

0.8285714

查全率

0.8787879

F1分值?

0.8529412

從上表可以看出,F1分值為0.8529,說明邏輯回歸模型效果良好。 ??????????????

關鍵代碼如下:

7.2 混淆矩陣

從上圖可以看出,實際為0預測不為0的 有6個樣本,實際為1預測不為1的 有4個樣本,模型效果良好。 ???

7.3 SHAP解釋圖

SHAP圖通常用來展示特征對模型預測的貢獻程度,從上圖可以看出,藍色代表正向影響,紅色代表負向影響, SHAP值越大對模型的貢獻越大。

8.結論與展望

綜上所述,本文采用了通過邏輯回歸分類算法來構建分類模型,最終證明了我們提出的模型效果良好。此模型可用于日常產品的建模工作。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/81521.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/81521.shtml
英文地址,請注明出處:http://en.pswp.cn/web/81521.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

嵌入式學習筆記 -函數嵌套時以及異常響應時,LR使用的具體過程

函數嵌套時以及異常響應時,寄存器LR的作用存在顯著區別,理解這個問題對于理解freeRTOS底層代碼的實現大有幫助,具體使用過程如下: 一 函數嵌套時的LR使用的具體過程 在ARM架構(特別是M0處理器)中,函數嵌套調用時LR(L…

Java String函數的使用

文章目錄 String字符串比較字符串查找轉化字符串替換字符串拆分字符串截取(常用)字符串的不可變性 String str本來是字符串常量的引用,應該打印地址,但是編譯器重寫了toString方法,所以打印hello String 的構造方法 …

Oracle 11G RAC重啟系統異常

vmware安裝centos7環境部署Oracle RAC (11.2.0.4) 部署時所有資源情況都是正常的,關機重啟虛擬機后集群資源狀態異常,請教CSDN大佬 – 部署規劃 域名地址備注rac16192.168.31.16rac17192.168.31.17rac16vip192.168.31.26viprac17vip192.168.31.27vip…

吉林省CCPC與全國邀請賽(東北地區賽)游記

總述: 本次賽段共獲得一銀(吉林省賽)、一銅(東北地區賽)、一鐵(全國邀請賽的成績)。總體成績跟校內賽的情況相比隊伍狀態與發揮水準都有提升),但也體現出很多不足&#x…

「Python教案」循環語句的使用

課程目標 1.知識目標 能使用for循環和while循環設計程序。能使用循環控制語句,break、continue、else設計程序。能使用循環實際問題。 2.能力目標 能根據需求合適的選擇循環結構。能對嵌套循環代碼進行調試和優化。能利用循環語句設計&am…

OpenCV---findCountours

一、基本概念與用途 findContours是OpenCV中用于在二值圖像中查找輪廓的核心函數。輪廓作為連續的點集,能夠精確勾勒出物體的邊界,廣泛應用于目標檢測、形狀分析、圖像分割等領域。 函數核心價值 目標檢測:通過輪廓定位圖像中的物體&#…

20250523-BUG:無法加載“GameLib/Framework.h“頭文件(已解決)

BUG:無法加載"GameLib/Framework.h"頭文件(已解決) 最近在打開新的C項目時報了這個錯,我是按照以下步驟來排除的BUG,希望對您有所幫助~ 檢查【C/C】-【附加包含目錄】中的路徑有無問題,一般需要加…

商品條形碼查詢接口如何用C#進行調用?

一、什么是商品條碼查詢接口? 1974年6月26日,美國俄亥俄州的一家超市首次使用商品條碼完成結算,標志著商品條碼正式進入商業應用領域。這項技術通過自動識別和數據采集,極大提升了零售行業的作業效率,減少了人工錄入錯…

SD07_NVM的安裝及相關操作

以下是在 Windows 系統 上使用 NVM(Node Version Manager) 管理多個 Node.js 版本的詳細步驟,從零開始操作: 一、準備工作 卸載舊版 Node.js 打開 控制面板 → 程序和功能,找到已安裝的 Node.js 和 npm,徹底…

OSI 深度安全防御體系架構深度剖析

文章目錄 前言什么是 OSI 深度安全防御體系架構各層的安全防御措施物理層數據鏈路層網絡層傳輸層會話層表示層應用層 OSI 深度安全防御體系架構的優勢全方位防護深度防御靈活性和可擴展性 總結 前言 大家好,我是沛哥兒。今天咱們來深入探討一下 OSI 深度安全防御體…

大模型應用:開發移動端頁面個人中心頁面提示詞

角色 你是一個移動端web頁面開發專家,擅長開發移動端頁面,使用原生web技術(html,css,js),開發的頁面針對手機移動端友好 技術棧 使用基礎的Html,CSS,JavaScript方案實現&#xff…

從零到一:影刀RPA學習者的破局之路

1. 學習目標與預期差距分析 1.1 官方課程學習目標梳理 影刀RPA的官方課程旨在幫助學習者掌握RPA(機器人流程自動化)的基本概念、操作技能和常見應用場景。課程內容通常包括: RPA基礎理論:介紹RPA的定義、優勢、發展歷程以及與其…

計算機組成與體系結構:硬盤驅動器(Hard Disk Drives)

目錄 💽 硬盤驅動器(HDD):傳統的固定輔助存儲設備 什么是硬盤驅動器? 硬盤的工作原理 HDD 的物理結構 Disk Pack(盤組) Tracks(磁道) Cylinders(柱面&…

GitCode鏡像倉庫批量下載開發實錄

GitCode作為國內領先的開源代碼托管平臺,其鏡像倉庫批量下載功能對開發者生態建設與開源協作效率提升具有關鍵價值。本文基于企業級代碼資產管理需求,系統記錄從需求分析到生產部署的全周期開發實踐。內容覆蓋鏡像倉庫同步機制設計、分布式任務調度優化、…

基線配置管理:為什么它對網絡穩定性至關重要

什么是基線配置(Baseline Configuration) 基線配置(Baseline Configuration)是經過批準的標準化主設置,代表所有設備應遵循的安全、合規且運行穩定的配置基準,可作為評估變更、偏差或未授權修改的參考基準…

AJAX get請求如何提交數據呢?

在 AJAX 中使用 GET 請求提交數據,主要通過 在 URL 后拼接查詢參數 的方式實現,具體步驟如下: 1.構造帶參數的 URL 將數據以 鍵值 的形式拼接在 URL 后,多個參數間用 & 連接。例如: var url "https://exa…

基于FashionMnist數據集的自監督學習(對比式自監督學習SimCLR算法)

目錄 一,對比式自監督學習 1.1 簡介 1.2 常見算法 1.2.1 SimCLR (2020) 1.2.2 MoCo (2020) 1.2.3 BYOL (2021) 1.2.4 SimSiam (2021) 1.2.5 CLIP (2021) 1.2.6 DINO (2021) 1.2.7 SwAV (2020) 二,代碼邏輯分析 2.1 整體目標與流程 2.2 數據…

Linux:基礎指令與內涵理解(下)與權限

1.mv 作用:將文件移動、文件重命名 語法: mv (選項) 源文件/目錄 目標文件/目錄 (1)將文件/目錄移動到當前目錄的新文件/目錄(也就是重命名操作) 這里我們mv了test.txt文件到當前目錄下當前并不存在的ln.tx…

卷積神經網絡(CNN)入門學習筆記

什么是 CNN? CNN,全稱 卷積神經網絡(Convolutional Neural Network),是一種專門用來處理圖片、語音、文本等結構化數據的神經網絡。 它模仿人眼識別圖像的方式: 從局部到整體,一步步提取特征&a…

c#基礎07(調試與異常捕捉)

文章目錄 調試與異常捕捉調試異常處理C#中的異常類異常處理拋出對象 調試與異常捕捉 很多時間,寫代碼不能一擼到底,中間都是經歷過無數次的調試,才能正常正確的運行起來。.Net調試有很多方法和技巧。 調試 在C#中程序調試主要指在Visual S…