您的位置:首页 > 其它

机器学习(周志华) 参考答案 第七章 贝叶斯分类器 7.3

2016-08-09 23:56 609 查看

机器学习(周志华) 参考答案 第七章 贝叶斯分类器 7.3

机器学习(周志华西瓜书) 参考答案 总目录

http://blog.csdn.net/icefire_tyh/article/details/52064910

机器学习(周志华) 参考答案 第七章 贝叶斯分类器

http://blog.csdn.net/icefire_tyh/article/details/52167273

7.3.试编程实现拉普拉斯修正的朴素贝叶斯分类器,并以西瓜数据集3.0为训练集,并对“测1”样本进行分类。

这道题书上有很详细的公式,其实没必要编程。

稍微改了下,对各项取对数累积,防止乘积太小。

为正的结果是-2.9168,为正的结果是-8.8305。

x = xlsread('C:\Users\icefire\Desktop\ml\西瓜3.xlsx', 'sheet1', 'A1:Q8');
y = xlsread('C:\Users\icefire\Desktop\ml\西瓜3.xlsx', 'sheet1', 'A9:Q9');
%测试用例
test=x(:,1);
%各参数取值
pn=[3; 3; 3; 3; 3; 2];

pc=0;   %为正的概率
nc=0;   %为正的概率
%对6种离散参数遍历
for i=1:6
c=zeros(2,1);
%累积次数,计算p(xi|c)
for j=1:17
if(x(i,j)==test(i))
c(y(j))=c(y(j))+1;
end
end
%取对数连乘变连加
pc=pc+log((c(1)+1)/(8+pn(i)));
nc=nc+log((c(2)+1)/(9+pn(i)));
end
%对2种连续参数遍历
p=[1.959,1.203;0.788,0.066];

for i=1:2
pc=pc+log(p(i,1));
nc=nc+log(p(i,2));
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习