Нужна помощь в понимании результатов построения дерева классификации - PullRequest
0 голосов
/ 20 марта 2020

Я практикую принятие деревьев решений с использованием пакета, называемого «деревом».

#install.packages("ISLR")
set.seed(666)
library(ISLR)
index=sample(1:nrow(OJ),800,replace=F)
OJtrain=OJ[index,]
OJtest=OJ[-index,]
#install.packages("tree")
library(tree)
OJtraintree=tree(Purchase~.,data=OJtrain)
OJtraintree

Вывод этого:

node), split, n, deviance, yval, (yprob)
      * denotes terminal node

1) root 800 1073.00 CH ( 0.60625 0.39375 )  
   2) LoyalCH < 0.508643 353  415.10 MM ( 0.27479 0.72521 )  
     4) LoyalCH < 0.277977 161  112.80 MM ( 0.11180 0.88820 )  
       8) LoyalCH < 0.035047 55    0.00 MM ( 0.00000 1.00000 ) *
       9) LoyalCH > 0.035047 106   96.58 MM ( 0.16981 0.83019 ) *
     5) LoyalCH > 0.277977 192  260.10 MM ( 0.41146 0.58854 )  
      10) PriceDiff < 0.195 84   84.62 MM ( 0.20238 0.79762 )  
        20) SpecialCH < 0.5 67   49.01 MM ( 0.11940 0.88060 ) *
        21) SpecialCH > 0.5 17   23.51 CH ( 0.52941 0.47059 ) *
      11) PriceDiff > 0.195 108  147.30 CH ( 0.57407 0.42593 ) *
   3) LoyalCH > 0.508643 447  348.80 CH ( 0.86801 0.13199 )  
     6) LoyalCH < 0.764572 189  214.20 CH ( 0.74603 0.25397 )  
      12) PriceDiff < -0.165 33   43.26 MM ( 0.36364 0.63636 ) *
      13) PriceDiff > -0.165 156  143.70 CH ( 0.82692 0.17308 )  
        26) PriceDiff < 0.265 86   99.88 CH ( 0.73256 0.26744 ) *
        27) PriceDiff > 0.265 70   30.66 CH ( 0.94286 0.05714 ) *
     7) LoyalCH > 0.764572 258   90.94 CH ( 0.95736 0.04264 ) *

Я понимаю, что строки со звездочками на дерево являются терминальными узлами. Я изо всех сил пытаюсь следовать другим вещам. Используя строку 7 в качестве примера, я знаю, что «LoyalCH> 0,764572» - это место, где дерево решений разделяется и разветвляется на терминальный узел, а CH - это качественное значение терминального узла, где клиенты более 76,4572% лояльны к CH ( данные предварительно загружены в пакет ISLR, CH - торговая марка сока). Я предполагаю, что 258 должно быть числом точек данных, которые заканчиваются в этом терминальном узле. Я знаю, что 90,94 должен описывать правильность соответствия модели, но я немного запутался в концепции отклонения. Является ли более высокая ценность отклонения плохо? 90.94 указывает, что это более слабая посадка? Что касается чисел в скобках, могу ли я понять, что 0,95736 - это вероятность того, что каждая точка данных в этой ветви выберет CH?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...