柚子快報激活碼778899分享:人工智能 隨機森林算法
柚子快報激活碼778899分享:人工智能 隨機森林算法
1、隨機森林算法簡介
隨機森林算法(Random Forests)是LeoBreiman于2001年提出的,它是一種通過重采樣辦法從原始訓練樣本集中有放回地重復隨機抽取若干個樣本生成多個決策樹,樣本的最終預測值由這些決策樹的結(jié)果投票決定的一種有監(jiān)督集成學習模型。
其核心思想是通過隨機的樣本抽樣和特征抽樣生成眾多決策樹,形成一片“森林”,以多數(shù)的表決結(jié)果作為預測值。
隨機森林作為一種bagging集成學習,在決策樹算法中有著重要的地位。
2、隨機森林算法基本原理
2.1 樣本的選擇
隨機森林的樣本采樣選擇可以看作是行采樣。隨機森林每棵在構(gòu)建過程中,這棵樹的樣本從總樣本中隨機抽樣生成。完成抽樣后將樣本放回,以便下一棵樹的抽樣。假設總樣本有N個,隨機森林每棵樹的隨機抽樣樣本數(shù)為n,一般可取n為N的平方根。
2.2 特征的選擇
隨機森林的特征采樣可以看作是列采樣。每棵樹都是從總體M個特征中隨機選擇m特征進行樹的生成。列采樣有兩種形式,一種是全局列采樣,即同一棵樹的生成過程中均采用同一批特征;另一種是局部列采樣,即每一次節(jié)點分裂的時候都單獨隨機挑選m個特征進行分裂。
2.3 分裂準則
在樹的生成過程中,采用的分裂準則。在隨機森林算法中,可以有多種分裂準則。在隨機森林的分類算法中,比較常見的有信息增益、基尼不純度;在隨機森林的回歸算法中,比較常見的有均方誤差。
3、隨機森林算法步驟
3.1 輸入輸出
(1)輸入:給定訓練樣本;參數(shù)設置:森林里樹的數(shù)量、分裂的準則、分裂終止條件等。
(2)輸出:樣本的分類或回歸值。
3.2 算法步驟
(1)從訓練樣本N個中隨機有放回地選擇n個;
(2)從特征中隨機不放回地選擇k個特征;
(3)根據(jù)指定的分裂準則進行分裂,生成一棵決策樹;葉子節(jié)點的輸出值:當為分類問題時,葉子的取值為分類最多的值;當為回歸問題時,葉子節(jié)點的取值為該節(jié)點所有樣本的平均值;
(4)當森林中樹的數(shù)量小于指定值時,繼續(xù)步驟(1)到(3),最終成生指定數(shù)量的決策樹;
(5)預測時,樣本在每棵決策樹下會有一個對應葉子的值。當為分類問題時,最終取值為所有樹下該葉子值的數(shù)量最多的值(分類);當為回歸問題時,最終取值為所有樹下葉子值的平均值。
4、隨機森林算法實例
這里以用scikit-learn自帶的數(shù)據(jù)集進行演示。
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
#加載數(shù)據(jù)集
X, y = make_classification(n_samples=1000, n_features=4,n_informative=2, n_redundant=0,
random_state=0, shuffle=False)
# 劃分數(shù)據(jù)集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
#模型訓練
clf = RandomForestClassifier(max_depth=2, random_state=0)
clf.fit(X_train,y_train)
# 預測測試集
y_pred = clf.predict(X_test)
# 評估模型
accuracy = accuracy_score(y_test, y_pred)
print("Model accuracy: %.2f"%accuracy)
Model accuracy: 0.94
5、隨機森林算法總結(jié)
(1)隨機森林算法具有很高的準確性和魯棒性。隨機森林算法由眾多決策樹共同投票決策,其結(jié)果具有較好的準確性和魯棒性。
(2)隨機森林算法可以很好地防止過擬合。隨機森林每棵樹的訓練都是在小部分樣本及特征上訓練而成,可以很好地防止過擬合。
(3)隨機森林算法可以并行構(gòu)建決策樹,提高運算效率。
(4)隨機森林算法可以很好地處理高維度數(shù)據(jù)。
(5)隨機森林算法在小樣本上的表現(xiàn)可能會不佳。
柚子快報激活碼778899分享:人工智能 隨機森林算法
參考鏈接
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。