matlab交互式程序设计示例:[4]候选消除算法
1、候选消除学习算法:数据结构定义% %A=[sunny,warm,normal,strong,warm,change;% % sunny,warm,high,strong,warm,same;% % sunny,warm,high,strong,cold,change;% % rainy,cold,high,strong,warm,change];% %第一,二,三行是yes,为正例;第四行是no,为反例% %设各种属性的第一种取值为1,第二种取值为2,第三种取值为3,取为?设为0,哪种值都不取设为4s0=[4,4,4,4,4,4];g0=[0,0,0,0,0,0];A=[1,1,1,1,1,1;1,1,2,1,1,2;1,1,2,1,2,1;2,2,2,1,1,1];
![matlab交互式程序设计示例:[4]候选消除算法](https://exp-picture.cdn.bcebos.com/49c5d3e34b2c56ee97626ebdf775e5f4fdf540b1.jpg)
2、用MATLAB新建一个文件名字为houxuan.m,加入如下内容function houxuan()% %A=[sunny,warm,normal,strong,warm,change;% % sunny,warm,high,strong,warm,same;% % sunny,warm,high,strong,cold,change;% % rainy,cold,high,strong,warm,change];% %第一,二,三行是yes,为正例;第四行是no,为反例% %设各种属性的第一种取值为1,第二种取值为2,第三种取值为3,取为?设为0,哪种值都不取设为4s0=[4,4,4,4,4,4];g0=[0,0,0,0,0,0];A=[1,1,1,1,1,1;1,1,2,1,1,2;1,1,2,1,2,1;2,2,2,1,1,1];%前三行均为正例,故g不变,s改变for i=1:3 for j=1:6 if s0(:,j)~=A(i,j) & s0(:,j)~=4 & s0(:,j)~=0 s0(:,j)=0 else if s0(:,j)~=A(i,j) & s0(:,j)==4 s0(:,j)=A(i,j) else if s0(:,j)~=A(i,j) & s0(:,j)==0 s0(:,j)=0 end end end endend%第四行为反例,故s不变,g改变S=s0;A(4,:)=0;A(4,1)=1;G(1,:)=A(4,:);A(4,:)=0;A(4,1)=3;G(2,:)=A(4,:);A(4,:)=0;A(4,2)=1;G(3,:)=A(4,:);A(4,:)=0;A(4,3)=1;G(4,:)=A(4,:); A(4,:)=0;A(4,4)=2;G(5,:)=A(4,:); A(4,:)=0;A(4,5)=2;G(6,:)=A(4,:);A(4,:)=0;A(4,6)=2;G(7,:)=A(4,:);Gg=G;[m,n]=size(Gg);%disp(m);%disp(n);for i=1:m for j=1:n if Gg(i,j)~=s0(:,j) & Gg(i,j)~=0 Gg(i,:)=0 end endenddisp('最终的一般边界S集合的极小一般化成员为:\n');disp(s0);disp('最终的一般边界G集合的极小特殊化成员为:\n');for i=1:mif Gg(i,:)==0 ;else disp(Gg(i,:));endend
3、第一步在command windows 里输入houxuan运行这个文件。(源代码要放到MATLAB的work工作目录中,以待运行路径搜索)命令窗口如下图所示
![matlab交互式程序设计示例:[4]候选消除算法](https://exp-picture.cdn.bcebos.com/e4b5e2f5ee0d3ace59ca9ad887e265e7350fbbb1.jpg)