您的位置:首页 > 其它

机器学习(周志华) 参考答案 第十章 降维与度量学习 10.1

2016-08-18 17:28 1211 查看

机器学习(周志华) 参考答案 第十章 降维与度量学习 10.1

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

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

机器学习(周志华) 参考答案 第十章 降维与度量学习

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

最邻近分类器虽然简单,但是它的泛化错误不超过贝叶斯最优分类器的二倍。


1.编程实现k邻近分类器,在西瓜数据集3.0α上比较其与决策树分类边界的异同。

k邻近分类器是在离该样本最近的k个样本集合中,选择分类最多的一个作为该样本的分类。

下面是k分别为1,3,5时的边界

其中蓝色是样本分类 o代表好瓜 x代表坏瓜

黄色表示分类器会将测试样本标记为好瓜,绿色则是坏瓜

从k=5时可以看出,分类器作出了错误的判断。







与单变量决策树只有水平和垂直边界不同,k邻近分类器可以有曲线边界。



参考代码:

x = xlsread('C:\Users\icefire\Desktop\ml\西瓜3.xlsx', 'sheet1', 'A7:Q8');
y = xlsread('C:\Users\icefire\Desktop\ml\西瓜3.xlsx', 'sheet1', 'A9:Q9');
%将y映射到1好瓜  -1坏瓜
y = 3-2*y;

%近邻数
k=3;

%计算k近邻边界
edist=zeros(1,17);
%按点计算
for i=0.22:0.01:0.78
for j=0.02:0.01:0.48
%计算与各样本距离
for l=1:17
edist(l)=norm([i;j]-x(:,l))^2;
end
%对距离排序
[td,arr]=sort(edist);
%选出前k个
pe=sign(sum(y(arr(1:k))));
if pe==1
plot(i,j,'.y');
else
plot(i,j,'.g');
end
hold on;
end
end

%画点
%x表示好瓜  o表示坏瓜
%蓝色表示样本分类 红色表示错误的分类
for i=1:17
if y(i)==1
plot(x(1,i),x(2,i),'ob');
hold on;
else if y(i)==-1
plot(x(1,i),x(2,i),'xb');
hold on;
end
end
end

name=sprintf('%d近邻',k);
xlabel('密度');
ylabel('含糖率');
title(name);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习