數(shù)據(jù)挖掘與數(shù)據(jù)分析:基于R語言- 課件 第五章 決策樹與回歸樹_第1頁
數(shù)據(jù)挖掘與數(shù)據(jù)分析:基于R語言- 課件 第五章 決策樹與回歸樹_第2頁
數(shù)據(jù)挖掘與數(shù)據(jù)分析:基于R語言- 課件 第五章 決策樹與回歸樹_第3頁
數(shù)據(jù)挖掘與數(shù)據(jù)分析:基于R語言- 課件 第五章 決策樹與回歸樹_第4頁
數(shù)據(jù)挖掘與數(shù)據(jù)分析:基于R語言- 課件 第五章 決策樹與回歸樹_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

DataMiningandDataAnalysiswithR數(shù)據(jù)挖掘與數(shù)據(jù)分析:基于R語言第五章決策樹與回歸樹CART算法原理01CART算法示例02模型理解03R語言編程04章節(jié)內(nèi)容5.1CART算法原理應(yīng)用背景介紹決策樹作為一種常見的機(jī)器學(xué)習(xí)方法,在分類和預(yù)測任務(wù)上均體現(xiàn)出優(yōu)秀的泛化能力決策樹以樹模型為基礎(chǔ),針對特征對實(shí)例進(jìn)行學(xué)習(xí),完成分類或回歸任務(wù)決策樹建模的過程可以看作是一系列if-then集合組合的過程,也可以理解為是特征空間在類別空間上的條件概率分布決策樹的樹形結(jié)構(gòu)是模擬人類在面臨決策問題時的一種自然處理機(jī)制圖5-1下雨問題的一棵決策樹分類與回歸樹(Classificationandregressiontree,Cart)模型分類與回歸樹模型作為應(yīng)用最廣泛的決策樹學(xué)習(xí)方法,不僅可以適用于分類任務(wù),在回歸任務(wù)上也具有不錯的性能。常用的決策樹算法有ID3、C4.5、C5.0和CART算法,本章主要介紹CART算法。

決策樹生成

從樹的根節(jié)點(diǎn)開始,遞歸地構(gòu)建生成樹的過程如下:選擇對應(yīng)當(dāng)前數(shù)據(jù)集D的最優(yōu)分裂特征和最優(yōu)分裂點(diǎn)根據(jù)基尼系數(shù)最小準(zhǔn)則(基尼指數(shù)越小,混亂程度越?。?,選擇最小基尼指數(shù)對應(yīng)的特征和特征分裂點(diǎn)進(jìn)行樹的生成。對于新生成的節(jié)點(diǎn),重復(fù)①②操作,生成新生成結(jié)點(diǎn)對應(yīng)的子樹,直至滿足決策樹生成的停止條件。決策樹生成

決策樹生成

決策樹生成

決策樹生成

決策樹剪枝

決策樹剪枝

決策樹剪枝5.2CART算法示例

序號房產(chǎn)狀況婚姻狀況年收入類別1是未婚良否2否已婚良否3否未婚差否4是已婚良否5否未婚良否6否已婚差否7是已婚優(yōu)否8否未婚良是9否已婚良否10否未婚良是表5-1貸款情況數(shù)據(jù)一覽表5.2CART算法示例

序號房產(chǎn)狀況婚姻狀況年收入類別1是未婚良否2否已婚良否3否未婚差否4是已婚良否5否未婚良否6否已婚差否7是已婚優(yōu)否8否未婚良是9否已婚良否10否未婚良是表5-1貸款情況數(shù)據(jù)一覽表5.2CART算法示例

序號房產(chǎn)狀況婚姻狀況年收入類別1是未婚良否3否未婚差否5否未婚良否8否未婚良是10否未婚良是序號房產(chǎn)狀況婚姻狀況年收入類別2否已婚良否4是已婚良否6否已婚差否7是已婚優(yōu)否9否已婚良否5.2CART算法示例

序號房產(chǎn)狀況婚姻狀況年收入類別1是未婚良否3否未婚差否5否未婚良否8否未婚良是10否未婚良是5.2CART算法示例

序號房產(chǎn)狀況婚姻狀況年收入類別2否已婚良否4是已婚良否6否已婚差否7是已婚優(yōu)否9否已婚良否5.2CART算法示例對于新的分裂點(diǎn),繼續(xù)使用以上方法便可最終得到一棵如圖5-2的決策樹。圖5-2貸款情況數(shù)據(jù)集對應(yīng)決策樹5.2CART算法示例例5.2:已知訓(xùn)練數(shù)據(jù)如表5-4所示,根據(jù)平方誤差損失最小準(zhǔn)則構(gòu)建一個二叉回歸樹。123456789105.55.75.86.46.77.08.68.78.99表5-1貸款情況數(shù)據(jù)一覽表

5.2CART算法示例123456789105.55.75.86.46.77.08.68.78.99

123456789105.505.605.675.856.026.186.536.807.037.237.427.647.908.158.448.808.878.95905.2CART算法示例

1234567891015.0411.727.895.663.721.936.8810.9614.8818.36

1234565.55.75.86.46.77.05.2CART算法示例取切分點(diǎn)分別為:[1,2,3,4,5,6],則可得如下輸出表:

1234561.270.810.230.501.031.831234565.505.605.675.856.026.186.326.486.76.857.00

789108.68.78.995.2CART算法示例取切分點(diǎn)分別為:[7,8,9,10],則可得如下輸出表:

789100.0470.0100.0470.100789108.68.658.738.88.878.9590

5.2CART算法示例最后,得到如圖5-3的完整二叉回歸樹。圖5-3完整的二叉回歸樹5.3模型理解決策樹(DecisionTree)作為一種用于分類和回歸的非參數(shù)監(jiān)督學(xué)習(xí)方法。其目標(biāo)是創(chuàng)建一個模型,通過學(xué)習(xí)從數(shù)據(jù)特征推斷出的簡單決策規(guī)則來預(yù)測目標(biāo)變量的類別或值。決策樹以使用一組if-then-else決策規(guī)則來學(xué)習(xí)數(shù)據(jù)中的深層信息。一般而言,決策樹深度越深,決策規(guī)則越復(fù)雜,模型適用的范圍越廣。圖5-1下雨問題的一棵決策樹決策樹優(yōu)點(diǎn)模型構(gòu)建和預(yù)測過程能夠以圖形方式顯示,相比其他機(jī)器學(xué)習(xí)方法更易于理解和解釋。不需要大規(guī)模訓(xùn)練數(shù)據(jù),無需數(shù)據(jù)標(biāo)準(zhǔn)化。能夠處理數(shù)值型和分類型數(shù)據(jù)。分類型數(shù)據(jù)可以采用獨(dú)熱編碼轉(zhuǎn)變?yōu)閿?shù)值型數(shù)據(jù),以構(gòu)建決策樹模型。能夠處理多輸出問題。決策樹是一種白盒模型。如果在模型中觀察到給定情況,易于通過布爾邏輯解釋模型的內(nèi)在思路。相比之下,黑盒模型中(例如,人工神經(jīng)網(wǎng)絡(luò))的模型結(jié)果可能難以解釋。對于異常的數(shù)據(jù)點(diǎn)有更強(qiáng)的包容性。即使真實(shí)模型違反了假設(shè),決策樹也表現(xiàn)良好。決策樹模型的優(yōu)缺點(diǎn)決策樹缺點(diǎn)決策樹針對大規(guī)模問題可能創(chuàng)建過于復(fù)雜的樹,出現(xiàn)過擬合現(xiàn)象,導(dǎo)致在訓(xùn)練數(shù)據(jù)集上表現(xiàn)良好,但在測試數(shù)據(jù)集上泛化能力差。解決方案包括修剪、設(shè)置葉子節(jié)點(diǎn)所需的最小樣本數(shù)或設(shè)置樹的最大深度等機(jī)制。決策樹具有不穩(wěn)定性。微小數(shù)據(jù)變化可能導(dǎo)致生成完全不同的決策樹。決策樹預(yù)測模型是非平滑非連續(xù)的。因此,決策樹模型更適用于分類而非推斷。實(shí)用的決策樹學(xué)習(xí)算法是基于啟發(fā)式算法,如貪婪算法。受限于每個節(jié)點(diǎn)上的局部最優(yōu)決策,算法不能保證返回全局最優(yōu)決策樹,可以通過訓(xùn)練多棵樹緩解。決策樹難以表達(dá)某些概念。對于像XOR、奇偶性或多路復(fù)用器等問題的建模效果較差。在某些類占主導(dǎo)地位的數(shù)據(jù)集上,決策樹模型會創(chuàng)建有“偏見”的樹。因此,建議平衡數(shù)據(jù)集后再建模。決策樹模型的優(yōu)缺點(diǎn)決策樹在具有大量特征的數(shù)據(jù)集上往往會發(fā)生過擬合現(xiàn)象。因此,獲得正確的樣本與特征數(shù)量的比例是十分重要的。對于特征數(shù)量較多的數(shù)據(jù)集,應(yīng)該考慮事先進(jìn)行降維(PCA、ICA或特征選擇),這有利于決策樹有更好的機(jī)會找到具有區(qū)分力的特征。通過限制決策樹的最大深度可以來控制樹的大小以防止模型過擬合,這是防止模型過擬合的一種常用方法。在訓(xùn)練決策樹模型前,應(yīng)該平衡數(shù)據(jù)集,以防止決策樹在訓(xùn)練過程中偏向于占優(yōu)勢的類。如果樣本是加權(quán)的,那么使用基于權(quán)重的預(yù)剪枝準(zhǔn)則來優(yōu)化決策樹的結(jié)構(gòu)會更容易,它可以確保葉子節(jié)點(diǎn)至少包含樣本權(quán)重總和的一部分?;貧w參數(shù)α越大的決策樹模型可以適應(yīng)越復(fù)雜的問題,但是并非所有的問題都需要復(fù)雜的決策樹模型,需要具體問題進(jìn)行具體分析。決策樹模型實(shí)踐建議作為標(biāo)稱屬性,其存在多個可能值,針對所使用的決策樹算法的不同,標(biāo)稱屬性的分裂存在兩種方式:多路劃分和二元劃分。對于ID3、C4.5等算法,均采取多路劃分的方法,標(biāo)稱屬性有多少種可能的取值,就設(shè)計多少個分支;對于CART算法采用二分遞歸分割的方法,因此CART算法生成的決策樹均為二叉樹。非監(jiān)督離散化是指在離散化過程中不使用類信息的方法,其輸入數(shù)據(jù)集僅含有待離散化屬性的值。下表總結(jié)了非監(jiān)督離散化的常用方法:連續(xù)屬性離散化方法方法描述等寬離散將屬性劃分為寬度一致的若干個區(qū)間,各個區(qū)間對應(yīng)一個離散特征等頻離散將屬性劃分為若干個區(qū)間,每個區(qū)間的數(shù)量相等,各區(qū)間對應(yīng)一個離散特征聚類對每個屬性進(jìn)行聚類,形成幾個簇的過程,將各個簇作為不同的離散特征5.4R語言編程本節(jié)利用R語言將決策樹建模的整個過程進(jìn)行實(shí)踐。對于一個新的問題,決策樹建模主要包括四個部分:數(shù)據(jù)導(dǎo)入、數(shù)據(jù)預(yù)處理、決策樹模型訓(xùn)練、決策樹模型驗(yàn)證。數(shù)據(jù)導(dǎo)入首先導(dǎo)入讀取數(shù)據(jù)的相關(guān)庫,接著利用fread函數(shù)讀取原始數(shù)據(jù)集PurchasePredictionDataset.csv(下載鏈接/Apress/machine-learning-using-r/blob/master/Dataset/Chapter%206.zip)。該數(shù)據(jù)集共包含12個屬性信息,具體的屬性信息通過str(Data_Purchase)可以進(jìn)行查看。結(jié)果如下:#相關(guān)庫導(dǎo)入library(data.table)library(splitstackshape)

#讀取數(shù)據(jù)集Data_Purchase<-fread("./PurchasePredictionDataset.csv",header=T,verbose=FALSE,showProgress=FALSE)

#查看數(shù)據(jù)信息str(Data_Purchase)table(Data_Purchase$ProductChoice)Classes'data.table'and'data.frame': 500000obs.of12variables:$CUSTOMER_ID:int12345678910...$ProductChoice:int2323232223...$MembershipPoints:int6242665953...$ModeOfPayment:chr"MoneyWallet""CreditCard""MoneyWallet""MoneyWallet"...$ResidentCity:chr"Madurai""Kolkata""Vijayawada""Meerut"...$PurchaseTenure:int441063313198...$Channel:chr"Online""Online""Online""Online"...$IncomeClass:int4754744464...$CustomerPropensity:chr"Medium""VeryHigh""Unknown""Low"...$CustomerAge:int55753426387172273329...$MartialStatus:int0000100001...$LastPurchaseDuration:int41515661054156...-attr(*,".internal.selfref")=<externalptr>

123410660319928614389350218數(shù)據(jù)預(yù)處理數(shù)據(jù)預(yù)處理作為機(jī)器學(xué)習(xí)方法在模型訓(xùn)練中的重要一環(huán),具有十分重要的作用。原始數(shù)據(jù)集中的缺失值、異常值等問題均會對模型的訓(xùn)練產(chǎn)生一定的負(fù)面影響。為了避免這些負(fù)面因素對模型的影響,便需要進(jìn)行數(shù)據(jù)預(yù)處理操作,為模型的訓(xùn)練奠定基礎(chǔ)。#獲取相關(guān)數(shù)據(jù)集的相關(guān)列Data_Purchase<-Data_Purchase[,.(CUSTOMER_ID,ProductChoice,MembershipPoints,IncomeClass,CustomerPropensity,LastPurchaseDuration)]

#刪除缺失值Data_Purchase<-na.omit(Data_Purchase)Data_Purchase$CUSTOMER_ID<-as.character(Data_Purchase$CUSTOMER_ID)

#分層抽樣Data_Purchase_Model<-stratified(Data_Purchase,group=c("ProductChoice"),size=10000,replace=FALSE)

print("TheDistributionofequalclassesisasbelow")table(Data_Purchase_Model$ProductChoice)數(shù)據(jù)預(yù)處理數(shù)據(jù)預(yù)處理完成后,便需要對該數(shù)據(jù)集進(jìn)行劃分,形成訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集兩部分。其中訓(xùn)練數(shù)據(jù)集用于訓(xùn)練決策樹,測試數(shù)據(jù)集則用于評估決策樹的泛化能力。Data_Purchase_Model$ProductChoice<-as.factor(Data_Purchase_Model$ProductChoice)Data_Purchase_Model$IncomeClass<-as.factor(Data_Purchase_Model$IncomeClass)Data_Purchase_Model$CustomerPropensity<-as.factor(Data_Purchase_Model$CustomerPropensity)

#在訓(xùn)練數(shù)據(jù)(Set_1)上建立決策樹,然后測試數(shù)據(jù)(Set_2)將被用于性能測試set.seed(917)train<-Data_Purchase_Model[sample(nrow(Data_Purchase_Model),size=nrow(Data_Purchase_Model)*(0.7),replace=FALSE,prob=NULL),]train<-as.data.frame(train)

test<-Data_Purchase_Model[!(Data_Purchase_Model$CUSTOMER_ID%in%train$CUSTOMER_ID),]print(train)print(test)決策樹模型訓(xùn)練準(zhǔn)備好訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集后,接下來便利用決策樹模型在訓(xùn)練數(shù)據(jù)集上進(jìn)行訓(xùn)練,學(xué)習(xí)數(shù)據(jù)中蘊(yùn)含的規(guī)則。們利用訓(xùn)練數(shù)據(jù)集對CART模型進(jìn)行訓(xùn)練,訓(xùn)練結(jié)束后,調(diào)用summary函數(shù)查看CART模型的訓(xùn)練結(jié)果:#導(dǎo)入相關(guān)庫library(rpart)

#CART模型構(gòu)建CARTModel<-rpart(ProductChoice~IncomeClass+CustomerPropensity+LastPurchaseDuration+MembershipPoints,data=train)

summary(CARTModel)Call:rpart(formula=ProductChoice~IncomeClass+CustomerPropensity+LastPurchaseDuration+MembershipPoints,data=train)n=28000

Nodenumber1:28000observations,complexityparam=0.08651825predictedclass=3expectedloss=0.7475714P(node)=1classcounts:7015702070686897probabilities:0.2510.2510.2520.246leftson=2(19278obs)rightson=3(8722obs)Primarysplits:CustomerPropensitysplitsasRLLLR,improve=372.73440,(0missing)MembershipPoints<1.5totheright,improve=278.31900,(0missing)LastPurchaseDuration<4.5totheleft,improve=189.24010,(0missing)IncomeClasssplitsasLLLLLRRRR,improve=26.05557,(0missing)Surrogatesplits:LastPurchaseDuration<14.5totheleft,agree=0.694,adj=0.019,(0split)

Nodenumber2:19278observations,complexityparam=0.0314829predictedclass=1expectedloss=0.6953522P(node)=0.6885classcounts:5873520140624142probabilities:0.3050.2700.2110.215leftson=4(16072obs)rightson=5(3206obs)Primarysplits:MembershipPoints<1.5totheright,improve=261.15400,(0missing)LastPurchaseDuration<3.5totheleft,improve=96.05630,(0missing)CustomerPropensitysplitsas-RRL-,improve=76.61419,(0missing)IncomeClasssplitsasLLLLLRRRR,improve=11.53160,(0missing)

Nodenumber3:8722observationspredictedclass=3expectedloss=0.6553543P(node)=0.3115classcounts:1142181930062755probabilities:0.1310.2090.3450.316

Nodenumber4:16072observationspredictedclass=1expectedloss=0.6812469P(node)=0.574classcounts:5123452736892733probabilities:0.3190.2820.2300.170

Nodenumber5:3206observationspredictedclass=4expectedloss=0.5605115P(node)=0.1145classcounts:7506743731409probabilities:0.2340.2100.1160.439決策樹模型驗(yàn)證準(zhǔn)備好訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集后,接下來便利用決策樹模型在訓(xùn)練數(shù)據(jù)集上進(jìn)行訓(xùn)練,學(xué)習(xí)數(shù)據(jù)中蘊(yùn)含的規(guī)則。們利用訓(xùn)練數(shù)據(jù)集對CART模型進(jìn)行訓(xùn)練,訓(xùn)練結(jié)束后,調(diào)用summary函數(shù)查看CART模型的訓(xùn)練結(jié)果:#導(dǎo)入相關(guān)包library(gmodels)

purchase_pred_train<-predict(CARTModel,test,type="class")CrossTable(test$ProductChoice,purchase_pred_train,prop.chisq=FALSE,prop.c=FALSE,prop.r=FALSE,dnn=c('actualdefault','predicteddefault'))CellContents|-------------------------||N||N/TableTotal||-------------------------|

TotalObservationsinTable:19840

|predicteddefaultactualdefault|1|3|4|RowTotal|---------------|-----------|-----------|-----------|-----------|1|2923|139

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論