91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 11KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-12
  • 語言: Matlab
  • 標簽: ID3??matlab??

資源簡介

不才,自己寫的,比較簡單,附有說明,我也是初學,所以這個資料內容很容易理解

資源截圖

代碼片段和文件信息

function?type=Classifier(?PValue?)
????global?node?child_value?child_node_num
????[nodechild_valuechild_node_num]=ID3();
????n=1;????????%從樹的根結點(即node{1})開始查找
????k=1;
????while?~isempty(child_node_num{n})
????????for?i=1:length(child_value{n})
????????????if?PValue(node{n})==child_value{n}(i)
????????????????n=child_node_num{n}(i);break;
????????????end????????????
????????end
????????if?i==length(child_value{n})
????????????%?若這個值在分類器中不存在,則取其最近的值進行分類
???????????PValue(node{n})=PValue(node{n})+0.1*k;
????????end
????????k=(-1)^k*(?abs(k)+1?);
????end
????type=node{n};
end

%?函數返回一棵決策樹
function??[nodechild_valuechild_node_num]=ID3()
????clear;
????clear?global?node?child_value?child_node_num;
????global?node?child_value?child_node_num
????[SL?SW?PL?PW?CN]=textread(‘training?data.txt‘‘%f?%f?%f?%f?%s‘);
????DValue=[SL?SW?PL?PW];????%SL=DValue(:1)
????for?i=1:length(SL)
????????A(i)=i;
????end
????ClassPNum=[1?2?3?4];
????m=0;
????[nodechild_valuechild_node_num]=TreeNode(?DValue?CN?A?ClassPNumm?);?
end

%?生成樹結點
%?DValue--前四列數據
%?A--參與劃分的行號
%?CN--屬性值的集合(第5列數據)
%?ClassPNum為劃分的剩余屬性編號
%?當前node的父親結點為node{m}
function?[nodechild_valuechild_node_num]=TreeNode(?DValue?CN?A?ClassPNumm)
????global?node?child_value?child_node_num
????%ClassName={‘SL‘?‘SW‘?‘PL‘?‘PW‘};
????n=length(node);
????if?m>0
????????%如果父親結點存在,將本結點的序號存入父親結點的子結點序號集中
????????k=length(child_node_num{m});
????????child_node_num{m}(k+1)=n+1;
????end
????%?1、樣本為空,則樹為空
????if?isempty(DValue)
????????node{?n+1?}=[];
????????child_value{?n+1?}=[];
????????child_node_num{?n+1?}=[];
????????return;
????end?
????%?2、用于劃分的剩余屬性為空,選擇多數元組所在的類作為結點
????if?isempty(?ClassPNum?)?
???????node{?n+1?}=find_most(?CNA?);
???????child_value{?n+1?}=[];
???????child_node_num{?n+1?}=[];
???????return;
????end?
????%?3、樣本中所有數據都屬于同一類,將此類作為結點
????CNRowNum=CN_sta(?CN?A);
????if?length(?find(CNRowNum==0)?)>=2
????????node{?n+1?}=CN{A(1)};
????????child_value{?n+1?}=[];
????????child_node_num{?n+1?}=[];
????????return;
????%?4、樣本中所有數據不屬于同一類
????else
????????I=Exp(?CNA?);
????????for?i=1:length(?ClassPNum?)????????????
????????????Entropy(i)=avg_entropy(?DValue(:ClassPNum(i))?A?CN);
????????????Gain(i)=I-Entropy(i);
????????end
????????%?4.1、各屬性的信息增益均小于0,選擇多數元組所在的類作為結點
????????if?max(Gain)<=0
????????????node{?n+1?}=find_most(?CNA?);
????????????child_value{?n+1?}=[];
????????????child_node_num{?n+1?}=[];
????????return;
????????%?4.2、在信息增益最大的屬性上進行劃分
????????else
????????????maxG=find(?Gain==max(Gain)?);
????????????[PValue?RowNum]=type_sta(?DValue(:ClassPNum(maxG(1)))?A?);
????????????node{?n+1?}=ClassPNum(maxG(1));
????????????child_value{?n+1?}=PValue;
????????????child_node_num{?n+1?}=[];
????????????ClassPNum(maxG)=[];?????%?刪除ClassPNum(maxG)--已經進行劃分的屬性
????????????for?i=1:length(PValue)
????????????????[nodechild_valuechild_node_num]=TreeNode(?DValue?CN?RowNum{i}?ClassPNumn+1?);
?????????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????5279??2010-03-26?21:31??ID3的matlab實現\Classifier.asv

?????文件???????5279??2010-03-26?21:33??ID3的matlab實現\Classifier.m

?????文件???????5037??2010-03-26?19:57??ID3的matlab實現\ID3.asv

?????文件???????4698??2010-03-04?10:36??ID3的matlab實現\training?data.txt

?????文件??????32768??2010-06-25?18:15??ID3的matlab實現\說明.doc

?????目錄??????????0??2010-06-25?18:15??ID3的matlab實現

-----------?---------??----------?-----??----

????????????????53061????????????????????6


評論

共有 條評論