隨機(jī)森林算法是一種集成技術(shù),能夠使用多個(gè)決策樹(shù)和一種稱為Bootstrap和聚合的技術(shù)來(lái)執(zhí)行回歸和分類任務(wù)。這背后的基本思想是結(jié)合多個(gè)決策樹(shù)來(lái)確定最終輸出,而不是依賴于單個(gè)決策樹(shù)。
機(jī)器學(xué)習(xí)中的隨機(jī)森林
隨機(jī)森林產(chǎn)生大量分類樹(shù)。將輸入向量放在森林中的每棵樹(shù)下,以根據(jù)輸入向量對(duì)新對(duì)象進(jìn)行分類。每棵樹(shù)都分配了一個(gè)分類,我們可以將其稱為“投票”,最終選擇最高票數(shù)的分類。
以下階段將幫助我們了解隨機(jī)森林算法的工作原理。
第1步:首先從數(shù)據(jù)集中選擇隨機(jī)樣本。
第2步:對(duì)于每個(gè)樣本,該算法將創(chuàng)建一個(gè)決策樹(shù)。然后將獲得每個(gè)決策樹(shù)的預(yù)測(cè)結(jié)果。
第3步:將對(duì)這一步中的每個(gè)預(yù)期結(jié)果進(jìn)行投票。
第4步:最后選擇得票最多的預(yù)測(cè)結(jié)果作為最終的預(yù)測(cè)結(jié)果。
隨機(jī)森林方法具有以下優(yōu)點(diǎn)
通過(guò)平均或整合不同決策樹(shù)的輸出,它解決了過(guò)度擬合的問(wèn)題。
對(duì)于范圍廣泛的數(shù)據(jù)項(xiàng),隨機(jī)森林比單個(gè)決策樹(shù)表現(xiàn)更好。
即使缺少大量數(shù)據(jù),隨機(jī)森林算法也能保持高精度。
隨機(jī)森林的特點(diǎn)
以下是隨機(jī)森林算法的主要特征:
-
是目前可用的最準(zhǔn)確的算法。
適用于龐大的數(shù)據(jù)庫(kù)。
可以處理數(shù)以萬(wàn)計(jì)的輸入變量,且不用刪除其中任何一個(gè)變量。
隨著森林的增長(zhǎng),它會(huì)生成泛化誤差的內(nèi)部無(wú)偏估計(jì)。
即使在大量數(shù)據(jù)丟失的情況下也能保持其準(zhǔn)確性。
它包括用于平衡類人群中不均勻數(shù)據(jù)集的不準(zhǔn)確性的方法。
創(chuàng)建的森林可以在將來(lái)保存并用于其他數(shù)據(jù)。
創(chuàng)建原型以顯示變量和分類之間的關(guān)系。
它計(jì)算示例對(duì)之間的距離,這對(duì)于聚類、檢測(cè)異常值或提供引人入勝的數(shù)據(jù)視圖(按比例)很有用。
未標(biāo)記的數(shù)據(jù)可用于使用上述功能創(chuàng)建無(wú)監(jiān)督聚類、數(shù)據(jù)可視化和異常值識(shí)別。
隨機(jī)森林有多個(gè)決策樹(shù)作為基礎(chǔ)學(xué)習(xí)模型。我們從數(shù)據(jù)集中隨機(jī)執(zhí)行行采樣和特征采樣,形成每個(gè)模型的樣本數(shù)據(jù)集。這部分稱為引導(dǎo)程序。
如何使用隨機(jī)森林回歸技術(shù)
-
設(shè)計(jì)一個(gè)特定的問(wèn)題或數(shù)據(jù)并獲取源以確定所需的數(shù)據(jù)。
確保數(shù)據(jù)是可訪問(wèn)的格式,否則將其轉(zhuǎn)換為所需的格式。
指定獲得所需數(shù)據(jù)可能需要的所有明顯異常和缺失數(shù)據(jù)點(diǎn)。
創(chuàng)建機(jī)器學(xué)習(xí)模型。
設(shè)置想要實(shí)現(xiàn)的基線模型
訓(xùn)練數(shù)據(jù)機(jī)器學(xué)習(xí)模型。
使用測(cè)試數(shù)據(jù)提供對(duì)模型的洞察
現(xiàn)在比較測(cè)試數(shù)據(jù)和模型預(yù)測(cè)數(shù)據(jù)的性能指標(biāo)。
如果它不能滿足,可以嘗試相應(yīng)地改進(jìn)模型或者使用其他數(shù)據(jù)建模技術(shù)。
在這個(gè)階段,解釋獲得的數(shù)據(jù)并相應(yīng)地報(bào)告。
Python實(shí)現(xiàn)隨機(jī)森林算法流程
第1步:導(dǎo)入所需的庫(kù)。
import numpy as np import matplotlib.pyplot as plt import pandas as pd
登錄后復(fù)制
第2步:導(dǎo)入并打印數(shù)據(jù)集
ata=pd.read_csv('Salaries.csv') print(data)
登錄后復(fù)制
第3步:從數(shù)據(jù)集中選擇所有行和第1列到x,選擇所有行和第2列作為y
x=df.iloc[:,:-1]#”:”表示將選擇所有行,“:-1”表示將忽略最后一列
y=df.iloc[:,-1:]#”:”表示它將選擇所有行,“-1:”表示它將忽略除最后一列之外的所有列
#“iloc()”函數(shù)使我們能夠選擇數(shù)據(jù)集的特定單元格,也就是說(shuō),它幫助我們從數(shù)據(jù)框或數(shù)據(jù)集的一組值中選擇屬于特定行或列的值。
第4步:將隨機(jī)森林回歸器擬合到數(shù)據(jù)集
from sklearn.ensemble import RandomForestRegressor regressor=RandomForestRegressor(n_estimators=100,random_state=0) regressor.fit(x,y)
登錄后復(fù)制
第5步:預(yù)測(cè)新結(jié)果
Y_pred=regressor.predict(np.array([6.5]).reshape(1,1))
登錄后復(fù)制
第6步:可視化結(jié)果
X_grid=np.arrange(min(x),max(x),0.01) X_grid=X_grid.reshape((len(X_grid),1)) plt.scatter(x,y,color='blue') plt.plot(X_grid,regressor.predict(X_grid), color='green') plt.title('Random Forest Regression') plt.xlabel('Position level') plt.ylabel('Salary') plt.show()
登錄后復(fù)制