西瓜书机器学习笔记——朴素贝叶斯

机器学习笔记——朴素贝叶斯

引例

问题:现在周同学想购买一杯奶茶,如何判断奶茶是好喝(Y)还是不好喝(N)。
西瓜书机器学习笔记——朴素贝叶斯_第1张图片

概念

  • 为了判断奶茶好不好喝,引入四个特征:甜度、牛奶、冰块、茶叶。与几个概念
    后验概率:给定观测向量X(x1=甜度,x2=牛奶…),观察特定类别的概率P(y|x),类别:Y={y0=好喝,y1=不好喝},特征:X(x1=甜度,x2=牛奶,x3=茶叶,x4=冰块),抽象化如下。
    西瓜书机器学习笔记——朴素贝叶斯_第2张图片
    风险:决策为Y时实际情况却为N。如:误诊,判断病人得肺炎,而实际上没有。
    误判损失:λ为损失,假设损失的权重为0和1(0-1条件风险),
    将肺炎呈阳性的人判断为阳性则λ=0(i=j),
    将肺炎呈阳性的人判断为阴性则λ=1 (i!=j)。
    贝叶斯分类器
    最小化分类错误率(风险)的贝叶斯分类器:
    贝叶斯分类器
    最大后验概率(MAP)
    西瓜书机器学习笔记——朴素贝叶斯_第3张图片

训练集

测试组数 甜度 牛奶 冰块 茶叶 好喝(Y)/不好喝(N)
1 全糖 奶精 红茶 Y
2 无糖 牛奶 乌龙茶 N
3 全糖 牛奶 红茶 Y
4 无糖 牛奶 绿茶 Y
5 全糖 奶精 红茶 Y
6 无糖 奶精 一半 绿茶 N
7 半糖 牛奶 红茶 Y
8 少糖 奶精 绿茶 N
9 全糖 牛奶 红茶 Y
10 无糖 牛奶 绿茶 N
11 无糖 奶精 红茶 Y
12 无糖 牛奶 绿茶 N
13 全糖 奶精 一半 红茶 N
14 半糖 奶精 红茶 Y
15 半糖 牛奶 一半 红茶 Y
16 无糖 奶精 乌龙茶 N
  • 假设周同学现在选择了全糖,牛奶,无冰块,红茶,则判断好不好喝即判断p(好喝|全糖、牛奶、无冰块、红茶)和p(不好喝|全糖、牛奶、无冰块、红茶),何者的概率更大?
    由上述公式可得MAP为:
    西瓜书机器学习笔记——朴素贝叶斯_第4张图片
    对于似然概率我们假设甜度、牛奶、冰和茶叶之间是相互独立的,即X1,X2,X3,X4之间是各自独立的向量。在条件独立性的假设下可以得到:
    西瓜书机器学习笔记——朴素贝叶斯_第5张图片
    注:若没有条件独立性的假设,则甜度、牛奶、冰和茶叶为4维空间,可能性便有3x2x3x3=54种,计算量会呈指数型增长;其次,若假设不存在,若要判断P(半糖,奶精,无冰,乌龙茶|Y),需要从整个特征空间寻找,如果找不到,则会产生0的情况。

在条件独立的假设下,MAP可以改成下式:

P ( 类 别 ∣ 特 征 ) = P ( 类 别 ) P ( 特 征 ) ∏ i = 1 d P ( 特 征 i ∣ 类 别 ) P(类别|特征)=\frac{P(类别)}{P(特征)}\prod_{i=1}^{d}P(特征_{i}^{}|类别) P()=P()P()i=1dP(i)
由于对所有类别来说分母P(特征)是相同的,因此贝叶斯分类器可转化如下:
西瓜书机器学习笔记——朴素贝叶斯_第6张图片

回到问题判断p(好喝|全糖、牛奶、无冰块、红茶)和p(不好喝|全糖、牛奶、无冰块、红茶),何者的概率更大?

解答如下:
P ( Y ∣ 全 糖 、 牛 奶 、 无 冰 块 、 红 茶 ) = P ( 全 糖 ∣ Y ) P ( 牛 奶 ∣ Y ) P ( 无 冰 块 ∣ Y ) P ( 红 茶 ∣ Y ) P ( Y ) P ( 全 糖 ) P ( 牛 奶 ) P ( 无 冰 块 ) P ( 红 茶 ) P(Y|全糖、牛奶、无冰块、红茶)=\frac{P(全糖|Y)P(牛奶|Y)P(无冰块|Y)P(红茶|Y)P(Y)}{P(全糖)P(牛奶)P(无冰块)P(红茶)} P(Y)=P()P()P()P()P(Y)P(Y)P(Y)P(Y)P(Y)
分子求解如下:

测试组数 甜度 牛奶 冰块 茶叶 好喝(Y)/不好喝(N)
1 全糖 奶精 红茶 Y
3 全糖 牛奶 红茶 Y
4 无糖 牛奶 绿茶 Y
5 全糖 奶精 红茶 Y
7 半糖 牛奶 红茶 Y
9 全糖 牛奶 红茶 Y
11 无糖 奶精 红茶 Y
14 半糖 奶精 红茶 Y
15 半糖 牛奶 一半 红茶 Y

P(全糖|Y)=4/9

测试组数 甜度 牛奶 冰块 茶叶 好喝(Y)/不好喝(N)
1 全糖 奶精 红茶 Y
3 全糖 牛奶 红茶 Y
4 无糖 牛奶 绿茶 Y
5 全糖 奶精 红茶 Y
7 半糖 牛奶 红茶 Y
9 全糖 牛奶 红茶 Y
11 无糖 奶精 红茶 Y
14 半糖 奶精 红茶 Y
15 半糖 牛奶 一半 红茶 Y

P(牛奶|Y)=5/9

测试组数 甜度 牛奶 冰块 茶叶 好喝(Y)/不好喝(N)
1 全糖 奶精 红茶 Y
3 全糖 牛奶 红茶 Y
4 无糖 牛奶 绿茶 Y
5 全糖 奶精 红茶 Y
7 半糖 牛奶 红茶 Y
9 全糖 牛奶 红茶 Y
11 无糖 奶精 红茶 Y
14 半糖 奶精 红茶 Y
15 半糖 牛奶 一半 红茶 Y

P(无冰块|Y)=6/9

测试组数 甜度 牛奶 冰块 茶叶 好喝(Y)/不好喝(N)
1 全糖 奶精 红茶 Y
3 全糖 牛奶 红茶 Y
4 无糖 牛奶 绿茶 Y
5 全糖 奶精 红茶 Y
7 半糖 牛奶 红茶 Y
9 全糖 牛奶 红茶 Y
11 无糖 奶精 红茶 Y
14 半糖 奶精 红茶 Y
15 半糖 牛奶 一半 红茶 Y

P(红茶|Y)=8/9

测试组数 甜度 牛奶 冰块 茶叶 好喝(Y)/不好喝(N)
1 全糖 奶精 红茶 Y
2 无糖 牛奶 乌龙茶 N
3 全糖 牛奶 红茶 Y
4 无糖 牛奶 绿茶 Y
5 全糖 奶精 红茶 Y
6 无糖 奶精 一半 绿茶 N
7 半糖 牛奶 红茶 Y
8 少糖 奶精 绿茶 N
9 全糖 牛奶 红茶 Y
10 无糖 牛奶 绿茶 N
11 无糖 奶精 红茶 Y
12 无糖 牛奶 绿茶 N
13 全糖 奶精 一半 红茶 N
14 半糖 奶精 红茶 Y
15 半糖 牛奶 一半 红茶 Y
16 无糖 奶精 乌龙茶 N

P(Y)=9/16

代入原式得:
P ( Y ∣ 全 糖 、 牛 奶 、 无 冰 块 、 红 茶 ) = P ( 全 糖 ∣ Y ) P ( 牛 奶 ∣ Y ) P ( 无 冰 块 ∣ Y ) P ( 红 茶 ∣ Y ) P ( Y ) = ( 4 / 9 ) ∗ ( 5 / 9 ) ∗ ( 6 / 9 ) ∗ ( 8 / 9 ) ∗ ( 9 / 16 ) ≈ 0.082 P(Y|全糖、牛奶、无冰块、红茶) \\={P(全糖|Y)P(牛奶|Y)P(无冰块|Y)P(红茶|Y)P(Y)} \\={(4/9)*(5/9)*(6/9)*(8/9)*(9/16)} \\\approx0.082 P(Y)=P(Y)P(Y)P(Y)P(Y)P(Y)=(4/9)(5/9)(6/9)(8/9)(9/16)0.082

同理可得

P ( N ∣ 全 糖 、 牛 奶 、 无 冰 块 、 红 茶 ) = P ( 全 糖 ∣ N ) P ( 牛 奶 ∣ N ) P ( 无 冰 块 ∣ N ) P ( 红 茶 ∣ N ) P ( N ) = ( 1 / 7 ) ∗ ( 3 / 7 ) ∗ ( 4 / 7 ) ∗ ( 1 / 7 ) ∗ ( 7 / 16 ) ≈ 0.0021 P(N|全糖、牛奶、无冰块、红茶) \\={P(全糖|N)P(牛奶|N)P(无冰块|N)P(红茶|N)P(N)} \\={(1/7)*(3/7)*(4/7)*(1/7)*(7/16)} \\\approx0.0021 P(N)=P(N)P(N)P(N)P(N)P(N)=(1/7)(3/7)(4/7)(1/7)(7/16)0.0021
P(Y|全糖、牛奶、无冰块、红茶)>P(N|全糖、牛奶、无冰块、红茶)
因此在特征为全糖、牛奶、无冰块、红茶的情况下,有较大的可能性选择好喝的判断。

拉普拉斯修正

为了避免未出现的特征在训练集中被抹去,常采用拉普拉斯修正。

测试组数 甜度 牛奶 冰块 茶叶 好喝(Y)/不好喝(N)
1 全糖 奶精 红茶 Y
2 无糖 牛奶 乌龙茶 N
3 全糖 牛奶 红茶 Y
4 无糖 牛奶 绿茶 Y
5 全糖 奶精 红茶 Y
6 无糖 奶精 一半 绿茶 N
7 半糖 牛奶 红茶 Y
8 少糖 奶精 绿茶 N
9 全糖 牛奶 红茶 Y
10 无糖 牛奶 绿茶 N
11 无糖 奶精 红茶 Y
12 无糖 牛奶 绿茶 N
13 全糖 奶精 一半 红茶 N
14 半糖 奶精 红茶 Y
15 半糖 牛奶 一半 红茶 Y
16 无糖 奶精 乌龙茶 N

可以从训练集中很容易发现,P(乌龙茶|Y)=0/9,因此很容易使得概率为0,显然不合适,由此引入拉普拉斯修正。

你可能感兴趣的:(机器学习,人工智能,概率论)