2016-11-09 54 views
0

當運行一個隨機森林時,它將不允許在一個變量中超過32個層次,因爲它導致了2^n個數據組合/分區。我想它會遵循n!/ k!(n-k)的經典組合方程!爲n選擇k。任何人都可以解釋爲什麼這是?例如,如果我在一個變量中有4個級別,它將劃分爲2^4 = 16,我會懷疑它應該是16/4 = 4。什麼是遞歸分區從n級數據創建2^n個組合?

我懷疑這是由於組成較大的隨機森林的決策樹內進行的遞歸分區。

+0

您使用的是什麼軟件,以及您看到了哪些錯誤?你的問題不清楚。 – BadZen

+0

對不起,讓我知道我可以澄清!我正在使用R來構建預測模型。錯誤在於模型運行時間非常長,或者更可能用完隨機存取存儲器。我的問題是試圖理解在單個變量中具有大量數據的遞歸分區背後的理論數學/計算機科學。 – barker

+0

然後請顯示您的代碼。沒有理論上的原因,爲什麼爲所有'n'定義的算法會有一個位限制的輸入大小。這是一個實現細節。你需要展示實現,或者你想要運行什麼。 – BadZen

回答

2

我相信你迷惑了兩種情況。您正在考慮「我可以選擇多少種方式給定號碼,k,來自一組n項目的項目?」實際的問題是「我可以從n項目中挑選一組物品的方式有多少?」

第二個問題是第一個解的總和,對於k = 0到n。 這個數字是2^n。

查看它的另一種方法是在您選擇的集合中是否存在任何給定的元素。每個元素有兩個選擇,我們有2^n個可能性。

下面是一個例子:讓我們來看看集合{1,2,3,4}。

案例1:我能從多少種方法中選擇k = 2個元素?

1 2 
1 3 
1  4 
    2 3 
    2 4 
    3 4 

這確實是4! /(2!2!)= 6的可能性

然而,當我們看對於k的所有的值總分區,我們得到

. . . . (empty set) 
     4 
    3 
    3 4 
    2 
    2 4 
    2 3 
    2 3 4 
1 
1  4 
1 3 
1 3 4 
1 2 
1 2 4 
1 2 3 
1 2 3 4 

其是2^4 = 16種選擇。請注意,這也是k的不同值的總和:1 + 4 + 6 + 4 + 1

+1

這與第二類Stirling數密切相關(取決於您認爲哪些分區適用於樹算法),如果OP想要更多的數學重讀。 – joran

+0

啊,是的,分區將創建給定集合的每個子集!感謝Prune的非常明確的答案。我也喜歡閱讀古蘭經的重數學,感謝這個想法! – barker