初學機器學習決策樹演算法——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...