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



    1.理解分类与监督学习、聚类与无监督学习。

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

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

    分类:在已知的类中自己找相似性,自动归类。(先前已有类)

    聚类:在大量的数据中把相似的聚成一类。(先前未有类)

    监督学习:从大量的先前知识中来判断是什么类型。(有样本)

    无监督学习:把已有的数据进行分类,然后判断是什么类型。(没有样本)

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

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

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

    目标分类变量疾病:

    –心梗

    –不稳定性心绞痛

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

    最可能是哪个疾病?

    上传手工演算过程。

    性别

    年龄

    KILLP

    饮酒

    吸烟

    住院天数

    疾病

    1

    >80

    1

    7-14

    心梗

    2

    70-80

    2

    <7

    心梗

    3

    70-81

    1

    <7

    不稳定性心绞痛

    4

    <70

    1

    >14

    心梗

    5

    70-80

    2

    7-14

    心梗

    6

    >80

    2

    7-14

    心梗

    7

    70-80

    1

    7-14

    心梗

    8

    70-80

    2

    7-14

    心梗

    9

    70-80

    1

    <7

    心梗

    10

    <70

    1

    7-14

    心梗

    11

    >80

    3

    <7

    心梗

    12

    70-80

    1

    7-14

    心梗

    13

    >80

    3

    7-14

    不稳定性心绞痛

    14

    70-80

    3

    >14

    不稳定性心绞痛

    15

    <70

    3

    <7

    心梗

    16

    70-80

    1

    >14

    心梗

    17

    <70

    1

    7-14

    心梗

    18

    70-80

    1

    >14

    心梗

    19

    70-80

    2

    7-14

    心梗

    20

    <70

    3

    <7

    不稳定性心绞痛

     设X{x1,x2,x,x1,x1,x1}为影响疾病的因素

    Y{y1,y2}为疾病类型,y1为心梗、y2为不稳定性心绞痛

    则P(y1)=16/20,P(y2)=4/20,P(X)=1

    P(y1|X)=P(X|y1)P(y1)/P(X)=P(x1|y1)P(x2|y1)P(x3|y1)P(x4|y1)P(x5|y1)P(x6|y1)P(y1)/P(X)=7/16*4/16*9/16*3/16*7/16*4/16*16/20/1=0.1009%

    P(y2|X)=P(X|y2)P(y2)/P(X)=P(x1|y2)P(x2|y2)P(x3|y2)P(x4|y2)P(x5|y2)P(x6|y2)P(y2)/P(X)=1/4*1/4*1/4*1/4*2/4*2/4*4/20/1=0.0195%

    故最可能是心梗。

    3.使用朴素贝叶斯模型对iris数据集进行花分类。

    尝试使用3种不同类型的朴素贝叶斯:

    • 高斯分布型
    • 多项式型
    • 伯努利型

    并使用sklearn.model_selection.cross_val_score(),对各模型进行交叉验证。

    源代码:

    from sklearn.datasets import load_iris
    from sklearn.naive_bayes import GaussianNB
    from sklearn.model_selection import cross_val_score
    from sklearn.naive_bayes import BernoulliNB
    from sklearn.naive_bayes import MultinomialNB
    
    iris=load_iris()#数据集
    gnb=GaussianNB()#高斯分布型
    bnb=BernoulliNB()#伯努利型
    mnb=MultinomialNB()#多项式型
    #对各模型进行交叉验证
    g_scores=cross_val_score(gnb,iris.data,iris.target,cv=10)
    b_scores=cross_val_score(bnb,iris.data,iris.target,cv=10)
    m_scores=cross_val_score(mnb,iris.data,iris.target,cv=10)
    print("Accuracy:高斯分布型	伯努利型	多项式型
    			%.3f	%.3f	%.3f"%(g_scores.mean(),b_scores.mean(),m_scores.mean()))

    结果:

  • 相关阅读:
    poj 3280 Cheapest Palindrome(区间DP)
    POJ 2392 Space Elevator(多重背包)
    HDU 1285 定比赛名次(拓扑排序)
    HDU 2680 Choose the best route(最短路)
    hdu 2899 Strange fuction (三分)
    HDU 4540 威威猫系列故事――打地鼠(DP)
    HDU 3485 Count 101(递推)
    POJ 1315 Don't Get Rooked(dfs)
    脱离eclipse,手动写一个servlet
    解析xml,几种方式
  • 原文地址:https://www.cnblogs.com/tao614/p/12841929.html
Copyright © 2020-2023  润新知