簡體   English   中英

隨機森林分類如何在幕后工作?

[英]How random forest classification works behind the scenes?

這是隨機森林分類如何工作的樣本數據集。 我知道通過選擇隨機 k 點然后取某種平均值來構建多個決策樹?

但是在這種情況下,我有 10 棵樹,有 10 個不同的數據點,如果我要 select 隨機 k 點,它會是這樣的:

x_train = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
y_train = [0, 0, 1, 0, 1, 1, 1, 0, 0, 1]
object = RandomForestClassifier(n_estimators=10, criterion='entropy')
object.fit(x_train, y_train)

然后我們制作一個圖並拆分 random_k_1 以便它在每個拆分中最大化一個類別。

那我們怎么辦? 比如取某種平均值? 如果是,我們應該怎么做,我們只有 0, 1 作為 y^? 對不起,我無法解釋這個問題,我迷路了,無法描述這個問題。

random_k_1 = [[10, 0], [30, 1], [70, 1]]

簡而言之,隨機森林使用決策樹工作。 它使用一種稱為“Bootstrapping”或“Bagging”的技術來減少模型中的方差。

采用了許多決策樹(在 sklearn 實現中,由n_estimators定義)。 這些樹中的每一個都可以在數據的隨機子樣本上進行訓練。 這試圖使每棵樹盡可能獨立於其他樹。 一旦這些被訓練,就會使用聚合技術。

從文檔中引用:

輸入樣本的預測 class 概率計算為森林中樹木的平均預測 class 概率。 單個樹的 class 概率是葉子中相同 class 的樣本的分數。

然后,預測就是具有最高平均 class 概率的 class。

這種聚合降低了 model 的方差,因此我們將 go 降低到低方差低偏差的最佳位置。

我相信你的困惑就在這里 目標 label y 的聚合未完成。 對各種決策樹的輸出進行聚合。

為了簡化,考慮這個例子。

您采用 11 個估計器,即 RandomForest model 中的 11 個決策樹。 y 只能是 [0, 1] 整數。 這些決策樹中有 6 個預測 y 為 1,其中 5 個預測它為 0。在這種情況下,您選擇整個森林的預測為 1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM