目錄
一、.隨機森林的思想
二、隨機森林構建步驟
1.自助采樣
2.特征隨機選擇
3構建決策樹
4.集成預測
三. 隨機森林的關鍵優勢
?**(1) 減少過擬合**
?**(2) 高效并行化**
?**(3) 特征重要性評估**
?**(4) 耐抗噪聲**
四. 隨機森林的優缺點
?優點
?缺點
五. 參數調優(以scikit-learn為例)?
波士頓房價預測
一、.隨機森林的思想
1.通過組成多個弱學習器(決策樹)形成一個學習器
2.多樣性增強:每顆決策樹通過特征隨機選擇和樣本隨機抽樣生成,降低模型之間的相關性,減少過擬合風險
二、隨機森林構建步驟
1.自助采樣
從原始數據集中有放回的隨機抽樣(每個子集大小等于原始數據集)。
大約30%的數據未被抽中,形成“袋外樣本”(Out-of-Bag, OOB),用于模型評估。
2.特征隨機選擇
每棵決策樹在構建時,僅從所有特征中隨機選擇一個子集(例如,對于分類任務,通常選擇 m=sqrt(n_feature) 個特征)
增加特征間的獨立性,避免模型偏向特定特征
3構建決策樹
對每個子集和特征組合,遞歸地生成決策樹(使用與單棵決策樹相同的算法,如CART)。
不進行剪枝(Pre-pruning),允許樹完全生長。
4.集成預測
分類任務:所有樹的預測結果按多數票決定最終類別
回歸任務:所有樹的預測結果取平均值
三. 隨機森林的關鍵優勢
?**(1) 減少過擬合**
- 單棵決策樹易過擬合,但多棵樹的“平均效應”降低了方差。
- 無需復雜的剪枝操作。
?**(2) 高效并行化**
- 樹之間相互獨立,可通過并行計算加速訓練。
?**(3) 特征重要性評估**
- 通過統計每棵樹中特征被選中的頻率,量化其對最終預測的貢獻度。
?**(4) 耐抗噪聲**
- 對缺失值和異常值不敏感(需適當處理缺失值)。
四. 隨機森林的優缺點
?優點
- ?高準確率:在大多數任務中表現優于單個決策樹。
- ?可解釋性:可通過特征重要性分析和可視化部分樹結構。
- ?適應性強:支持分類、回歸、特征選擇等多種任務。
?缺點
- ?計算資源消耗大:生成大量樹需要更多內存和計算時間。
- ?對高維稀疏數據效果不佳:特征隨機選擇可能無法覆蓋關鍵特征。
- ?黑箱化風險:相比單棵決策樹,集成模型的解釋性略低。
五. 參數調優(以scikit-learn為例)?
參數 | 作用 | 默認值 |
---|---|---|
n_estimators | 樹的數量 | 100 |
max_depth | 樹的最大深度 | None(不限制) |
min_samples_split | 內部節點最少分割樣本數 | 2 |
max_features | 每棵樹使用的特征數量 | auto (分類任務為√n) |
bootstrap | 是否使用自助采樣 | True |
波士頓房價預測
from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import load_boston# 加載數據
boston = load_boston()
X, y = boston.data, boston.target# 創建隨機森林回歸模型
model = RandomForestRegressor(n_estimators=100, random_state=42)# 訓練模型
model.fit(X, y)# 預測均值絕對誤差(MAE)
y_pred = model.predict(X)
print(f"Mean Absolute Error: {np.mean(np.abs(y - y_pred)):.2f}")