rpart Caret «Аргумент параметры не совпадают» ошибка - PullRequest
0 голосов
/ 22 мая 2018

У меня проблемы с каретной моделью rpart.Когда я запускаю код в Части 1, я получаю следующую ошибку:

Часть 1

library(rpart)
library(caret)

creditNames <- c("Checking", "Duration", "CreditHistory", "Purpose",
                 "CreditAmount", "Savings", "Employment", 
                 "InstallmentRate", "GenderMarital", "OtherDebtors",
                 "YearsAtResidence", "RealEstate", "Age", 
                 "OtherInstallment", "Housing", "ExistingCredit",
                 "Job", "NumLiable", "Phone", "Foreign", "Credit")

url="http://archive.ics.uci.edu/ml/machine-learning-databases/statlog/german/german.data"
credit_data <- read.table(url, sep=" ", header = FALSE, 
                  col.names = creditNames, 
                  stringsAsFactors = FALSE)

creditHistory <- c(A30="All Paid", A31="All Paid This Bank",
                   A32="Up To Date", A33="Late Payment",
                   A34="Critical Account")
credit_data$CreditHistory <- as.factor(creditHistory[credit_data$CreditHistory])

credit_data$Credit <- ifelse(credit_data$Credit == 1, "Good", "Bad")
credit_data$Credit <- factor(credit_data$Credit, levels = c("Good", "Bad"))

fitControl <- trainControl(method = 'cv', number = 6)

Grid <- expand.grid(
                    cp=.02)

vars <- names(credit_data)[c(5,13,3,7)]
samp.f <- as.formula(paste(names(credit_data)[21], paste(vars, collapse = " + "),sep="~"))

myvars <- c("Credit", "CreditAmount", "Age") #"CreditHistory", ,  "Employment"


samp.m <- train(samp.f,
                data=credit_data,
                method='rpart',
                trControl = fitControl,
                tuneLength=20,
                metric = "Accuracy",
                tuneGrid = Grid,
                na.action = na.omit,
                params=list(split='information'))

Подгонка модели не удалась для Fold1: cp = 0,02 Ошибка в (функция (формула,data, weight, subset, na.action = na.rpart,: параметры аргумента не совпадают

Однако, когда я запускаю код в Части 2, я не получаю сообщение об ошибке.

Часть 2

for (test_cp in seq(.001,.02,.001)){
   test<-rpart(samp.f, dat=credit, cp=test_cp, maxdepth=5)
}

Есть предложения?

Я запускаю следующую настройку:

R version 3.4.4 (2018-03-15)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
other attached packages:
[1] caret_6.0-79    ggplot2_2.2.1   lattice_0.20-35 rpart_4.1-13 

1 Ответ

0 голосов
/ 22 мая 2018

Функция rpart не имеет параметров params, но имеет параметр parms.Таким образом, в поезде вам нужно использовать parms вместо params.

rpart (формула, данные, веса, подмножество, na.action = na.rpart, метод, модель = FALSE, x = FALSE, y= TRUE, parms , контроль, стоимость, ...)

samp.m <- train(samp.f,
                data=credit_data,
                method='rpart',
                trControl = fitControl,
                tuneLength=20,
                metric = "Accuracy",
                tuneGrid = Grid,
                na.action = na.omit,
  #-->#         parms=list(split='information'))
...