九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
決策樹(shù)算法那些事--CART

一、樹(shù)算法介紹

當(dāng)前數(shù)據(jù)挖掘領(lǐng)域中存在10個(gè)火熱的算法、它們涉及到數(shù)據(jù)的聚類(lèi)、分類(lèi)、關(guān)聯(lián)規(guī)則、排序等方面。今天就跟大家說(shuō)說(shuō)基于樹(shù)的分類(lèi)算法--決策樹(shù),決策樹(shù)有非常良好的優(yōu)點(diǎn):

1)決策樹(shù)的夠造不需要任何領(lǐng)域知識(shí),就是簡(jiǎn)單的IF...THEN...思想 ;

2)決策樹(shù)能夠很好的處理高維數(shù)據(jù),并且能夠篩選出重要的變量;

3)由決策樹(shù)產(chǎn)生的結(jié)果是易于理解和掌握的;

4)決策樹(shù)在運(yùn)算過(guò)程中也是非常迅速的;

5)一般而言,決策樹(shù)還具有比較理想的預(yù)測(cè)準(zhǔn)確率。


CART決策樹(shù)又稱(chēng)分類(lèi)回歸樹(shù),當(dāng)數(shù)據(jù)集的因變量為連續(xù)性數(shù)值時(shí),該樹(shù)算法就是一個(gè)回歸樹(shù),可以用葉節(jié)點(diǎn)觀察的均值作為預(yù)測(cè)值;當(dāng)數(shù)據(jù)集的因變量為離散型數(shù)值時(shí),該樹(shù)算法就是一個(gè)分類(lèi)樹(shù),可以很好的解決分類(lèi)問(wèn)題。但需要注意的是,該算法是一個(gè)二叉樹(shù),即每一個(gè)非葉節(jié)點(diǎn)只能引伸出兩個(gè)分支,所以當(dāng)某個(gè)非葉節(jié)點(diǎn)是多水平(2個(gè)以上)的離散變量時(shí),該變量就有可能被多次使用。


決策樹(shù)算法中包含最核心的兩個(gè)問(wèn)題,即特征選擇和剪枝:

關(guān)于特征選擇目前比較流行的方法是信息增益、增益率、基尼系數(shù)和卡方檢驗(yàn),下文就先介紹基于基尼系數(shù)的特征選擇,因?yàn)楸疚?span>所描述的CART決策樹(shù)就是基于基尼系數(shù)選擇特征的;

關(guān)于剪枝問(wèn)題,主要分預(yù)剪枝和后剪枝,預(yù)剪枝是在樹(shù)還沒(méi)有生長(zhǎng)之前就限定了樹(shù)的層數(shù)、葉節(jié)點(diǎn)觀測(cè)數(shù)量等,而后剪枝是在樹(shù)得到充分生長(zhǎng)后,基于損失矩陣或復(fù)雜度方法實(shí)施剪枝,下文將采用后剪枝的方法對(duì)樹(shù)進(jìn)行修正。


二、特征選擇

CART算法的特征選擇就是基于基尼系數(shù)得以實(shí)現(xiàn)的,其選擇的標(biāo)準(zhǔn)就是每個(gè)子節(jié)點(diǎn)達(dá)到最高的純度,即落在子節(jié)點(diǎn)中的所有觀察都屬于同一個(gè)分類(lèi)。下面簡(jiǎn)單介紹一下有關(guān)基尼系數(shù)的計(jì)算問(wèn)題:

假設(shè)數(shù)據(jù)集D中的因變量有m個(gè)水平,即數(shù)據(jù)集可以分成m類(lèi)群體,則數(shù)據(jù)集D的基尼系數(shù)可以表示為:


由于CART算法是二叉樹(shù)形式,所以一個(gè)多水平(m個(gè)水平)的離散變量(自變量)可以把數(shù)據(jù)集D劃分為2^m-2種可能。舉個(gè)例子也許能夠明白:如果年齡段可分為{青年,中年,老年},則其子集可以是{青年,中年,老年}、{青年,中年}、{青年,老年}、{中年,老年}、{青年}、{中年}、{老年}、{}。其中{青年,中年,老年}和空集{}為無(wú)意義的Split,所以6=2^3-2。

對(duì)于一個(gè)離散變量來(lái)說(shuō),需要計(jì)算每個(gè)分區(qū)不純度的加權(quán)和,即對(duì)于變量A來(lái)說(shuō),D的基尼系數(shù)為:


對(duì)于一個(gè)連續(xù)變量來(lái)說(shuō),需要將排序后的相鄰值的中點(diǎn)作為閾值(分裂點(diǎn)),同樣使用上面的公式計(jì)算每一個(gè)分區(qū)不純度的加權(quán)和。


根據(jù)特征選擇的標(biāo)準(zhǔn),只有使每個(gè)變量的每種分區(qū)的基尼系數(shù)達(dá)到最小,就可以確定該變量下的閾值作為分裂變量和分裂點(diǎn)。如果這部分讀的不易理解的話,可參考《數(shù)據(jù)挖掘:概念與技術(shù)》一書(shū),書(shū)中有關(guān)于計(jì)算的案例。


三、剪枝

剪枝是為了防止模型過(guò)擬合,而更加適合樣本外的預(yù)測(cè)。一般決策樹(shù)中的剪枝有兩種方式,即預(yù)剪枝和后剪枝,而后剪枝是運(yùn)用最為頻繁的方法。后剪枝中又分為損失矩陣剪枝法和復(fù)雜度剪枝法,對(duì)于損失矩陣剪枝法而言,是為了給錯(cuò)誤預(yù)測(cè)一個(gè)懲罰系數(shù),使其在一定程度上減少預(yù)測(cè)錯(cuò)誤的情況;對(duì)于復(fù)雜度剪枝法而言,就是把樹(shù)的復(fù)雜度看作葉節(jié)點(diǎn)的個(gè)數(shù)和樹(shù)的錯(cuò)誤率(錯(cuò)誤分類(lèi)觀察數(shù)的比例)的函數(shù)。這里講解的有點(diǎn)抽象,下面我們通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明后剪枝的作用。


四、案例分享

以“知識(shí)的掌握程度”數(shù)據(jù)為例,說(shuō)說(shuō)決策樹(shù)是如何實(shí)現(xiàn)數(shù)據(jù)的分類(lèi)的(數(shù)據(jù)來(lái)源

:http://archive.ics.uci.edu/ml/datasets/User+Knowledge+Modeling)。

該數(shù)據(jù)集通過(guò)5個(gè)維度來(lái)衡量知識(shí)的掌握程度,它們分別是:

STG:目標(biāo)科目的學(xué)習(xí)時(shí)長(zhǎng)程度; 

SCG:對(duì)目標(biāo)科目的重復(fù)學(xué)習(xí)程度; 

STR:其他相關(guān)科目的學(xué)習(xí)時(shí)長(zhǎng)程度;

LPR:其他相關(guān)科目的考試成績(jī); 

PEG:目標(biāo)科目的考試成績(jī)。 

知識(shí)的掌握程度用UNS表示,它有4個(gè)水平,即Very Low、Low、Middle、High。


#讀取外部文件

Train <- read.csv(file="">

Test <- read.csv(file="">

#加載CART算法所需的擴(kuò)展包,并構(gòu)建模型

library(rpart)

fit <- rpart(uns="" ~="" .,="" data="">

#查看模型輸出的規(guī)則

fit



上面的輸出規(guī)則看起來(lái)有點(diǎn)眼花繚亂,我們嘗試用決策樹(shù)圖來(lái)描述產(chǎn)生的具體規(guī)則。由于rpart包中有plot函數(shù)實(shí)現(xiàn)決策樹(shù)圖的繪制,但其顯得很難看,我們下面使用rpart.plot包來(lái)繪制比較好看的決策樹(shù)圖:

#加載并繪制決策樹(shù)圖

library(rpart.plot)

rpart.plot(fit, branch = 1, branch.type = 1, type = 2, extra = 102,shadow.col='gray', box.col='green',border.col='blue', split.col='red',main='CART決策樹(shù)')


上圖可一目了然的查看具體的輸出規(guī)則,如根節(jié)點(diǎn)有258個(gè)觀測(cè),其中Middle有88個(gè),當(dāng)PEG>=0.68時(shí),節(jié)點(diǎn)內(nèi)有143個(gè)觀測(cè),其中Middle有78個(gè),當(dāng)PEG>=0.12且PEG<>


#將模型用于預(yù)測(cè)

Pred <- predict(object="fit," newdata="Test[,-6]," type='class'>

#構(gòu)建混淆矩陣

CM <- table(test[,6],="">

CM


#計(jì)算模型的預(yù)測(cè)準(zhǔn)確率

Accuracy <->

Accuracy


結(jié)果顯示,模型在測(cè)試集中的預(yù)測(cè)能力超過(guò)91%。但模型的預(yù)測(cè)準(zhǔn)確率還有提升的可能嗎?下面我們對(duì)模型進(jìn)行剪枝操作,具體分損失矩陣法剪枝和復(fù)雜度剪枝:

根據(jù)混淆矩陣的顯示結(jié)果,發(fā)現(xiàn)High的預(yù)測(cè)率達(dá)100%(39/39),Low的預(yù)測(cè)率達(dá)91.3%(42/46),Middle的預(yù)測(cè)率達(dá)88.2%(30/34),very_low的預(yù)測(cè)率達(dá)80.8(21/26)。如果希望提升very_low的預(yù)測(cè)準(zhǔn)確率的話就需要將其懲罰值提高,經(jīng)嘗試調(diào)整,構(gòu)建如下損失矩陣

vec = c(0,1,1,1,1,0,1,1,1,2,0,1,1,3.3,1,0)

cost = matrix(vec, nrow = 4, byrow = TRUE)

cost


fit2 = rpart(UNS ~ ., data = Train, parms = list(loss = cost))

Pred2 = predict(fit2, Test[,-6], type = 'class')

CM2 <- table(test[,6],="">

CM2


Accuracy2 <->

Accuracy2


準(zhǔn)確率提升了1.4%,且在保證High、Low、Middle準(zhǔn)確率不變的情況下,提升了very_low的準(zhǔn)確率88.5%,原來(lái)為80.8%。


下面再采用復(fù)雜度方法進(jìn)行剪枝,先來(lái)看看原模型的CP值:

printcp(fit)



復(fù)雜度剪枝法滿足的條件是,在預(yù)測(cè)誤差(xerror)盡量小的情況下(不一定是最小值,而是允許最小誤差的一個(gè)標(biāo)準(zhǔn)差(xstd)之內(nèi)),選擇盡量小的cp值。這里選擇cp=0.01。

fit3 = prune(fit, cp = 0.01)

Pred3 = predict(fit3, Test[,-6], type = 'class')

CM3 <- table(test[,6],="">

CM3


Accuracy3 <->

Accuracy3


很顯然,模型的準(zhǔn)確率并沒(méi)有得到提升,因?yàn)檫@里滿足條件的cp值為0.01,而函數(shù)rpart()默認(rèn)的cp值就是0.01,故模型fit3的結(jié)果與fit一致。


經(jīng)過(guò)上面的學(xué)習(xí)和實(shí)戰(zhàn),大家明白了分類(lèi)回歸樹(shù)CART的運(yùn)作思路和方法了嗎?動(dòng)手做一做,對(duì)你的理解會(huì)更有幫助!


腳本及數(shù)據(jù)集可至下方鏈接下載:

http://yunpan.cn/c68YsUUFNS284  訪問(wèn)密碼 bde1


最后說(shuō)一點(diǎn),由于前段時(shí)間身體不適,導(dǎo)致公眾號(hào)一直沒(méi)有及時(shí)更新,同時(shí),在這里也感謝網(wǎng)友及朋友們對(duì)我的關(guān)心和支持。后期我將繼續(xù)分享所學(xué)和所用,希望大家繼續(xù)支持和關(guān)注。


每天進(jìn)步一點(diǎn)點(diǎn)2015

學(xué)習(xí)與分享,取長(zhǎng)補(bǔ)短,關(guān)注小號(hào)!

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
CART分類(lèi)與回歸樹(shù) 學(xué)習(xí)筆記
決策樹(shù)與隨機(jī)森林(5)—— 應(yīng)用決策樹(shù)算法的13篇文獻(xiàn)解讀
數(shù)據(jù)挖掘?qū)W習(xí)筆記:分類(lèi)、統(tǒng)計(jì)學(xué)習(xí)
CART決策樹(shù)-數(shù)據(jù)醫(yī)療診斷上的應(yīng)用(附代碼及數(shù)據(jù))
R語(yǔ)言實(shí)現(xiàn)決策樹(shù)ID3算法
機(jī)器學(xué)習(xí)基礎(chǔ):可視化方式理解決策樹(shù)剪枝
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服