首頁 人工智能

第三節 糖尿病預測

字體:16+-

利用上一節講述的理論,本節將使用樸素貝葉斯實現糖尿病患病預測。本節使用的數據來源於美國國家糖尿病和消化腎髒疾病研究所,原始數據可從UCI數據庫獲取。這是機器學習領域一個被廣泛研究的標準數據集,一般認為,關於這個數據集的預測算法如果能達到70%~76%的預測準確率就是一個較好的預測算法。本教材所用數據已經根據需要進行過適當地處理,可從教材配套的資源平台下載。

首先從本教材的資源平台下載該數據文件,並以文件名pima-indians.data.csv保存為csv文件。這是一個關於皮馬族糖尿病患者的醫療檢測數據(表4-1)。皮馬族是美國印第安原住民的一個種族,由於基因缺陷,這個種族的糖尿病患病率很高,數據集描述了768個皮馬印第安糖尿病患者的醫療觀測細節,所有患者都是21歲以上(含21歲)的女性,所有的特征屬性取值都是數值型,且各屬性取值的度量單位是不同的。

表4-1

雙擊打開數據文件可以看到這是一個包含9個數據項的表格。其中Pregnancies代表懷孕次數;Glucose代表口服葡萄糖耐量試驗中的葡萄糖濃度;Blood Pressure代表血壓;Skin Thickness代表皮脂厚度;Insulin代表血清胰島素含量;BMI代表體重指數;Diabetes Pedigree Function代表糖尿病係統功能;Age代表年齡;Outcome代表5年內是否患有糖尿病,1表示患病,0表示未患病。因此這可以對應到一個分類問題,輸入數據是前8項檢測數據,輸出的分類結果是0或者1,表示該人未患病或者患病。

首先導入三個需要用到的Python庫。csv是一種以逗號分隔存儲數據的文件格式,csv模塊可以很好地對這種格式的數據進行讀取、存儲和處理。random模塊用於隨機分割數據集,產生訓練數據和測試數據。math模塊用於計算數據的均值、標準差等數學結果時可以直接調用相應的計算函數。