基於C 實現的ID3演算法決策樹

2021-08-17 13:50:23 字數 1174 閱讀 4122

初學機器學習決策樹演算法——id3實現(c++),

通過計算劃分不同子集的資訊增益確定結點屬性,並呼叫遞迴,層層建立決策樹,

但因時間原因,此**在列印決策樹方面做的不是很完善,望諒解。

#include #include #include #include #define amount 10

#define key_down 0x1b5b42

using namespace std;

vector> samples;

vectorflag(3,0);

int residualfeature=3;

setcpu;

setram;

setscreen;

vectorfeature=;

vector> values;

struct node;

template vectorset2vector(set& a)

void init();//訓練集

int i,j;

vectortemp;

vectortempforvalues;

for(i=0;i> divide(vector> rsc,int column,string value)

for(j=0;j> rsc)

return parententropy-entropy;

}void buildtree(node* p,vector> current)

if(count==current.size()||count==0)

vector>::iterator ptr1 = values.begin(); //!

vector::iterator ptr2;

double max;

int maxcolumn;

double temp;

for(i=0;imax)

}flag[maxcolumn]=1;

residualfeature--;

advance(ptr1,maxcolumn);

ptr2 = ptr1->begin();

for(j=0;jsize();j++)

return;

}void preorder(node* p,int level)

}int main()

決策樹 ID3演算法

id3演算法通過計算每個屬性的資訊增益,認為資訊增益越大屬性越優,每次劃分選取資訊增益最大的屬性為劃分標準,重複這個過程,直到構成一棵決策樹。資訊熵是描述事件給我們的驚訝程度,如果所有事件的概率均等,那熵值大,驚訝程度低。如果有一事件的概率極高而其他極低,熵值便低,驚訝程度大。其計算公式如下 資訊增...

決策樹 ID3演算法

一 決策樹基本概念 在機器學習中,決策樹是乙個 模型,它代表的是物件屬性與物件值之間的一種對映關係。本質上決策樹是通 過一系列規則對資料進行分類的過程。下圖為經典決策樹例項。如圖所示,例項是由 屬性 值 對表示的 例項是用一系列固定的屬性和他們的值構成。目標函式具有離散的輸出值 上圖給每個例項賦予乙...

決策樹ID3演算法

typeerror dict keys object does not support indexing 9.typeerror dict keys object does not support indexing 這個問題是python版本的問題 如果使用的是python2 firststr my...