2016-02-13 163 views
1

我有以下訓練數據集,其中第一行顯示屬性的名稱。決策樹學習算法中的重複訓練數據

S_Length, Se_Width, P_Length, P_Width, Predicate 
5.1,3.5,1.4,0.2,Ili 
4.9,3.0,1.4,0.2,Iri 
4.7,3.2,1.3,0.2,Iyr 
4.6,3.1,1.5,0.2,Ir 
5.0,3.6,1.4,0.2,Po 
5.4,3.9,1.7,0.4,II 
4.6,3.1,1.5,0.2,Ir 
5.0,3.4,1.5,0.2,Imt 
4.6,3.1,1.5,0.2,Ir 

在上述數據集的第4,7和9行中,數據集是重複的。它如何影響算法?我應該省略重複的數據嗎?

+0

如果我試圖根據包括他們喝的啤酒在內的屬性來預測某個人是否爲彩票贏家,那麼我將包含一個獲得該彩票的Bud飲酒者的一百萬份副本,您認爲會發生什麼? –

+0

這是一個非常現實的例子。所以可以肯定的是,重複的數據集會給節點增加不必要的權重,應該刪除? –

回答

1

如果這是正確收集數據(一些隨機過程/問題的隨機樣本),那麼你不應該刪除樣本。這只是您的數據的特徵,您已採樣具有相同表示的兩個對象。有效地,這會加重這一點,如果現實是這樣的話,這是一個有效的做法。總之除非你是100%肯定這是由於錯誤或者你想實現的東西不標準(如偏差估計對不同的分佈,計算效率近似解等)從來沒有刪除任何東西

+0

我不能完全同意你的結論「** 100%肯定**,這是**由於錯誤**」。我會用「** 100%肯定**,你知道你在做什麼」取而代之。保留和刪除這些要點有很多很好的理由。其中一個原因就是您使用了具有較高邊際的SVM,一個用於加速計算。其他人則認爲這些觀點不受歡迎(?)強調其他培訓方法(如決策樹)中的錯誤分類成本。因此,這些點對不同的訓練方法有不同的影響。 – CAFEBABE

+0

@CAFEBABE,當然,基本假設是「如果您使用的是標準設置」。如果你想做一些非標準的事情,你甚至可以刪除所有的訓練樣本,並手工建立模型;)然後沒有規則 – lejlot

+0

(太小的空間,真正的好討論)你總結我的問題與你的答案:**你**應用某些假設。這些假設你稱之爲**標準設置**(看起來:統計ML,經驗風險最小化)。但是,只要您離開這個設置,事情就會完全不同。例如,在聚類,規則歸納等方面。在寫「知道你在做什麼」時,我不得不微笑,因爲除非你知道你在做什麼,否則你不應該在ML中得出任何結論。因此,問題非常相關,但是,太少的細節給予0/1回答恕我直言。不壞。所以 – CAFEBABE

0

對於統計機器學習lejlot給出了很好的答案。但是,決策樹學習有點不同。它使用貪婪的方式尋找一個良好的結構,這可能會導致這裏出現奇怪的結果。從歷史上看,這是因爲他們來自機器學習更多的是藝術(或工程學,但聽起來不那麼性感)。 。

繼續我們需要兩個保證兩個屬性(第一個已經被lejlot解釋)

  1. 這種重複不是由於在數據收集過程中出現錯誤
  2. 你的數據仍然是獨立同分布前如果你想做LOO或CV,訓練,測試,驗證拆分。這對我來說非常重要。如果看到很多例子,這會破壞統計評估的所有屬性。特別是,火車/測試分裂可能被應用於修剪等,如果是的話,你的例子並不是獨立的,你需要確保他們最終在同

對於數值數據我會立刻變得很可疑的是這些被違反。

給出這些假設 - 除了您使用C4.5 - 我們可以分析對學習模型的影響。如果我們假設,你的類可以通過決策樹來分離,並且你沒有提出任何約束,它沒有任何區別。在這種情況下,您可以實際上安全地移除它們,但是,保持它們對分類沒有太大影響。但是,樹的結構可以很大程度上受這些附加示例的影響。在不計算entropy/gini索引的實際值的情況下,我假設第一次拆分將在S_Length =< 4.6上。這是這些額外例子中最重要的結果:C4.5的貪婪將推動結構朝着捕獲這些例子的方向發展。你可以稱這種結構適合某個班級。這可能是一個問題,如果這種差異相對於其他功能而言相當微不足道。支持向量機在這裏反應會更好(毫不奇怪:統計ML)。

總的來說,我會保留它們並將其刪除。在誘導樹的結構時,我會忽略它們,只計算其餘示例的結構。但是,爲了計算葉子的分類和修剪,我會使用它們。

上一段包含了最重要的建議:我將在這樣一個域中的樹上應用修剪。