分类与监督学习,朴素贝叶斯分类算法

1.简述分类与聚类的联系与区别。

分类技术是一种有指导的学习,即每个训练样本的数据对象已经有类标识,对数据进行判断。

聚类是一种无指导学习。也就是说,聚类是在预先不知道欲划分类的情况下,根据信息相似度原则进行信息聚类的一种方法。

 

简述什么是监督学习与无监督学习。

监督式学习,能够由训练资料中学到或建立一个模式,并依此模式猜測新的实例。

无监督式学习,其目的是去对原始资料进行分类,以便了解资料内部结构。有别于监督式学习网络,无监督式学习网络在学习时并不知道其分类结果是否正确,亦即没有受监 督式增强(告诉它何种学习是正确的)。其特点是仅对此种网络提供输入范例。而它会自己主动从这些范例中找出其潜在类别规则。

 

2.朴素贝叶斯分类算法实例

   利用关于心脏情患者的临床数据集,建立朴素贝叶斯分类模型。

   有六个分类变量(分类因子):性别,年龄、KILLP评分、饮酒、吸烟、住院天数

   目标分类变量疾病:–心梗–不稳定性心绞痛

   新的实例:–(性别=‘男’,年龄<70, KILLP=‘I',饮酒=‘是’,吸烟≈‘是”,住院天数<7)

   最可能是哪个疾病?

上传演算过程。

 

3.编程实现朴素贝叶斯分类算法

   利用训练数据集,建立分类模型。

   输入待分类项,输出分类结果。

   可以心脏情患者的临床数据为例,但要对数据预处理。

iris.target[55]

from sklearn.naive_bayes import GaussianNB
#模型
gnb=GaussianNB()
#训练
gnb.fit(iris.data,iris.target)
#分类
gnb.predict([[9.5,3.0,5.5,2.3]])

from sklearn.naive_bayes import GaussianNB
import numpy as np
import pandas
data=pandas.read_excel('心脏病患者临床数据.xlsx')
data

#对数据进行预处理
x1=[]
for a in data['性别']:
    if a=='':         #男是1
        x1.append(1)
    else:
        x1.append(2)    #女是2

x2=[]
for b in data['年龄']:
    if b =='<70':      #<70是1
        x2.append(1)
    elif b =='70-80':  #70-80是2
        x2.append(2)
    else:          
        x2.append(3)    #>80是3

x4=[]
for d in data['饮酒']:
    if d=='<7':           #饮酒是1
        x3.append(1)
   
    else:
        x4.append(2)       #不饮酒是2

x5=[]
for e in data['吸烟']:
    if e=='<7':           #吸烟是1
        x5.append(1)
   
    else:
        x5.append(2)       #不吸烟是2       
        
x6=[]
for f in data['住院天数']:
    if f=='<7':           #<7是1
        x6.append(1)
    elif c=='7-14':        #7-14是2   
        x6.append(2)
    else:
        x6.append(3)       #>14是3

 

posted @ 2018-11-18 21:22  cxseven  阅读(200)  评论(0编辑  收藏  举报