R語言隨機森林初探

先介紹一下吧
在監督學習或者分類中,隨機森林(RF)是一個非常好的分類學習算法。隨機森林算法的實質是基於決策樹的分類器集成算法,每一棵決策樹給出一對實體的匹配決策,並根據所有的樹的投票來得到最終決策。
基本思想:首先,通過自助法(bootstrap)重採樣技術,從原始訓練樣本集N中有放回的重複隨機抽取k個樣本生成新的訓練集樣本集合,每個樣本集合容量爲k;其次,根據自助樣本集生成k個決策樹組成的隨機森林,得到k種分類結果;最後,根據k種分類結果對每個記錄進行投票表決來決定最終分類。
其實質是對決策樹算法的一種改進,將多棵決策樹組合在一起,每棵決策樹的建立依賴於一個獨立抽取的樣本,形成森林中的每棵樹都具有相同的分佈,分類誤差取決於每一棵決策樹的分類能力和它們之間的相關性。步驟如下:
隨機森林步驟
(1)首先我們用N表示原始訓練集樣本的個數,用M表示特徵數目。
(2)從原始訓練數據集中,應用bootstrap方法有放回地隨機抽取k個新的自助樣本集,並由此構建k棵分類迴歸樹,每次未被抽到的樣本組成了k個袋外數據(out-of-bag,OOB)。
(3)每個自助樣本集生長爲單棵決策樹。在樹的每個節點處從M個特徵中隨機挑選m個特徵(m≤M),按照節點不純度最小原則從這m個特徵中選擇一個特徵進行節點分裂。
(4)每棵樹都做最大限度的生長,不做任何剪裁。
(5)將生成的多棵決策樹組成隨機森林,根據每棵樹的投票結果取得隨機森林的分類結果。
在隨機森林的構建過程中,自助樣本集用於每一棵樹分類器的形成,每次抽樣生成的袋外數據(OOB)用來預測分類的正確率,對每次預測結果進行彙總得到OOB的錯誤率估計,然後評估組合分類的正確率。此外,隨機森林通過每個節點處隨機選擇特徵進行分支,最小化了各決策樹之間的相關性,提高了分類精確度。
影響隨機森林分類性能的主要因素:
1.森林中單棵樹的分類強度:每一個決策樹的分類強度越大,即每棵樹枝葉越茂盛,則整體隨機森林的分類性能越好。
2.森林中樹之間的相關度:樹與樹之間的相關度越大,即樹與樹之間的枝葉相互穿插越多,則隨機森林的分類性能越差。
隨機森林的兩個重要參數:
1.樹節點預選的變量個數:單棵決策樹決策樹的情況。
2.隨機森林中樹的個數:隨機森林的總體規模。
下載安裝以及加載:
R:3.2.5
下載
加載
這個軟件包中有5個核心函數,分別爲:
1.importance():提取建立模型的方程中變量的重要性度量結果
格式:importance(x,type=null,class=null,scale=TRUE,…)
通過自帶數據集mtcars,直接上個實例:
例1
2.MDSplot():繪製建立模型過程中產生的臨近矩陣經過標準化後的座標圖,就是可以將高位圖縮放到任意小的維度下來觀看模型各個類別在不同維度下的分佈情況
3.rfImpute():對數據中的缺失值進行插值
4.treesize():查看每一棵樹所具有的節點個數
5.randomForest():隨機森林中最核心的參數,用來建立隨機森林模型,既可以建立判別模型,還可以建立迴歸模型和無監督模型。

接下來我利用kdd社區的案例:泰坦尼克生還分析,作了實踐,將會抽時間整理出來發佈,任何工具只要常用就不難,主要希望能夠多增長思想方面的廣度和深度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章