隨機森林算法詳解——基于垃圾郵件分類案例
一、從決策樹到隨機森林在前面的決策樹學習中我們了解到?jīng)Q策樹是一種比較直觀的分類算法。它通過不斷尋找合適的特征對數(shù)據(jù)進行劃分最終得到分類結果。例如垃圾郵件識別問題一封郵件可能包含單詞出現(xiàn)次數(shù)特殊字符比例大寫字母數(shù)量鏈接數(shù)量決策樹會根據(jù)這些特征建立判斷規(guī)則。但是在實際使用過程中單棵決策樹也存在一些問題。例如如果樹的深度過大模型可能會把訓練數(shù)據(jù)中的一些特殊情況也學習進去。訓練集效果很好準確率98%但是換一批新數(shù)據(jù)準確率75%這種情況就是過擬合。為了提高模型穩(wěn)定性機器學習中提出了一種思想不使用一棵樹進行判斷而是訓練多棵樹讓它們共同決定結果。這就是隨機森林。二、隨機森林基本思想隨機森林Random Forest是一種集成學習方法。簡單來說它由很多棵決策樹組成。每棵樹都會獨立進行訓練最后通過投票方式確定分類結果。例如預測一封郵件是否為垃圾郵件決策樹預測結果樹1垃圾郵件樹2垃圾郵件樹3正常郵件樹4垃圾郵件樹5正常郵件其中3棵樹認為是垃圾郵件。最終結果垃圾郵件相比單棵樹多個模型共同判斷可以減少偶然因素帶來的影響。三、隨機森林為什么叫“隨機”隨機森林中的隨機主要體現(xiàn)在兩個方面1. 數(shù)據(jù)隨機訓練每棵樹時并不是直接使用全部數(shù)據(jù)。而是通過Bootstrap方法隨機抽取數(shù)據(jù)。例如原始數(shù)據(jù)4600封郵件生成數(shù)據(jù)集1 → 訓練樹1 數(shù)據(jù)集2 → 訓練樹2 數(shù)據(jù)集3 → 訓練樹3由于每棵樹看到的數(shù)據(jù)不同所以最終形成的樹結構也不同。2. 特征隨機除了數(shù)據(jù)不同之外每棵樹使用的特征也不是完全一樣。例如郵件數(shù)據(jù)共有100個特征。訓練第一棵樹隨機選擇50個特征。訓練第二棵樹重新選擇另外50個特征。這樣可以避免所有樹都關注相同特征提高模型差異性。四、隨機森林訓練過程隨機森林訓練主要分為以下幾個步驟。第一步隨機抽取訓練數(shù)據(jù)通過Bootstrap采樣生成多個訓練集。例如原始數(shù)據(jù) | 數(shù)據(jù)集A 數(shù)據(jù)集B 數(shù)據(jù)集C第二步訓練決策樹每個數(shù)據(jù)集訓練一棵決策樹。例如數(shù)據(jù)集A → 決策樹1 數(shù)據(jù)集B → 決策樹2 數(shù)據(jù)集C → 決策樹3第三步隨機選擇特征每棵樹訓練過程中只使用部分特征。這樣可以增加不同樹之間的差異。第四步綜合預測結果分類任務采用多數(shù)投票?;貧w任務采用平均值。五、垃圾郵件分類案例介紹本實驗使用spambase.csv數(shù)據(jù)集完成垃圾郵件分類。目標根據(jù)郵件特征判斷0正常郵件 1垃圾郵件郵件特征包括單詞出現(xiàn)頻率字符出現(xiàn)頻率大寫字母長度特殊符號比例例如垃圾郵件通常包含大量促銷詞大量鏈接特殊字符這些特征可以幫助模型進行判斷。六、數(shù)據(jù)讀取與劃分讀取數(shù)據(jù)df pd.read_csv(spambase.csv)劃分特征x df.iloc[:, :-1] y df.iloc[:, -1]其中x表示郵件特征。例如單詞頻率 字符比例 數(shù)字數(shù)量y表示類別標簽是否垃圾郵件劃分訓練集和測試集x_train, x_test, y_train, y_test train_test_split( x, y, test_size0.2, random_state100 )數(shù)據(jù)比例訓練集80% 測試集20%訓練集用于學習規(guī)律。測試集用于驗證模型效果。七、隨機森林模型建立代碼from sklearn.ensemble import RandomForestClassifier rf RandomForestClassifier( n_estimators150, max_features0.5, random_state0 )創(chuàng)建隨機森林分類模型。八、隨機森林參數(shù)分析1.n_estimators表示森林中決策樹數(shù)量。代碼n_estimators150表示建立150棵決策樹。樹數(shù)量增加優(yōu)點模型更加穩(wěn)定預測結果波動降低缺點訓練時間增加內存占用提高實際應用中需要根據(jù)數(shù)據(jù)規(guī)模調整。2.max_features表示每棵樹隨機選擇的特征比例。代碼max_features0.5表示每棵樹使用50%的特征。例如100個特征每棵樹隨機選擇50個。這樣可以提高樹之間的差異。3.max_depth控制樹的最大深度。如果不限制樹可能不斷分裂。導致模型復雜度過高容易過擬合。因此需要合理設置深度。九、交叉驗證評價模型單次訓練測試可能存在偶然性。例如一次劃分準確率90%換一次劃分準確率85%因此采用交叉驗證提高評價可靠性。代碼StratifiedKFold( n_splits5 )五折交叉驗證過程第一次 第1份測試其余訓練 第二次 第2份測試其余訓練 ... 第五次 第5份測試其余訓練最后計算平均準確率。十、隨機森林參數(shù)優(yōu)化隨機森林默認參數(shù)通常效果不錯但是不同數(shù)據(jù)集適合的參數(shù)不同。因此使用GridSearchCV()自動搜索最佳參數(shù)。搜索參數(shù)n_estimators max_features max_depth例如嘗試50棵樹 100棵樹 150棵樹 200棵樹然后比較模型效果。最終選擇表現(xiàn)最好的組合。十一、模型評價訓練完成后使用classification_report()評價模型。主要指標Accuracy表示整體預測正確比例。Precision表示預測為垃圾郵件的郵件中真正垃圾郵件的比例。Recall表示所有垃圾郵件中模型成功檢測出來的比例。F1-score綜合考慮Precision和Recall。十二、混淆矩陣分析代碼cm_plot()混淆矩陣預測正常預測垃圾真實正常TNFP真實垃圾FNTP其中TP正確識別垃圾郵件。TN正確識別正常郵件。FP正常郵件被誤判為垃圾郵件。FN垃圾郵件沒有檢測出來。在垃圾郵件檢測中FN通常需要重點關注因為漏掉垃圾郵件會影響用戶體驗。十三、隨機森林特征重要性分析隨機森林可以查看不同特征對于預測結果的影響程度。代碼rf.feature_importances_例如可能發(fā)現(xiàn)特征重要程度關鍵詞頻率0.30特殊字符數(shù)量0.25鏈接數(shù)量0.18通過特征重要性分析可以了解哪些因素更容易影響郵件分類結果。十四、隨機森林優(yōu)缺點分析優(yōu)點1.穩(wěn)定性更高多棵樹共同決策可以降低單個模型帶來的誤差。2.降低過擬合隨機數(shù)據(jù)和隨機特征減少模型對訓練數(shù)據(jù)的依賴。3.適合處理大量特征面對高維數(shù)據(jù)時表現(xiàn)較好。缺點1.解釋性較弱單棵決策樹可以直接查看規(guī)則。但是隨機森林包含大量樹結構不容易完全解釋。2.訓練成本較高樹數(shù)量增加后訓練時間和資源消耗都會增加。

相關新聞

【限時公開】某千億級AI平臺內部《模型準入白皮書V3.2》核心章節(jié):含17項硬性否決條款與5類高危場景熔斷機制

【限時公開】某千億級AI平臺內部《模型準入白皮書V3.2》核心章節(jié):含17項硬性否決條款與5類高危場景熔斷機制

更多請點擊: https://codechina.net 第一章:AI模型選型指南 選擇合適的AI模型是構建可靠智能系統(tǒng)的第一步。模型選型不僅影響推理性能與資源消耗,更直接關系到業(yè)務目標的達成效果。需綜合考量任務類型、數(shù)據(jù)規(guī)模、延遲要求、部署環(huán)境及維護成…

2026/8/4 4:02:47 閱讀更多
海量異構增量同步困境破局:KFS 全鏈路并行同步實戰(zhàn)

海量異構增量同步困境破局:KFS 全鏈路并行同步實戰(zhàn)

海量異構增量同步困境破局:KFS全鏈路并行同步實戰(zhàn)前言 隨著業(yè)務數(shù)據(jù)爆發(fā)式增長,大量企業(yè)正在進行數(shù)據(jù)庫國產(chǎn)化遷移、多源數(shù)據(jù)匯聚、異地災備建設。傳統(tǒng)CDC同步工具普遍采用單線程串行解析、串行入庫架構,一旦業(yè)務增量上漲,很容易出…

2026/8/4 5:22:49 閱讀更多
構網(wǎng)型VSG-PMSM風力發(fā)電系統(tǒng)仿真與動態(tài)特性研究

構網(wǎng)型VSG-PMSM風力發(fā)電系統(tǒng)仿真與動態(tài)特性研究

1. 項目概述:構網(wǎng)型VSG-PMSM風力發(fā)電系統(tǒng)仿真研究最近在電力電子圈子里,構網(wǎng)型逆變器技術越來越火,特別是在新能源發(fā)電領域。這次我要分享的是一個基于虛擬同步發(fā)電機(VSG)控制的永磁同步電機(PMSM)直驅風力發(fā)電系統(tǒng)仿真項目,重點…

2026/8/4 5:22:49 閱讀更多
Python Pandas實現(xiàn)Excel財務分賬自動化處理

Python Pandas實現(xiàn)Excel財務分賬自動化處理

1. 為什么需要自動化分賬處理?財務分賬是許多行業(yè)中的高頻剛需場景。以電商平臺為例,每月需要根據(jù)銷售數(shù)據(jù)計算數(shù)百位分銷商的傭金;教育培訓機構要按課時統(tǒng)計講師的課酬;線下零售連鎖店需匯總各門店銷售額并計算店長提成。這些場景…

2026/8/4 5:22:49 閱讀更多
FTP協(xié)議詳解:從基礎原理到企業(yè)級應用實踐

FTP協(xié)議詳解:從基礎原理到企業(yè)級應用實踐

1. FTP協(xié)議基礎解析FTP(File Transfer Protocol)作為最古老的文件傳輸協(xié)議之一,自1971年誕生以來一直是網(wǎng)絡文件交換的基石。我在實際運維工作中發(fā)現(xiàn),盡管HTTP和云存儲日益普及,但FTP在內部文件共享、自動化傳輸?shù)葓鼍啊?/p>

2026/8/4 5:12:49 閱讀更多
清華大學重磅EST:植物自導電閃蒸焦耳熱600°C/2600°C兩步法!稀土超積累植物秒級轉化為CeO?-石墨烯電催化劑!

清華大學重磅EST:植物自導電閃蒸焦耳熱600°C/2600°C兩步法!稀土超積累植物秒級轉化為CeO?-石墨烯電催化劑!

通訊作者:鄧兵、劉建國通訊單位:清華大學DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清潔能源技術與電子器件不可或缺的核心原料,然而傳統(tǒng)提取方式依賴能耗高、排放大的采礦與強…

2026/8/4 0:01:30 閱讀更多
3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南 【免費下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說說 項目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過,那些年發(fā)過的QQ空間說說,那些記錄青春的文字…

2026/8/3 12:53:38 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應用材料(Applied Materials)公司生產(chǎn)的一款用于半導體設備的I/O信號分配電路板。該型號(0100-02186)的核心特點如下:專用于Endura等半導體工藝腔室。集成信號路由與分配功能。連接控制…

2026/8/3 19:34:52 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機,適用于自動化設備及通用機械驅動。該型號(FFMN-32L-10-T0 40AX)的核心特點如下:三相交流異步電動機。額定…

2026/8/3 19:34:54 閱讀更多