有關決策樹(id3)的具體原理,可參考這篇文章,這裡只是簡單求了根節點,並未將整棵樹建立起來。
**僅供參考。(沒有注釋,可能比較難理解)
(來自於南京大學周志華教授《機器學習》一書)
#include #include #include #include #include #define maxn 27
#define n 17
using namespace std;
struct nodewm[maxn];
double entd;
double calc_ent(int x,int y)
}for(int i=1;i<=n;++i)
return (-res);
}double calc_gain(int x)
return entd-res;
}void init()
entd=calc_ent(0,0);
printf("entd=%lf\n",entd);
}void solve()
}printf("root=%d\n",root);
}int main()
/*1 2 1 2 3 1 2 1
2 3 1 1 3 1 2 1
3 3 1 2 3 1 2 1
4 2 1 1 3 1 2 1
5 1 1 2 3 1 2 1
6 2 2 2 3 2 1 1
7 3 2 2 2 2 1 1
8 3 2 2 3 2 2 1
9 3 2 1 2 2 2 2
10 2 3 3 3 3 1 2
11 1 3 3 1 3 2 2
12 1 1 2 1 3 1 2
13 2 2 2 2 1 2 2
14 1 2 1 2 1 2 2
15 3 2 2 3 2 1 2
16 1 1 2 1 3 2 2
17 2 1 1 2 2 2 2
*/
機器學習 決策樹
一 基本概念 決策樹 decision tree 是一種基本的分類與回歸方法。決策樹模型呈樹形結構,在分類問題中,表示屬於特徵對例項進行分類的過程,它可以認為是if then規則的集合,也可以認為是電議在特徵空間與類空空上的條件概率分布,其主要優點是模型具有可讀性,分類速度快。決策樹的學習通常包括3...
機器學習 決策樹
我覺得決策樹是機器學習所有演算法中最可愛的了 沒有那麼多複雜的數學公式哈哈 下圖是一棵決策樹,用來判斷西瓜是好瓜還是壞瓜 決策過程中提出的每個判定問題都是都對某個屬性的測試,每個測試結果要麼推導出最終結論,要麼匯出進一步判斷的問題,在上次決策結果限定的範圍內做進一步判斷。從上圖可以看出,葉節點對應決...
機器學習 決策樹
一 演算法簡介 決策樹一般都是自上而下來生成的,每個決策後事件 即自然狀態 都可能引出兩個或多個事件,導致結果的不同,把這種結構分支畫成形狀很像一棵樹的枝幹,故稱為決策樹。決策樹能夠讀取資料集合,並且決策樹很多任務都是為了資料中所蘊含的知識資訊,因此決策樹可以使用不熟悉的資料集合,並從中提取一系列規...