【ML实验4】多分类贝叶斯模型

实验代码获取 github repo
山东大学机器学习课程资源索引


实验目的

在这里插入图片描述

实验内容

数据集

在这里插入图片描述

构建多分类贝叶斯模型

在这里插入图片描述
在这里插入图片描述
这里的条件独立性指的是特征 x j x_j xj之间相互独立,这是一个十分强的假设。
在这里插入图片描述
证明 Problem Set 2
思路主要是证明下面引理,用拉格朗日乘子法,对 p y p_y py求偏导变换一下可得。之后将目标似然函数分为两部分,一部分是在这里插入图片描述,另一部分是在这里插入图片描述,将标签或者特征出现频次视为权重,应用引理即可。
其实这个结论十分直观,发生多的自然越有可能发生,量化表达,将出现的频率作为对目标函数的贡献。

在这里插入图片描述

预测

在这里插入图片描述

拉普拉斯平滑

前面构建的模型是朴素贝叶斯,和贝叶斯估计的优化函数有点不同,后者结果在各个取值的频数增加一个 λ \lambda λ,当 l a m b d a = 1 lambda=1 lambda=1时称为拉普拉斯平滑,可以避免0/0的错误。

在这里插入图片描述

实验结果

在这里插入图片描述
在这里插入图片描述
混淆矩阵部分代码:

function confusion_matrix(actual,detected)
[mat,order] = confusionmat(actual,detected);
 
imagesc(mat);            %# Create a colored plot of the matrix values
colormap(flipud(gray));  %# Change the colormap to gray (so higher values are
                         %#   black and lower values are white)
                         
textStrings = num2str(mat(:),'%0.02f');  %# Create strings from the matrix values
textStrings = strtrim(cellstr(textStrings));  %# Remove any space padding
 
[x,y] = meshgrid(1:5);   %# Create x and y coordinates for the strings
hStrings = text(x(:),y(:),textStrings(:),...      %# Plot the strings
                'HorizontalAlignment','center');
midValue = mean(get(gca,'CLim'));  %# Get the middle value of the color range
textColors = repmat(mat(:) > midValue,1,3);  %# Choose white or black for the
                                             %#   text color of the strings so
                                             %#   they can be easily seen over
                                             %#   the background color
set(hStrings,{'Color'},num2cell(textColors,2));  %# Change the text colors
 
set(gca,'XTick',1:5,...                         %# Change the axes tick marks
        'XTickLabel',{'0','1','2','3','4'},...  %#   and tick labels
        'YTick',1:5,...
        'YTickLabel',{'0','1','2','3','4'},...
        'TickLength',[0 0]);
xlabel('Real Class');
ylabel('Predict Class');

在这里插入图片描述
小数据集训练,对贝叶斯模型的效果影响甚微,而且效率上更优,主要是因为贝叶斯模型的训练是基于统计的,这和抛硬币去数正反是一个道理,符合大数定律,当一定硬币抛到一定次数,我们就可以确定正面出现50%,反面出现50%,当然随着标签和特征数增加,这个一定次数也会随之增加,和模型的复杂度相关。又问为什么训练会基于统计,解为什么会是特征或者标签的频率,因为贝叶斯最重要的假设,样本各个特征之间相互独立,没有关联,可以将视作一个个‘1’进行统计。

Conclusion

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

u小鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值