目錄
摘要:
1.隨機(jī)森林:
2.隨機(jī)森林的特征選?。?/p>
3.基于Matlab自帶的隨機(jī)森林函數(shù)進(jìn)行特征選取具體步驟
(1)加載數(shù)據(jù)
(2)首先建立隨機(jī)森林并使用全部特征進(jìn)行車輛經(jīng)濟(jì)性預(yù)測
(3)使用隨機(jī)森林進(jìn)行特征選擇
(4)評(píng)價(jià)各個(gè)特征之間的相關(guān)性
(5)使用篩選后的特征進(jìn)行測試
4.本文Matlab代碼
摘要:
演示如何通過Matlab自帶的隨機(jī)森林函數(shù)進(jìn)行特征選擇,篩選出大量特征數(shù)據(jù)中對于回歸預(yù)測最重要的特征,并對各特征進(jìn)行重要性排序,充分反應(yīng)不同特征的重要性。演示如何在種植隨機(jī)樹林時(shí)為數(shù)據(jù)集選擇適當(dāng)?shù)牟鸱诸A(yù)測變量選擇技術(shù)。隨機(jī)森林特征篩選一種特征選擇技術(shù),特征選擇( Feature Selection )也稱特征子集選擇( Feature Subset Selection , FSS ),或?qū)傩赃x擇( Attribute Selection )。是指從已有的M個(gè)特征(Feature)中選擇N個(gè)特征使得系統(tǒng)的特定指標(biāo)最優(yōu)化,是從原始特征中選擇出一些最有效特征以降低數(shù)據(jù)集維度的過程,是提高學(xué)習(xí)算法性能的一個(gè)重要手段,也是模式識(shí)別中關(guān)鍵的數(shù)據(jù)預(yù)處理步驟。對于一個(gè)學(xué)習(xí)算法來說,好的學(xué)習(xí)樣本是訓(xùn)練模型的關(guān)鍵。
已寫好輸入輸出結(jié)構(gòu),方便使用者通過替換自己的數(shù)據(jù)實(shí)現(xiàn)不同的功能,注釋詳細(xì)
適合數(shù)學(xué)建模等直接應(yīng)用
1.隨機(jī)森林:
隨機(jī)森林算法(Random Forest,RF)是一種 新型機(jī)器學(xué)習(xí)算法,是利用多棵決策樹對樣本進(jìn)行訓(xùn)練并集成預(yù)測的一種分類器,它采用Boot‐ strap重抽樣技術(shù)從原始樣本中隨機(jī)抽取數(shù)據(jù)構(gòu) 造多個(gè)樣本,然后對每個(gè)重抽樣樣本采用節(jié)點(diǎn)的 隨機(jī)分裂技術(shù)構(gòu)造多棵決策樹,最后將多棵決策樹組合,并通過投票得出最終預(yù)測結(jié)果。
根據(jù)下列算法而建造每棵樹?:
1.用N來表示訓(xùn)練用例(樣本)的個(gè)數(shù),M表示特征數(shù)目。
2.輸入特征數(shù)目m,用于確定決策樹上一個(gè)節(jié)點(diǎn)的決策結(jié)果;其中m應(yīng)遠(yuǎn)小于M。
3.從N個(gè)訓(xùn)練用例(樣本)中以有放回抽樣的方式,取樣N次,形成一個(gè)訓(xùn)練集(即bootstrap取樣),并用未抽到的用例(樣本)作預(yù)測,評(píng)估其誤差。
4.對于每一個(gè)節(jié)點(diǎn),隨機(jī)選擇m個(gè)特征,決策樹上每個(gè)節(jié)點(diǎn)的決定都是基于這些特征確定的。根據(jù)這m個(gè)特征,計(jì)算其最佳的分裂方式。
5.每棵樹都會(huì)完整成長而不會(huì)剪枝,這有可能在建完一棵正常樹狀分類器后會(huì)被采用)。
2.隨機(jī)森林的特征選取:
隨機(jī)森林算法利用 OOB 誤差計(jì)算特征變量相對重要性,并對特征變量進(jìn)行排序和篩選,這一特點(diǎn)對于大量特征參與分類時(shí)非常適用,因?yàn)楸姸嗵卣髦g的高相關(guān)性會(huì)產(chǎn)生高維問題,會(huì)顯著降低提取的精度?,F(xiàn)階段機(jī)器學(xué)習(xí)模型的特征空間往往龐大且復(fù)雜,呈現(xiàn)出高維性、非線性等復(fù)雜特點(diǎn),面對這樣的海量高維數(shù)據(jù),剔除冗余特征進(jìn)行特征篩選,已成為當(dāng)今信息與科學(xué)技術(shù)面臨的重要問題之一。實(shí)際上,特征選擇正是從輸入特征中優(yōu)選了重要性高、信息量豐富的特征來提高地物信息提取的精度,在遙感應(yīng)用中有著重要的應(yīng)用潛力。
在特征重要性的基礎(chǔ)上,特征選擇的步驟如下:
1.計(jì)算每個(gè)特征的重要性,并按降序排序
2.確定要剔除的比例,依據(jù)特征重要性剔除相應(yīng)比例的特征,得到一個(gè)新的特征集
3.用新的特征集重復(fù)上述過程,直到剩下m個(gè)特征(m為提前設(shè)定的值
4.根據(jù)上述過程中得到的各個(gè)特征集和特征集對應(yīng)的袋外誤差率,選擇袋外誤差率最低的特征集
3.基于Matlab自帶的隨機(jī)森林函數(shù)進(jìn)行特征選取具體步驟
(1)加載數(shù)據(jù)
加載Matlab自帶的數(shù)據(jù)集。建立一個(gè)隨機(jī)森林預(yù)測模型,該模型根據(jù)汽車的氣缸數(shù)、發(fā)動(dòng)機(jī)排量、馬力、重量、加速度、車型年份和原產(chǎn)國來預(yù)測汽車的燃油經(jīng)濟(jì)性。使用Load函數(shù)進(jìn)行數(shù)據(jù)的加載。
各單詞解釋:
【Cylinders,Displacement,Horsepower,Weight,Acceleration,Model_Year,Origin】
【氣缸數(shù)目,排量,馬力,重量,加速度,車輛年份,原產(chǎn)地】
(2)首先建立隨機(jī)森林并使用全部特征進(jìn)行車輛經(jīng)濟(jì)性預(yù)測
使用templateTree和fitrensemble這兩個(gè)函數(shù)建立隨機(jī)森林,并先使用全部的特征進(jìn)行車輛經(jīng)濟(jì)性進(jìn)行預(yù)測。輸入為【氣缸數(shù)目,排量,馬力,重量,加速度,車輛年份,原產(chǎn)地】,輸出為【車輛經(jīng)濟(jì)性】,隨機(jī)森林中的決策樹數(shù)量設(shè)置為100。訓(xùn)練模型并進(jìn)行預(yù)測分析,具體結(jié)果如下,使用全部特征進(jìn)行預(yù)測的準(zhǔn)確度為87.1417.
(3)使用隨機(jī)森林進(jìn)行特征選擇
根據(jù)第二點(diǎn)所述,利用 OOB 誤差計(jì)算特征變量相對重要性,并對特征變量進(jìn)行排序和篩選,編寫相關(guān)程序進(jìn)行隨機(jī)森林特征篩選,具體結(jié)果與各個(gè)特征變量的重要性情況如下所示:
(4)評(píng)價(jià)各個(gè)特征之間的相關(guān)性
當(dāng)隨機(jī)森林評(píng)價(jià)完成特征的重要性后,還需要對各個(gè)特征變量之間的相關(guān)性進(jìn)行評(píng)估,以更加明顯的看出何種特征最能影響預(yù)測結(jié)果,使用皮爾遜系數(shù)作為各個(gè)特征變量之間的相關(guān)性評(píng)價(jià)指標(biāo),從下圖可以看出,越接近黃色表示相關(guān)性越強(qiáng)。
(5)使用篩選后的特征進(jìn)行測試
綜合之前所有特征的重要性與相關(guān)性的重要性評(píng)價(jià)情況,使用【重量,車輛年份】這兩個(gè)特征進(jìn)行回歸預(yù)測,也就是從7個(gè)特征降維到2個(gè)特征。建立隨機(jī)森林進(jìn)行回歸預(yù)測,其設(shè)置與之前的相同,同樣使用100棵樹。具體結(jié)果如下
文章來源:http://www.zghlxwxcb.cn/news/detail-425420.html
可以看到,使用兩個(gè)特征進(jìn)行預(yù)測的準(zhǔn)確度為85.2077,與使用所有特征進(jìn)行預(yù)測的準(zhǔn)確度相差不大,這表明隨機(jī)森林特征選擇方法有效的選擇出了最重要的特征,實(shí)現(xiàn)了從大量特征到少數(shù)重要特征的特征降維篩選,極大的降低了特征的冗余性。文章來源地址http://www.zghlxwxcb.cn/news/detail-425420.html
4.本文Matlab代碼
到了這里,關(guān)于基于隨機(jī)森林的特征選擇-降維-回歸預(yù)測——附代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!