資源簡介
此程序主要實現對數據的加載和處理,首先加載數據,本算法選擇的數據集是鳶尾花數據集,加載的數據形式是元胞數組,本程序先把其轉換成字符串數組,后對字符串數組進行處理,將數據部分和標簽部分分隔開,數據部分轉換成數組形式,標簽部分則對應存儲于字符串數組中。然后對數據創(chuàng)建決策樹,結果存儲于結構體中,后計算算法的準確率。最后將結構體數據轉換成元胞數據,轉換成treeplot系統函數能識別的數據形式,并繪制決策樹。
代碼片段和文件信息
function?[bestfeatT_fen]?=?choose_feat(datafeat_indexlabel)
%這里主要是用于選擇最理想的屬性
%feat_index:需要進行比較的屬性
%data:樣本的數據?label:對應樣本數據的標簽
%T_fen:對應最優(yōu)屬性的二分法的最優(yōu)分割點
%bestfeat:最優(yōu)屬性的索引
best_gain=0;
bestfeat=0;
%?T_fen對應屬性獲得最大增益時的二分法取值
for?i=feat_index
????mmat=unique(data(:i));%得到對應屬性取值的序列
????if?length(mmat)-1==0
????????T_mat=mmat(1);
????else
????????T_mat=ones(1length(mmat)-1);%定義二分法的值
????????for?j=1:length(mmat)-1
????????????T_mat(j)=(mmat(j)+mmat(j+1))/2;
????????end
????end
????
????for?j=T_mat
????????Gain=Ent_cal_data(datalabelij);
????????if?Gain>best_gain
????????????best_gain=Gain;
????????????bestfeat=i;
????????????T_fen=j;
????????end
????end
end
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????807??2020-08-07?11:02??ID3決策樹算法\choose_feat.m
?????文件???????1136??2020-08-08?09:07??ID3決策樹算法\creat_tree.m
?????文件????????360??2020-08-07?18:04??ID3決策樹算法\Ent_cal_data.m
?????文件????????491??2020-08-07?18:41??ID3決策樹算法\Ent_cal_label.m
?????文件????????193??2020-08-07?16:48??ID3決策樹算法\fen_label.m
?????文件????????257??2020-08-05?18:59??ID3決策樹算法\find_label.m
?????文件????????420??2020-08-07?17:01??ID3決策樹算法\find_mlabel.m
?????文件???????1513??2020-08-08?12:04??ID3決策樹算法\ID3_v1.m
?????文件???????4551??2020-03-05?17:12??ID3決策樹算法\iris.data
?????文件????????600??2020-08-07?11:09??ID3決策樹算法\prev.m
?????文件????????425??2020-08-07?11:10??ID3決策樹算法\print_tree.m
?????目錄??????????0??2020-09-03?16:56??ID3決策樹算法
-----------?---------??----------?-----??----
????????????????10753????????????????????12
評論
共有 條評論