【问题标题】:"Something is wrong; all the Accuracy metric values are missing" Error in Caret Training“出了点问题;所有准确度指标值都丢失了”插入符号训练中的错误
【发布时间】:2016-07-10 23:03:12
【问题描述】:

我遇到了与 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)

任何人都可以提供的任何帮助都会非常有帮助。

【问题讨论】:

  • 你的数据集中xy是什么?
  • 检查警告。他们倾向于给出一个想法。
  • @tcash21 它在代码部分。 x是前15个变量,y是第16个变量(Case.Status)
  • @phiver 警告看起来像这样:'> warnings() 警告消息:1:在 eval(expr, envir, enclos) : 模型拟合失败为 Fold01.Rep1: size=30, k = 1 lvq3 错误(x, y, lvqinit(x, y, size = param$size, k = min(param$k, : 未使用的参数 (data = list(A1c = c(5, 8.5, 5.5, 5.9, 5.1, 6.2, 6.4, 5.7, 4.8, 5.4, 6, 5.9, 7.3, 5.4, 6.2, 6.3, 10.2, 7, 8.5, 5.6, 6.2, 8.5, 12.7, 6, 6.1, [...截断]'

标签: r r-caret


【解决方案1】:

您使用的是默认表示法(xy),而不是公式表示法(Y ~ .)。无需指定 data = 参数。改成:

model <- train(x, y, method="lvq", preProcess="scale", trControl=control)

这应该可以解决问题。

【讨论】:

  • 我尝试删除 data= 参数,但我仍然收到错误消息。现在我所有的警告看起来像这样:警告消息:1:在 eval(expr,envir,enclos)中:Fold01.Rep1 的模型拟合失败:size=30,k=1 lvq3 中的错误(x,y,lvqinit(x , y, size = param$size, k = min(param$k, : 不允许有缺失值
  • 问题一已解决。问题二,您的数据中缺少值。您必须通过估算缺失值或删除发生这种情况的情况来解决此问题。
猜你喜欢
  • 1970-01-01
  • 2016-01-10
  • 2015-08-14
  • 2015-08-09
  • 2021-04-01
  • 2015-09-01
  • 2016-12-21
  • 2020-12-14
  • 2017-09-29
相关资源
最近更新 更多