1. 程式人生 > >11.15作業

11.15作業

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