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