Добрый день,
Я хотел бы понять разницу между моделями деревьев, созданными tree () и rpart () в R.
Я изо всех сил старался установить то же самое параметры в каждой функции, чтобы иметь возможность копировать функции и получать одинаковые выходные данные на основе одного и того же набора данных. Я не могу сразу увидеть причины, по которым каждая функция дает разный результат. Следует ли отдавать предпочтение одному подходу перед другим?
Спасибо!
library(rpart)
library(rpart.plot)
library(tree)
library(tidyverse)
# Data is the training data set from https://www.kaggle.com/c/titanic/data?select=train.csv
titanic = read_csv('titanic.csv', col_names = TRUE)
titanic = titanic %>%
select(Survived,Pclass,Sex,Age,SibSp,Parch,Fare,Embarked)
titanic$Pclass = as.factor(titanic$Pclass)
titanic$Survived = as.factor(titanic$Survived)
titanic$Sex = as.factor(titanic$Sex)
titanic$Embarked = as.factor(titanic$Embarked)
titanic$Parch = as.integer(titanic$Parch)
titanic$SibSp = as.integer(titanic$SipSp)
str(titanic)
titanic_comp = na.omit(titanic)
set.seed(5076)
ind = sample(1:nrow(titanic_comp), 0.8*nrow(titanic_comp))
train = titanic_comp[ind,]
test = titanic_comp[-ind,]
tree_normal_control = tree.control(nrow(train), mincut = 5, minsize = 10, mindev = 0)
tree_normal = tree(Survived ~ ., data = train, split = "gini", control = tree_normal_control)
summary(tree_normal)
tree_normal
plot(tree_normal)
text(tree_normal, cex=0.9)
tree_rpart_control = rpart.control(minsplit = 5, minbucket = 10, cp = 0)
tree_rpart = rpart(Survived ~ ., data = train, parms = list(split = "Gini"), control = tree_rpart_control)
summary(tree_rpart)
tree_rpart
rpart.plot(tree_rpart)