R語言-決策樹-party包
阿新 • • 發佈:2019-01-05
1、首先解釋下熵和吉尼係數在決策樹的功用
決策樹學習的關鍵是如何選擇最優的劃分屬性。通常,隨著劃分過程的不斷進行,我們希望決策樹的內部分支節點所包含的樣本儘可能屬於同一類別,即節點的“純度”越來越高。
“熵”是衡量樣本資料集純度最常用的一種指標。熵值越小,則樣本的純度越高,或者說樣本的雜亂程度越小。
“吉尼係數”也可以用來衡量樣本資料集的純度。吉尼係數越小,則表示該節點可以有效的把同一類聚集在一起。反之,分割後的類別越雜亂,則吉尼係數會越大。在決策樹生成時,當用到吉尼係數這個方法時,通常會計算每一個特徵的吉尼係數,接著比較各個特徵下的吉尼係數,係數越小的特徵越適合先作為內部節點。
2、party包,readingskills資料,建立nativespeaker決策樹
直接放R語言程式碼
#install.packages(“rpart”) #安裝party包,只需在首次執行改指令碼時安裝 library("party") #調出party包 mydata <- readingSkills #將readingSkills資料儲存在mydata裡頭 names(mydata) #檢視mydata中有幾個變數 str(mydata) #檢視每個變數的資料結構 summary(mydata) #計算各變數的基本描述性統計量 plot(x = mydata$shoeSize, y = mydata$score, xlab = "shoeSize", ylab = "score", main = "shoeSize VS score") #畫shoeSize和score散點圖,X軸是shoeSize,Y軸是score,圖名是"shoeSize VS score" library(rpart) #調出rpart包 my.tree <- rpart(formula=nativeSpeaker ~ age + shoeSize + score, method="class", minsplit =20, cp=0.05, data=mydata) #決策樹結果存在my.tree物件中 printcp(my.tree) #顯示不同cp值下的錯誤率 #install.packages("rpart.plot") #安裝rpart.plot包,只需在首次執行改指令碼時安裝 library(rpart.plot) #調出rpart.plot包 rpart.plot(my.tree, type=2) #type是圖形表示的型別,有1、2、3、4四種,差異不大