2015-06-23 62 views
2

我試圖從數據創建決策樹。我正在使用樹來猜測動物遊戲類應用程序。用戶用「是/否」回答問題,程序猜測答案。這個程序是作業。從數據創建決策樹

我不知道如何從數據創建決策樹。我無法知道什麼是根節點。數據每次都會有所不同。我不能親手做。我的數據是這樣的:

Animal1: property1, property3, property5 
Animal2: property2, property3, property5, property6 
Animal3: property1, property6 
etc. 

我搜索了stackoverflow,我發現了ID3和C4.5算法。但我不知道我是否應該使用它們。

有人可以指導我,我應該使用什麼算法,在這種情況下構建決策樹?

回答

3

我搜索了stackoverflow,我發現了ID3和C4.5算法。但我 不知道我是否應該使用它們。

是的,你應該。它們是非常常用的決策樹,併爲它們提供了一些不錯的開源實現。 (Weka's J48是一個示例實現C4.5)的

如果你需要從頭開始實現的東西,實現一個簡單的決策樹是相當簡單的,並反覆做:

  1. 讓標有集合的樣本是S,用一組屬性P = {P1,P2,...,PK}
  2. 選擇一個特性P1
  3. 拆分s到兩套S1,S2 - S1擁有PI和S2沒有。爲當前節點創建兩個子節點,並分別將S1和S2移動到它們的位置
  4. 對於每個樣本子集重複S'= S1,S'= S2(如果它們不是空的)。

一些指針:

  • 在每次迭代中,你基本上目前的數據拆分爲2點的子集,持有PI樣品,並沒有數據。然後創建兩個新節點,即當前節點的子節點,併爲每個節點重複該過程,每個過程都有相關的數據子集。
  • 智能算法選擇屬性pi(在步驟2中)以儘可能多地最小化樹的高度的方式(例如,找到最佳解決方案是NP-Hard,但有貪婪方法來最小化entropy)。
  • 創建樹之後,將其完成一些pruning,以避免overfitting
  • 該算法的一個簡單擴展是使用單獨工作的多個決策樹 - 這被稱爲Random Forests,通常經驗上會獲得相當不錯的結果。
+0

Allriight,謝謝。我終於通過ID3咀嚼,這正是我需要的。 – user3597496

+0

@amit我有一個關於分類標準的分類標準的分類問題。決策樹雜質分類中的所有分裂標準是否基於? – Victor