資源簡介
matlab版的信息增益算法實現
代碼片段和文件信息
function?tree?=?InformationGain(a)
targets?????=?a(:end);
targets?????=?targets‘;
a???????????=?a(:1:end-1);
patterns????=?a‘;
[Ni?L] =?size(patterns);
%Nu??????????=?1000;
discrete_dim?=?zeros(1Ni);
for?i?=?1:Ni
????Ub?=?unique(patterns(i:));
????Nb?=?length(Ub);
????%This?is?a?discrete?pattern
????discrete_dim(i) =?Nb;%記錄每列屬性獨一無二的樣本的長度
end
%??Build?a?tree?recursively
%??patterns?????-?Train?patterns訓練集D?(the?number?of?features)?*?(the?number?of?samples)
%??targets ????-?Train?targets?1*(the?number?of?samples)訓練集D的類數
%??inc_node?????-?Stop?building?a?subtree?if?its?total?samples?are?less?than?inc_node,
%??discrete_dim?-?1*(the?number?of?features).?0?entries?for?continuous?features?
%??[NiL]=?size(patterns);%Ni-the?number?of?features,L-the?number?of?samples)
Uc=?unique(targets);%訓練集D的類數,并從小到大排序
for?i?=?1:length(Uc)
????Pnode(i)?=?length(find(targets?==?Uc(i)))?/?L;
????%disp(find(targets?==?Uc(i)));
end
Inode?=?-sum
評論
共有 條評論