我遇到与here相同的问题,但解决方案对我不起作用。我不确定我做错了什么......
这是我的代码:
# ensure results are repeatable
set.seed(7)
# load the library
library(caret)
# load the dataset
dataset <- read.csv("C:\\Users\\asholmes\\Documents\\diabetes_r.csv", na.strings='.')
#convert to data frame
as.data.frame(dataset, stringsAsFactors=TRUE)
#create x and y
x <- dataset[, 1:15]
y <- dataset[, 16]
# prepare training scheme
control <- trainControl(method="repeatedcv", number=10, repeats=3)
# train the model
model <- train(x, y, data=dataset, method="lvq", preProcess="scale", trControl=control)
这是我的数据:
> str(dataset)
'data.frame': 2777 obs. of 16 variables:
$ A1c : num 5 8.5 5.5 5.9 5.1 6.2 6.4 5.7 4.8 5.4 ...
$ BP_CAT : Factor w/ 3 levels "Hypertension",..: 3 1 1 3 1 3 3 3 3 3 ...
$ BMI_CAT : Factor w/ 4 levels "Normal","Obese",..: 3 2 2 2 2 2 2 2 2 3 ...
$ Creatinine : num 0.8 0.8 0.7 0.7 0.6 1.2 0.6 1.4 1.1 0.6 ...
$ LDL : num 86 51 107 102 NA 79 82 79 150 NA ...
$ BUN : num 14 9 10 15 12 13 7 15 16 16 ...
$ Triglycerides: num 221 77 98 121 NA 324 151 88 97 841 ...
$ Age : num 55 57 24 55 38 51 44 35 25 48 ...
$ Gender : Factor w/ 2 levels "F","M": 1 1 1 1 1 2 1 1 1 1 ...
$ Claims : num 13 394 15 18 11 33 9 1 13 3 ...
$ Presc : num 47 227 85 58 29 190 0 2 6 6 ...
$ Months : Factor w/ 12 levels "1","2","3","4",..: 9 12 12 12 12 12 12 12 12 12 ...
$ Expenditure : num 2877 71859 7494 5196 2500 ...
$ Health.Plan : Factor w/ 20 levels "AFFMCD ","HFMCD",..: 9 6 2 2 2 2 4 2 2 2 ...
$ Flag : Factor w/ 12 levels "Asthma","CKD",..: 1 4 8 8 1 3 10 10 10 10 ...
$ Case.Status : Factor w/ 6 levels "Closed","Deferred",..: 6 4 4 4 1 4 6 4 4 4 ...
但是,当我运行最后一行代码时,我收到错误:
Something is wrong; all the Accuracy metric values are missing:
Accuracy Kappa
Min. : NA Min. : NA
1st Qu.: NA 1st Qu.: NA
Median : NA Median : NA
Mean :NaN Mean :NaN
3rd Qu.: NA 3rd Qu.: NA
Max. : NA Max. : NA
NA's :9 NA's :9
Error in train.default(x, y, data = dataset, method = "lvq", preProcess = "scale", :
Stopping
In addition: There were 50 or more warnings (use warnings() to see the first 50)
任何人都可以提供任何帮助都非常有用。
答案 0 :(得分:2)
您使用的是默认表示法(x
和y
),而不是公式表示法(Y ~ .
)。无需指定data =
参数。将其更改为:
model <- train(x, y, method="lvq", preProcess="scale", trControl=control)
这应该可以解决问题。