cancer <- read.csv('breast-cancer-wisconsin.data', header = FALSE, na.strings="?")
cancer <- cancer[complete.cases(cancer),]
names(cancer)[11] <- "class"
cancer[, 11] <- factor(cancer[, 11], labels = c("benign", "malignant"))
library(gbm)
Во-первых, я удаляю значения «NA», используя complete.cases, и делаю одиннадцатый столбец, «класс», в качестве фактора. Я хочу использовать «класс» в качестве переменной ответа и другие столбцы, кроме первого, в качестве переменных-предикторов.
С первой попытки я набрал:
boost.cancer <- gbm(class ~ .-V1, data = cancer, distribution = "bernoulli")
Error in gbm.fit(x, y, offset = offset, distribution = distribution, w = w, :
Bernoulli requires the response to be in {0,1}
Затем я использую контрасты класса вместо класса.
boost.cancer <- gbm(contrasts(class) ~ .-V1, distribution = "bernoulli", data = cancer)
Error in model.frame.default(formula = contrasts(class) ~ . - V1, data = cancer, :
variable lengths differ (found for 'V1')
Как мне исправить эти ошибки? Я уверен, что с моим методом что-то не так.