隨機森林學習筆記(未完待續)

2021-10-08 23:24:46 字數 2369 閱讀 5159

以下內容參考資料有:

周志華《西瓜書》

李航《統計學習方法》

嗶哩嗶哩白板推導@shuhuai008

嗶哩嗶哩菜菜的sciki-learn課堂

《機器學習實戰》

吳喜之《多元統計分析——r與python的實現》

為什麼隨機森林的效果好於單個分類器

隨機森林的本質是一種裝袋整合演算法(bagging),這是對基評估器的**結果進行平均,或者用少數服從多數原則來決定整合評估器的結果。

例如,一片森林裡建立了25棵樹,對任何乙個樣本,根據平均或少數服從多數原則下,當且僅當有13棵以上的樹判斷錯誤的時候,隨機森林才會判斷錯誤。

25棵樹中,假設一棵樹判斷錯誤的可能性為0.2(ε),有i

ii棵樹判錯的概率是:

e i=

c25iε

i(1−

ε)25−

ie_}= c_^ \varepsilon^(1-\varepsilon)^

ei​=c2

5i​ε

i(1−

ε)25

−i那13棵樹以上都判斷錯誤(也就是整片隨機森林會判錯)的可能性是:

e

randomforest=∑

i=1325c25

iεi(

1−ε)

25−i=

0.000369

e_}=\sum_^ c_^ \varepsilon^(1-\varepsilon)^=0.000369

erandomforest​=

i=13

∑25​

c25i

​εi(

1−ε)

25−i

=0.0

0036

9對比一下0.000369和0.2兩個**誤差,隨機森林的**誤差遠遠小於單棵決策樹。

import numpy as np

import matplotlib.pyplot as plt

from scipy.special import comb ##組合數

x=np.linspace(0,

1,20)

y=for epsilon in x:

e=np.array(

[comb(

25,i)

*(epsilon)

**i*(1

-epsilon)**(

25-i)

for i in

range(13

,26)]

).sum(

)##comb(25,i)組合數

隨機森林與決策樹的選擇

上圖展示了一片森林中,基評估器相同與不同時,單個基評估器的**誤差對隨機森林整體**誤差的影響程度。其實,當一片森林中所有基評估器都一樣時,效果跟單顆決策樹是一樣的。由上圖中紅藍兩條線(紅色虛線:森林中所有基評估器都一樣,藍色曲線:森林中基評估器不同)可以看出,當森林中每棵樹的**誤差小於0.5時,隨機森林的**誤差小於決策樹的誤差,這時隨機森林的**精度要高於決策樹。但如果森林中的基評估器的**誤差本身比較大時(誤差超過0.5),隨機森林會把這種誤差擴大,此時要避免用隨機森林(其實這時候用決策樹也不應該,誤差率都高於乙個隨機分類器了orz)。

介面作用

輸入測試集,返回測試樣本所在的葉子節點索引

predict

score

fitpredict_proba

返回樣本被分到每一類的概率,有幾類就返回幾個概率。如果是二分類問題,則predict_proba返回的數值大於0.5的,被分為1,小於0.5的,被分為0。

注:傳統的隨機森林是bagging思想,可以平均所有樣本的取值作為最終的結果,或者少數服從多數來決定整合的結果。sklearn中的隨機森林先平均每個樣本對應的predict_proba返回的概率,得到乙個平均概率,再用傳統bagging方法決定測試樣本的分類

Shell學習筆記 未完待續

一 cat的用法總結 cat是乙個簡單而通用的命令,用來顯示內容,建立檔案,還可以用來顯示控制字元 但是在使用cat是請注意,它不會在檔案分頁符處停下來,它會一下顯示完整個檔案。如果希望每次顯示一頁,可以使用more或者cat命令的輸出通過管道傳遞到另外乙個具有分頁功能的命令中 cat myfile...

MySQL學習筆記(未完待續 )

二 儲存引擎 索引是在儲存引擎層實現的,而不是在伺服器層實現的,所以不同儲存引擎具有不同的索引型別和實現。b 樹是大多數mysql 儲存引擎的預設索引型別。因為不再需要進行全表掃瞄 類似於漢語字典中一頁一頁的去查詢乙個漢字 只需要對樹進行搜尋即可 類似於利用漢語字典中的目錄頁去快速定位乙個漢字,索引...

FasttDFS學習筆記(未完待續。。。)

fastdfs client 客戶 ke lai en te storage 儲存 si dong rui zi tracker 追蹤者 chuan ke 英語不好見笑。奸笑 什麼是fastdfs 2.fastdfs架構 trecker server 作用是負載均衡和排程,通過trecker ser...