11.15作業
阿新 • • 發佈:2018-11-18
1.理解分類與監督學習、聚類與無監督學習。
簡述分類與聚類的聯絡與區別。
分類——分類是根據文字的特徵或屬性,劃分到已有的類別中。也就是說,這些類別是已知的,通過對已知分類的資料進行訓練和學習,找到這些不同類的特徵,再對未分類的資料進行分類。
聚類——聚類是事先不知道資料會分為幾類,通過分析將資料或者說使用者的共同特點聚合成幾個群體,聚類不需要對資料進行訓練和學習。
簡述什麼是監督學習與無監督學習。
是否有監督,就看輸入資料是否有標籤。輸入的資料有標籤,則為有監督學習,沒標籤則為無監督學習。
監督學習——監督學習就好比你已經知道了一些問題以及它們的答案,你只需學習這些已知答案的問題,從而用這些經驗去得出新問題的答案;
無監督學習——無監督學習則好比你不知道問題的答案,而是根據自己的知識去解答題目,找出題目的共同點,並對這些題目進行歸類。
分類屬於監督學習,聚類屬於無監督學習。
2.樸素貝葉斯分類演算法 例項
利用關於心臟情患者的臨床資料集,建立樸素貝葉斯分類模型。
有六個分類變數(分類因子):性別,年齡、KILLP評分、飲酒、吸菸、住院天數
目標分類變數疾病:–心梗–不穩定性心絞痛
新的例項:–(性別=‘男’,年齡<70, KILLP=‘I',飲酒=‘是’,吸菸≈‘是”,住院天數<7)
最可能是哪個疾病?
上傳演算過程。
3.程式設計實現樸素貝葉斯分類演算法
利用訓練資料集,建立分類模型。
輸入待分類項,輸出分類結果。
可以心臟情患者的臨床資料為例,但要對資料預處理。
import numpy as np import pandas data=pandas.read_excel('心臟病患者臨床資料.xlsx') data #對性別進行處理 (男為0,女為1) sex=[] for i in data['性別']: if i =='男': sex.append(0) else: sex.append(1) #對年齡段進行預處理 (<70為1,70-80為2,>80為3) ages=[]for j in data['年齡']: if j =='<70': ages.append(1) elif j =='70-80': ages.append(2) else: ages.append(3) #對住院天數進行處理 (<7為1,7-14為2,>14為3) days=[] for k in data['住院天數']: if k=='<7': days.append(1) elif k=='7-14': days.append(2) else: days.append(3) #處理後的資料 data1=data data1['性別']=sex data1['年齡']=ages data1['住院天數']=days #將資料轉成陣列 data_arr=np.array(data1) data_arr