1、FINDS算法:数据结构定义:% %A=[sunny,warm,normal,strong,warm,change yes;% % sunny,warm,high,strong,warm,same yes ;% % sunny,warm,high,strong,cold,change yes ;% % rainy,cold,high,strong,warm,change no];% %第一,二,三行是yes,为正例 用1表示;第四行是no,为反例 用0表示% %设各种属性的第一种取值为1,第二种取值为2,第三种取值为3,取为?设为0,哪种值都不取设为4h=[4,4,4,4,4,4];%将h初始化为H中最特殊假设A=[1,1,1,1,1,1,1; 1,1,2,1,1,2,1; 1,1,2,1,2,1,1; 2,2,2,1,1,1,0];
2、在MATLAB中一个新建一个文件名为find.s输入如下内容代码function 掂迎豢畦Finds()% %A=[sunny,warm,normal荑樊综鲶,strong,warm,change yes;% % sunny,warm,high,strong,warm,same yes ;% % sunny,warm,high,strong,cold,change yes ;% % rainy,cold,high,strong,warm,change no];% %第一,二,三行是yes,为正例 用1表示;第四行是no,为反例 用0表示% %设各种属性的第一种取值为1,第二种取值为2,第三种取值为3,取为?设为0,哪种值都不取设为4h=[4,4,4,4,4,4];%将h初始化为H中最特殊假设A=[1,1,1,1,1,1,1; 1,1,2,1,1,2,1; 1,1,2,1,2,1,1; 2,2,2,1,1,1,0];%前三行均为正例,故g不变,s改变for i=1:4 for j=1:6 if A(i,7)==1 if h(:,j)~=A(i,j)&&h(:,j)~=4 h(:,j)=0; elseif h(:,j)~=A(i,j)&&h(:,j)==4 h(i,j)=A(i,j); elseif h(:,j)~=A(i,j)&&h(:,j)==0 h(:,j)=0; elseif h(:,j)==A(i,j) continue; end end endenddisp('极大特殊假设h:');disp(h);
3、第一步在command windows 里输入finds 运行这个文件。(源代码要放到MATLAB的work工作目录中,以待运行路径搜索)命令窗口如下图所示