1. 程式人生 > >R語言-決策樹-party包

R語言-決策樹-party包

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四種,差異不大