www.gusucode.com > 决策树matlab源码程序 > ID3.m
function ID3(data) x=length(data.sx); %属性个数(条件属性和决策属性) for i=1:x-1 %条件属性 rs(i)=gain(data,i); sgain(i)=rs(i).gain; %计算每个属性的gain end mgain=max(sgain); %找到最大的gain for i=1:x-1 if mgain==rs(i).gain shuxing=data.sx{i}; dt=rs(i).dat; cel=rs(i).cel; end end ds=length(cel); for i=1:ds f=isye(dt(i).data); if f.ye==1 gz=['if ',shuxing,'=',cel{i},' then ',data.sx{x},'=',f.value]; disp(gz) else hz=['if ',shuxing,'=',cel{i},' and ']; disp(hz) ID3(dt(i).data); end end %%%%%%%%%%%%%%%%%%%%%% %%%%%%%判断是否为叶子节点 function f=isye(data) es=ES(data);x=length(data.sx); if es==0 f.ye=1; f.value=data.svalue{1}{x}; else f.ye=0; end