Ошибка в xy.coords (x, y, xlabel, ylabel, log) при вязании файла - PullRequest
0 голосов
/ 02 апреля 2020

У меня все работает, когда я запускаю чанки, но возникает ошибка, когда я решаю связать мой .rmd файл


########### needed for testing purpose #################

library(tree)
set.seed(77191)


library(ISLR)
library(randomForest)
attach(Carseats)
n=nrow(Carseats)
indices=sample(1:n,n/2,replace=F)
cstrain=Carseats[indices,]
cstest=Carseats[-indices,]

tree.cs <- tree(Sales ~. , data = cstrain)
summary(tree.cs)
plot(tree.cs)
text(tree.cs)
y_hat <-predict(tree.cs, newdata = cstest)
test.mse =mean((y_hat - cstest$Sales)^2)  #Test's MSE
test.mse
######################################################

# 2nd chunk
cv.cs <- cv.tree(tree.cs)
cx =cv.cs$size
cy =cv.cs$dev
mymy <- xy.coords(cx,cy)
plot(mymy, xlab = "size", ylab = "dev",  type = "b")
mini.tree <-which.min(cv.cs$dev)
points(mini.tree,cv.cs$dev[mini.tree], col="green", cex= 2, pch = 20)

2-й чанк Выход: ![enter image description here


#3rd chunk
#pruning
prune.cs <- prune.tree(tree.cs, best = mini.tree)
plot(prune.cs) # the problematic part

y_hat <- predict(prune.cs, newdata = cstest)

mean((y_hat - cstest$Sales)^2)

3-й блок должен дать что-то похожее на это: enter image description here Не дубликат:

'x' - список, но он нет компонентов 'x' и 'y'

Ошибка в xy.coords (x, y, xlabel, ylabel, log): «x» - это список, но не имеет компоненты 'x' и 'y'

Не удалось решить проблему:

Установить классификатор дерева решений для данных; Ошибка в коде

Я знаю о координатах, которые требуется plot () для запуска, но здесь я пытаюсь построить дерево. Кроме того, раньше он работал много раз, но не просто связал файл.

1-й патрон добавляется на случай, если вы захотите попробовать его самостоятельно.

Спасибо.

1 Ответ

2 голосов
/ 02 апреля 2020

Я полагаю, ваша проблемная строка c должна быть

prune.cs <- prune.tree(tree.cs, best = cv.cs$size[mini.tree])

вместо

prune.cs <- prune.tree(tree.cs, best = mini.tree)

Вам не интересен индекс, который может меняться каждый раз, когда вы делаете проверка, но размер дерева по этому индексу.

То же самое верно для 2-го блока, где у вас есть

points(mini.tree,cv.cs$dev[mini.tree], col="green", cex= 2, pch = 20)

, который должен быть

points(cv.cs$size[mini.tree], cv.cs$dev[mini.tree], col="green", cex= 2, pch = 20)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...