日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

R语言第十一讲 决策树与随机森林

發布時間:2024/7/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言第十一讲 决策树与随机森林 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概念

? ? ? ?決策樹主要有的回歸和分類方法,這些方法主要根據分層和分割?的方式將預測變量空間劃分為一系列簡單區域。對某個給定待預測的觀 測值,用它所屬區域中訓練集的平均值或眾數對其進行預測。

? ? ? ?基于樹的方法簡便且易于解釋。但預測準確性通常較低。

? ??

? ? ? ? 如圖所示,一共有5個人,我們根據年齡和性別進行判斷,這個人是否喜歡打籃球。我們首先根據年齡是否大于15來判斷是否喜歡打籃球。如上,判斷出年齡大于15的都不喜歡打籃球,年齡小于15的可能喜歡打籃球。第一次劃分,左邊的數據集還具有不確定性,因此,我們再次根據性別進行劃分,直到葉子節點的數據集的純度較高時,停止劃分。如上的樹就是一棵決策樹,決策之意,就是我們在每個分支節點上都定義了一個決策屬性(age、is male)。使用方法:我們只需要將數據集中的每一個樣本從上往下依次去走,直至到達葉子節點,來求得其預測值。

? ? ? ?真正的葉子節點的數據集的預測值往往達不到純度(預測值數據占此葉子節點數據集的百分比)為100%,假設響應變量(是否打籃球)為定性變量,那么其響應值就是葉子節點數據集中出現次數最多的響應值,我們假設爺爺奶奶不喜歡打籃球,他媽媽喜歡打籃球,那么此葉子節點其響應值就是不喜歡打籃球。假設響應變量為定量變量(連續的數值類型),那么其響應值就是此葉子節點所有響應值的加權平均數。

? ? ? 決策樹,為什么要先用age決策呢,決策樹如何建立的呢?

? ? ? 接下來,我講一講決策樹的訓練階段。如何從給定的數據集中構造出一棵決策樹?

? ? ??

? ? ? ? ?如上圖,假設這是一個人要去見約會對象了,我們將根據約會對象的年齡、長相、收入、是否是公務員來預測其去不去見他的約會對象。首先看年齡,其次看長相,再其次看收入……,決策的先后代表其重要的程度。

? ? ? ? ?熵? :描述一個子數據集的純度指標。pi代表的是第i個響應值在葉子數據集中所占的比例,一共有n種響應值。從以下的公式,我們能夠的出,如果一個數據集的純度越高,其熵值就會越低,反之,越高。

? ? ? ?

? ? ? ? ?基尼系數:?描述一個子數據集的純度指標。,如果一個數據集的純度越高,其基尼系數值就會越低,反之,越高。

? ? ? ? ??

? ? ? ? 到底誰來當根節點,這個是由計算機內部計算出來的。

? ? ? ? 構造決策樹的基本思想:隨著樹深度的增加,節點的熵值迅速的降低熵值降低的越快越好,這樣就能得到一顆高度最矮的決策樹。

? ? ? ? 下面通過一個例子,來介紹決策樹的構造過程。

? ? ? ? ?

? ? ? ? ? 預測變量為:outlook(天氣)、temperature(溫度)、humidity(濕度)、windy(是否有風)。

? ? ? ? ? 響應變量:是否出去玩(play)

? ? ? ? ? 構造決策樹:誰來當根節點?我們的得到如下的四種劃分。

? ? ? ? ? ?

? ? ? ?上面說過了,決策樹的構造是根據隨著樹深度的增加,節點的熵值迅速的降低熵值降低的越快越好。那么這四種劃分,那種的熵值降低的幅度最大呢?原有數據集的熵值如下公式計算出來。

?

首先呢,若選擇outlook作為根節點,首次劃分之后,其熵值為多少呢?

outlook一共有14個樣本

outlook=sunny時,5個樣本,2/5的概率打球,3/5的概率不打球。entropy=0.971

outlook=overcast時,4個樣本,entropy = 0

outlook=rainy時,5個樣本,entropy= 0.971.

其熵值為:5/14 x 0.971 + 4/14 x 0 + 5/14 x 0.971 = 0.693。

如此,系統熵就從0.940降到了0.693.信息增益為?0.940 -?0.693 = 0.247

同樣的temperature 信息增益為0.029,humidity?信息增益為0.152,windy 信息增益為0.048.

誰的信息增益大,取那個特征做決策,遞歸的其左右孩子皆為如此。

接下來,介紹一下一種算法叫做ID3算法,決策樹傳統的算法,他就是利用信息增益來構建決策樹。

信息增益看起來很好,但其實他是存在一些問題的。它存在一些異常現象。

假設,我們考慮這樣一個特征,他呢,有很多個值,每一個屬性值內部的樣本數量又非常少,極端情況下,其每一個屬性值內部只有一個樣本,那么其熵值就會為0,但是,這樣的特征真的就好嗎。答案是否定的。采用信息增益作為判定方法,會傾向于去選擇屬性取值比較多的屬性。那么,選擇取值多的屬性為什么就不好了呢?舉個比較極端的例子,如果將身份證號作為一個屬性,那么,其實每個人的身份證號都是不相同的,也就是說,有多少個人,就有多少種取值,它的取值很多吧,讓我們繼續看,如果用身份證號這個屬性去劃分原數據集D,那么,原數據集D中有多少個樣本,就會被劃分為多少個子集,每個子集只有一個人,這種極端情況下,因為一個人只可能屬于一種類別,好人,或者壞人,那么此時每個子集的信息熵就是0了,就是說此時每個子集都特別純。信息增益計算出來的特別大,然后決策樹會用身份證號這個屬性來劃分原數據集D,其實這種劃分毫無意義。

所以,后人提出了對于ID3的改進算法:C4.5,他是基于信息增益率來構造決策樹的。

信息增益率:一個決策的信息增益/屬性的熵值??

比如身份證的例子,身份證屬性的熵值就很大,因為其屬性值很多,純度很低。身份證的熵值雖然大但是除以屬性的熵值之后就會變小,也就是其信息增益率就會很小。

如何評價一棵決策樹的預測效果呢,到底這顆樹的效果如何呢?

在此,我們引入評價函數

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

N代表當前葉子節點數據集的樣本數量,H代表當前葉子節點的熵值。

樹的減枝。一個決策樹預測好了之后,如果不進行減枝很可能會出現過擬合的現象發生,也就是說,他能很好的擬合訓練集,但是測試集的運行效果并不是很好,這主要在于這棵樹太過于龐大,有太多的分支,也可能是受到了訓練集上一些異常值的影響。
我們可以進行兩種減枝操作:

預剪枝:在構建決策樹的過程中,提前停止。比如,決策度的深度、或者某個葉子節點數據集樣本數到某個數值時就進行停止。

后剪枝:決策樹構建好了后,然后才開始減枝。我們將評價函數作如下改變,?T代表葉子節點的個數。

? ? ? ? ? ? ??

? ? ? ? ? ? ?圖中的a值用來,作為一個調整參數。

? ? ? ? ? ? ? 我們利用評價函數,對樹中的分支節點進行評價,根據評價函數值進行決定要不要進行減枝。

隨機森林:通俗的講就是我們將訓練集中部分數據進行10次有放回的隨機抽樣得到十個訓練集,然后就能在十個訓練集上得到十棵決策樹,構造決策樹的時候,選擇特征(天氣、溫度……)時,每棵樹只抽取部分特征。使用的時候,用十棵決策樹共同來做出決定,比如同一個預測變量值,六棵樹預測為藍色,4棵為紅色,其最終預測值就是藍色。

?

?

?

?

? ? ? ??

? ? ? ? ??

總結

以上是生活随笔為你收集整理的R语言第十一讲 决策树与随机森林的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。