《机器学习》周志华课后习题答案——第七章 (1-5已完结)
文章目录
1.试使用极大似然法估算西瓜数据集3.0中前3个属性的类条件概率.
2.试证明:条件独立性假设不成立时,朴素贝叶斯分类器仍有可能产生最优贝叶斯分类器.
朴素贝叶斯分类器就是建立在条件独立性假设上的。当有不独立的属性时,假如所有样本不独立的属性取值相同时分类也是相同的,那么此时朴素贝叶斯分类器也将产“生最优分类器。
3.试编程实现拉普拉斯修正的朴素贝叶斯分类器,并以西瓜数据集3.0为训练集,对p.151“测1”样本进行判别.
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
4.实践中使用式(7.15)决定分类类别时,若数据的维数非常高,则概率连乘II=1 P(xi | c)的结果通常会非常接近于0从而导致下溢.试述防止下溢的可能方案.
若连乘的式子太多,导致乘积接近0。由于属性个数是已知的,可以对每个乘式做适当次的开方处理,可以保证结果不会为0。另外也可以对各项取对数,当累加太多时,可能导致和接近负无穷。可以对每个加数除以属性的个数,来防止溢出。