Ошибка в обучении неиспользованным аргументам языка R - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь запустить R Сценарий, где я получаю ошибку поезда:

Ошибка в поезде (frm, data = грибами [train_idx,], method = "rpart", trControl = trControl,: неиспользуемые аргументы (данные = грибы [train_idx,], метод = "rpart", trControl = trControl, tuneGrid = rpart.grid, metric = "Точность")

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

caret, ggplot2, dplyr, gridExtra, gmodels, ggparallel, rpart.plot, sqldf, readxl
mushrooms <- read_excel("~/Desktop/Rlang/Mushroom.xlsx")
View(mushrooms)
fields <- c("class",
            "cap_shape",
            "cap_surface",
            "cap_color",
            "bruises",
            "odor",
            "gill_attachment",
            "gill_spacing",
            "gill_size",
            "gill_color",
            "stalk_shape",
            "stalk_root",
            "stalk_surface_above_ring",
            "stalk_surface_below_ring",
            "stalk_color_above_ring",
            "stalk_color_below_ring",
            "veil_type",
            "veil_color",
            "ring_number",
            "ring_type",
            "spore_print_color",
            "population",
            "habitat")

colnames(mushrooms) <- fields

set.seed(1023)
train_idx <- createDataPartition(mushrooms$class, p=0.6, list=FALSE)
trControl <- trainControl(method = "repeatedcv",  number=10, repeats=5, verboseIter=TRUE)

frm <- paste("class ~ ", paste(relevant_features, collapse="+"))
frm

rpart.grid <- expand.grid(.cp=0)

rpart_fit <- train(frm, 
                     data = mushrooms[train_idx,], 
                     method ="rpart", 
                     trControl = trControl,
                     tuneGrid=rpart.grid,
                     metric = 'Accuracy') 

1 Ответ

0 голосов
/ 06 июня 2018

Самой большой проблемой в вашем коде был вызов frm.Как сказал @Roland, вам нужно сделать as.formula.Код ниже работает.Я также включил деталь для удаления столбцов с нулевой дисперсией, которые мешают использовать поезд с вызовом формулы при настройке контрастов.

library(readxl)
mushrooms <- read_excel("Mushroom.xlsx")

fields <- c("class",
            "cap_shape",
            "cap_surface",
            "cap_color",
            "bruises",
            "odor",
            "gill_attachment",
            "gill_spacing",
            "gill_size",
            "gill_color",
            "stalk_shape",
            "stalk_root",
            "stalk_surface_above_ring",
            "stalk_surface_below_ring",
            "stalk_color_above_ring",
            "stalk_color_below_ring",
            "veil_type",
            "veil_color",
            "ring_number",
            "ring_type",
            "spore_print_color",
            "population",
            "habitat")

colnames(mushrooms) <- fields

library(caret)
library(rpart)

y <- "class"
cols_to_remove <- names(mushrooms)[nearZeroVar(mushrooms)]

#[1] "gill_attachment" "veil_type"       "veil_color"  

relevant_features <- setdiff(names(mushrooms), c(y, cols_to_remove))

mushrooms$class <- as.factor(mushrooms$class)

set.seed(1023)
train_idx <- createDataPartition(mushrooms$class, p=0.6, list=FALSE)
trControl <- trainControl(method = "repeatedcv",  number=10, repeats=5, verboseIter=TRUE)

frm <- as.formula(paste("class ~ ", paste(relevant_features, collapse="+")))

rpart.grid <- expand.grid(.cp=0)

rpart_fit <- train(frm, 
                   data = mushrooms[train_idx, ], 
                   method ="rpart", 
                   trControl = trControl,
                   tuneGrid=rpart.grid,
                   metric = "Accuracy") 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...