953
搜狐
心髒病預測案例__案例_機器學習-阿裏雲
一、背景
心髒病是人類健康的頭號殺手。全世界1/3的人口死亡是因心髒病引起的,而我國,每年有幾十萬人死於心髒病。 所以,如果可以通過提取人體相關的體側指標,通過數據挖掘的方式來分析不同特征對於心髒病的影響,對於預測和預防心髒病將起到至關重要的作用。本文將會通過真實的數據,通過阿裏雲機器學習平台搭建心髒病預測案例。
二、數據集介紹
數據源: UCI開源數據集heart_disease針對美國某區域的心髒病檢查患者的體測數據,共303條數據。具體字段如下表:
字段名 | 含義 | 類型 | 描述 |
---|---|---|---|
age | 年齡 | string | 對象的年齡,數字表示 |
sex | 性別 | string | 對象的性別,female和male |
cp | 胸部疼痛類型 | string | 痛感由重到無typical、atypical、non-anginal、asymptomatic |
trestbps | 血壓 | string | 血壓數值 |
chol | 膽固醇 | string | 膽固醇數值 |
fbs | 空腹血糖 | string | 血糖含量大於120mg/dl為true,否則為false |
restecg | 心電圖結果 | string | 是否有T波,由輕到重為norm、hyp |
thalach | 最大心跳數 | string | 最大心跳數 |
exang | 運動時是否心絞痛 | string | 是否有心絞痛,true為是,false為否 |
oldpeak | 運動相對於休息的ST depression | string | st段壓數值 |
slop | 心電圖ST segment的傾斜度 | string | ST segment的slope,程度分為down、flat、up |
ca | 透視檢查看到的血管數 | string | 透視檢查看到的血管數 |
thal | 缺陷種類 | string | 並發種類,由輕到重norm、fix、rev |
status | 是否患病 | string | 是否患病,buff是健康、sick是患病 |
三、數據探索流程
數據挖掘流程如下:
整體實驗流程:
1.數據預處理
數據預處理也叫作數據清洗,主要在數據進入算法流程前對數據進行去噪、填充缺失值、類型變換等操作。本次實驗的輸入數據包括14個特征和1個目標隊列。需要解決的場景是根據用戶的體檢指標預測是否會患有心髒病,每個樣本隻有患病或不患病兩種,是分類問題。因為本次分類實驗選用的是線性模型邏輯回歸,要求輸入的特征都是double型的數據。輸入數據展示:我們看到有很多數據是文字描述的,在數據預處理的過程中我們需要根據每個字段的含義將字符型轉為數值。
1)二值類的數據二值類的比較容易轉換,如sex字段有兩種表現形式female和male,我們可以將female表示成0,把male表示成1。
2)多值類的數據比如cp字段,表示胸部的疼痛感,我們可以通過疼痛的由輕到重映射成0~3的數值。
數據的預處理通過sql腳本來實現,具體請參考SQL腳本-1組件,
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};
2.特征工程
特征工程主要是包括特征的衍生、尺度變化等。本例中有兩個組件負責特征工程的部分。
1)過濾式特征選擇主要是通過這個組件判斷每個特征對於結果的影響,通過信息熵和基尼係數來表示,可以通過查看評估報告來顯示最終的結果。
2)歸一化因為本次實驗選擇的是通過邏輯回歸二分類來進行模型訓練,需要每個特征去除量綱的影響。歸一化的作用是將每個特征的數值範圍變為0到1之間。歸一化的公式為result=(val-min)/(max-min)。歸一化結果:
3.模型訓練和預測
本次實驗是監督學習,因為我們已經知道每個樣本是否患有心髒病,所謂監督學習就是已知結果來訓練模型。解決的問題是預測一組用戶是否患有心髒病。
1)拆分首先通過拆分組件將數據分為兩部分,本次實驗按照訓練集和預測集7:3的比例拆分。訓練集數據流入邏輯回歸二分類組件用來訓練模型,預測集數據進入預測組件。
2)邏輯回歸二分類邏輯回歸是一個線性模型,在這裏通過計算結果的閾值實現分類。具體的算法詳情推薦大家在網上或者書籍中自行了解。邏輯回歸訓練好的模型可以在模型頁簽中查看。
3)預測預測組件的兩個輸入分別是模型和預測集。預測結果展示的是預測數據、真實數據、每組數據不同結果的概率。
4.評估
通過混淆矩陣組件可以評估模型的準確率等參數,
通過此組件可以方便的通過預測的準確性來評估模型。
四.總結
通過以上數據探索的流程我們可以得到以下的結論。
1)特征權重我們可以通過過濾式特征選擇得到每個特征對於結果的權重。
-可以看出thalach(心跳數)對於是否發生心髒病影響最大。
-性別對於心髒病沒有影響
2)模型效果通過上文提供的14個特征,可以達到百分之八十多的心髒病預測準確率。模型可以用來做預測,輔助醫生預防和治療心髒病。
五、其它
參與討論:雲棲社區公眾號
免費體驗:阿裏雲數加機器學習平台
下期預告:機器學習圖算法最短路徑的計算最後更新:2016-11-23 16:04:12
上一篇:
回歸算法做農業貸款發放預測__案例_機器學習-阿裏雲
下一篇:
新聞分類案例__案例_機器學習-阿裏雲
充儲值卡返券規則是什麼?___儲值卡_代金券及推薦碼_財務-阿裏雲
阿裏雲ECS全球啟用秒級計費
CompositeCondition__DataType_API 參考_表格存儲-阿裏雲
ECS用戶如何正確使用OSS內網地址?__數據操作常見問題_產品使用問題_對象存儲 OSS-阿裏雲
發布管理__使用說明_用戶手冊_雲服務總線 CSB-阿裏雲
賠償說明__產品簡介_消息服務-阿裏雲
架構介紹__產品與_畫像分析-阿裏雲
獲取主域名名稱__域名管理接口_API文檔_雲解析-阿裏雲
麵向人工智能 阿裏雲異構計算全新升級
查看所有連接串__實例管理_API 參考_雲數據庫 RDS 版-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲