回覆列表
  • 1 # 且聽漁歌

    如何利用R軟體建立決策樹模型

    1、根據Age、Number、Start三個變數對kyphosis進行分類。

    #程式包

    library(rpart)

    library(rpart.plot)

    library(rattle)

    #資料

    data(kyphosis)

    head(kyphosis)

    2、定義引數並建立模型。

    #引數

    control <- rpart.control(minsplit=10,

    minbucket=5,

    xval=10,cp=0.1)

    #決策樹模型

    model<- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis,

    method="class",control=control,

    parms = list(prior = c(0.6,0.4), split = "information"))

    3、檢視模型結果。summary可以檢視模型的詳細過程。

    summary(model)

    asRules(model)

    4、繪製決策樹圖。可以從圖中看到每一類的觀測數及佔總數的比例。

    fancyRpartPlot(model)

    5、檢視交叉驗證結果,並繪圖。

    model$cptable

    plotcp(model)

    grid()

    可以看到結果中有交叉驗證的估計誤差(“xerror”),以及標準誤差(“xstd”),平均相對誤差=xerror±xstd 。

    6、根據交叉驗證結果,找出估計誤差最小時的cp值,並重新建立模型。

    #選擇交叉驗證的估計誤差最小時對應的cp

    xerr <-model$cptable[,"xerror"]

    minxerr <- which.min(xerr)

    mincp <-model$cptable[minxerr, "CP"]

    #新模型

    model.prune <- prune(model,cp=mincp)

    fancyRpartPlot(model.prune)

    擴充套件資料

    決策樹演算法中,會對資料特徵不斷提問,然後根據每次回答逐步對資料進行分類。

    節點(Node)的分類:節點分為根節點(Root Node)與葉節點(Leaf Node)。其中根節點位於決策樹最頂部,它是分類的起始點,位於最底端且沒有子節點的節點成為葉節點。

    在決策樹中,對各節點提問題,並根據回答對節點進行分叉,從而實現分類資料的目的。‘不純度’(impurity)用作評估資料分離程度的標準,將一個節點資料劃分為2個子節點時,最好的提問能夠使子節點的不純度降至最低。

    節點中含有的分類越多,不純度越高。反之,只有一個分類的時候,不純度最低。

    原文連結:https://blog.csdn.net/RH_Wang/java/article/details/81703151

  • 中秋節和大豐收的關聯?
  • 職場與特長如何劃分?