隨機森林和每棵決策樹的決策邊界對比


介紹:創建一個模擬數據集,構建一個包含 5 棵決策樹的隨機森林分類模型,可視化每棵樹和集成分類器的決策邊界,比較研究。

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_moons
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import mglearn

# 生成一個用於模擬的二維數據集
X, y = make_moons(n_samples=100, noise=0.25, random_state=3)
# 訓練集和測試集的划分
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y,
                                                   random_state=42)
# 初始化一個包含 5 棵決策樹的隨機森林分類器
forest = RandomForestClassifier(n_estimators=5, random_state=2)
# 在訓練數據集上進行學習
forest.fit(X_train, y_train)

# 可視化每棵決策樹的決策邊界
fig, axes = plt.subplots(2, 3, figsize=(20, 10))
for i, (ax, tree) in enumerate(zip(axes.ravel(), forest.estimators_)):
    ax.set_title('Tree {}'.format(i))
    mglearn.plots.plot_tree_partition(X_train, y_train, tree, ax=ax)

# 可視化集成分類器的決策邊界
mglearn.plots.plot_2d_separator(forest, X_train, fill=True, ax=axes[-1, -1],
                               alpha=0.4)
axes[-1, -1].set_title('Random Forest')
mglearn.discrete_scatter(X_train[:, 0], X_train[:, 1], y_train)

plt.show()

從圖中看,每一棵單獨的決策樹都有不同程度的過擬合和錯誤,而隨機森林模型的過擬合程度較小,給出的決策邊界也較為平滑。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM