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

来源:互联网 发布:linux apache ab 安装 编辑:程序博客网 时间:2024/06/05 07:50

机器学习(周志华) 参考答案 第十章 降维与度量学习 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时可以看出,分类器作出了错误的判断。
1
3
5

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

参考代码:

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;    endend%画点  %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    endendname=sprintf('%d近邻',k);xlabel('密度');ylabel('含糖率');title(name); 
0 0