朴素贝叶斯法学习笔记

贝叶斯分类中最简单的一类:朴素贝叶斯分类。
理解:经验分布,即根据以往数据的呈现结果生成经验,测试数据则符合学习的经验
贝叶斯定理
P(A│B)=(P(AB))/(P(B))
P(B│A)=(P(A│B)P(B))/(P(A))
朴素贝叶斯分类的原理
对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。
算法流程
STEP1:获取训练样本,并分类
STEP2:计算先验概率和条件概率
STEP3:对给定的实例,计算概率
STEP4:找出概率最大值所对应的类别作为该实例所属的类别
代码实现

%naive Bayes method
clear all;
data =[1,1,-1;1,2,-1;1,2, 1;1,1, 1;1,1,-1;2,1,-1;2,2,-1;2,2, 1;2,3, 1;
       2,3, 1;2,3, 1;3,3, 1;3,2, 1;3,3, 1;3,3,-1];
[numbers,types]=size(data);
A=[1,2,3];
B=[1,2,3];
C=[1,-1];
test=[2,1];
for i=1:2 %2 is the number of types about C
    arrayy(i)=size(find(data(:,types)==C(i)),1);
end
for i=1:2
    for j=1:3
    arrayx1(i,j)=size(find((data(:,types)==C(i))&data(:,1)==A(j)),1)/arrayy(i);
    end
end
for i=1:2
    for j=1:3
    arrayx2(i,j)=size(find((data(:,types)==C(i))&data(:,2)==B(j)),1)/arrayy(i);
    end
end
for i=1:2
    prob(i)=arrayy(i)/numbers*arrayx1(i,test(1))*arrayx2(i,test(2));
end
%=========output message========%
   disp('numbers');
   disp(numbers);
   disp('types:');
   disp(types-1);
   disp(arrayy/numbers);
   disp(arrayx1);
   disp(arrayx2);
%================================%
disp('the answer is:');
disp(C(find(prob==max(prob))));

=============结果==================
训练数据:data =[1,1,-1;1,2,-1;1,2, 1;1,1, 1;1,1,-1;2,1,-1;2,2,-1;2,2, 1;2,3, 1;
2,3, 1;2,3, 1;3,3, 1;3,2, 1;3,3, 1;3,3,-1];
输入数据:2 1
测试数据个数:
15

特征数目:
2

0.6000    0.4000

0.2222    0.4444    0.3333
0.5000    0.3333    0.1667

0.1111    0.3333    0.5556
0.5000    0.3333    0.1667

贝叶斯估计结果
-1
贝叶斯估计(Laplace smoothing)
用极大似然估计可能会出现所要估计的概率值为0的情况,解决办法,采取贝叶斯估计。

P(BiA)=(P(ABi)P(Bi)+λ)/(P(A)+Sλ)

其中S为种类B的个数。
当λ=1时,称为Laplace smoothing。

%naive Bayes method with laplace smoothing
for i=1:2
    for j=1:3
arrayx1(i,j)=(size(find((data(:,types)==C(i))&data(:,1)==A(j)),1)+1)/(arrayy(i)+size(A,2));
    end
end
for i=1:2
    for j=1:3
arrayx2(i,j)=(size(find((data(:,types)==C(i))&data(:,2)==B(j)),1)+1)/(arrayy(i)+size(B,2));
    end
end

两种算法比较:
输入实例(3,1)
极大似然估计:y=-1
贝叶斯估计:y=1
我们看到训练数据中,当x1=3时,大部分情况下输出结果为-1。从实际经验的角度上看,贝叶斯估计结果更为接近实际经验值。
参考链接
算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)
参考书目
李航《统计学习方法》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值