隨機森林演算法(有監督學習)

2021-08-02 23:26:15 字數 2356 閱讀 7334

一、隨機森林演算法的基本思想

隨機森林的出現主要是為了解單一決策樹可能出現的很大誤差和overfitting的問題。這個演算法的核心思想就是將多個不同的決策樹進行組合,利用這種組合降低單一決策樹有可能帶來的片面性和判斷不準確性。用我們常說的話來形容這個思想就是「三個臭皮匠賽過諸葛亮」。

具體來講,隨機森林是用隨機的方式建立乙個森林,這個隨機性表述的含義我們接下來會講。隨機森林是由很多的決策樹組成,但每一棵決策樹之間是沒有關聯的。在得到森林之後,當對乙個新的樣本進行判斷或**的時候,讓森林中的每一棵決策樹分別進行判斷,看看這個樣本應該屬於哪一類(對於分類演算法),然後看看哪一類被選擇最多,就**這個樣本為那一類。

二、隨機森林演算法的構建過程

隨機森林的構建需要有決策樹的基礎,不懂的童鞋需要先了解決策樹演算法的構建過程。對於隨機森林來講,核心的問題是如何利用乙個資料集構建多個決策樹,這個需要利用的就是隨機的思想。在構建隨機森林時需要利用兩個方面的隨機性選取:資料的隨機性選取和待選特徵的隨機選取。

2.1、資料的隨機選取

首先,從原始的資料集中採取有放回的抽樣,構造子資料集,子資料集的資料量是和原始資料集相同的。不同子資料集的元素可以重複,同乙個子資料集中的元素也可以重複。第二,利用子資料集來構建子決策樹,將這個資料放到每個子決策樹中,每個子決策樹輸出乙個結果。最後,如果有了新的資料需要通過隨機森林得到分類結果,就可以通過對子決策樹的判斷結果的投票,得到隨機森林的輸出結果了。利用下面的例子來說明隨機森林的資料集的選取和判斷.

上圖有乙個原始資料集,利用原始資料集我們根據資料隨機選取的方法生成三個新的資料集,然後利用這三個子資料集進行決策樹判斷。假設隨機森林中就有這麼3棵子決策樹,2棵子樹的分類結果是a類,1棵子樹的分類結果是b類,那麼根據投票原則隨機森林的分類結果就是a類。

2.2、待選特徵的隨機選取

與資料集的隨機選取類似,隨機森林中的子樹的每乙個**過程並未用到所有的待選特徵,而是從所有的待選特徵中隨機選取一定的特徵,之後再在隨機選取的特徵中選取最優的特徵。這樣能夠使得隨機森林中的決策樹都能夠彼此不同,提公升系統的多樣性,從而提公升分類效能。以下圖為例來說明隨機選取待選特徵的方法。

在上圖中,藍色的方塊代表所有可以被選擇的特徵,也就是目前的待選特徵。黃色的方塊是**特徵。左邊是一棵決策樹的特徵選取過程,通過在待選特徵中選取最優的**特徵(利用決策樹的id3演算法,c4.5演算法,cart演算法等等),完成**。右邊是乙個隨機森林中的子樹的特徵選取過程。

三、隨機森林演算法的優缺點

3.1、隨機森林的優點

a. 在資料集上表現良好,兩個隨機性的引入,使得隨機森林不容易陷入過擬合;

b. 在當前的很多資料集上,相對其他演算法有著很大的優勢,兩個隨機性的引入,使得隨機森林具有很好的抗雜訊能力;

c. 它能夠處理很高維度(feature很多)的資料,並且不用做特徵選擇,對資料集的適應能力強:既能處理離散型資料,也能處理連續型資料,資料集無需規範化;

d. 可生成乙個proximities=(pij)矩陣,用於度量樣本之間的相似性: pij=aij/n, aij表示樣本i和j出現在隨機森林中同乙個葉子結點的次數,n隨機森林中樹的顆數;

e. 在建立隨機森林的時候,對generlization error使用的是無偏估計;

f. 訓練速度快,可以得到變數重要性排序(兩種:基於oob誤分率的增加量和基於**時的gini下降量;

g. 在訓練過程中,能夠檢測到feature間的互相影響;

h. 容易做成並行化方法;

i. 實現比較簡單。

3.2、隨機森林的缺點

a. 在某些噪音比較大的樣本集上,rf模型容易陷入過擬合。

b. 取值劃分比較多的特徵容易對rf的決策產生更大的影響,從而影響擬合的模型的效果。

四、隨機森林演算法的應用範圍

隨機森林主要應用於回歸和分類。本文主要**基於隨機森林的分類問題。隨機森林和使用決策樹作為基本分類器的(bagging)有些類似。以決策樹為基本模型的bagging在每次bootstrap放回抽樣之後,產生一棵決策樹,抽多少樣本就生成多少棵樹,在生成這些樹的時候沒有進行更多的干預。而隨機森林也是進行bootstrap抽樣,但它與bagging的區別是:在生成每棵樹的時候,每個節點變數都僅僅在隨機選出的少數變數中產生。因此,不但樣本是隨機的,連每個節點變數(features)的產生都是隨機的。

許多研究表明,組合分類器比單一分類器的分類效果好,隨機森林(random forest)是一種利用多個分類樹對資料進行判別與分類的方法,它在對資料進行分類的同時,還可以給出各個變數(基因)的重要性評分,評估各個變數在分類中所起的作用。

有監督學習

利用一組帶有標籤的資料,學習從輸入到輸出的對映,然後將這種對映關係應用到未知資料上,達到分類或回歸的目的。分類 當輸出為離散的,學習任務為分類任務。回歸 當輸出為連續的,學習任務為回歸任務。訓練集 用來訓練的已標註的資料,用來建立模型,發現規律。測試集 已標註的資料,通常隱藏標記,輸送給以訓練的模型...

有監督學習 無監督學習與半監督學習

這個問題可以回答得很簡單 是否有監督 supervised 就看輸入資料是否有標籤 label 輸入資料有標籤,則為有監督學習,沒標籤則為無監督學習。但根據知乎慣例,答案還是要繼續擴充套件的。首先看什麼是學習 learning 乙個成語就可概括 舉一反三。此處以高考為例,高考的題目在上考場前我們未必...

有監督學習和無監督學習 無監督學習

一.無監督學習包含的演算法 聚類 kmeans聚類演算法 降維 pca 之所以叫無監督學習 是因為模型是從無標籤的資料開始學習,沒有目標值。二.kmeans聚類 1.聚類演算法步驟 定義 將高維資料轉化為低維資料的過程,在此過程中可能會捨棄原有資料,創造新的變數 作用 降低原始資料的維數 複雜度 損...