在Caret中出现此错误

时间:2015-05-27 07:22:39

标签: r r-caret

我收到以下错误,我不知道可能出了什么问题。 我正在使用R Studio和3.1.3版本的R for Windows 8.1并使用Caret包进行数据挖掘。

我有以下培训数据:

str(training)

'data.frame':   212300 obs. of  21 variables:

 $ FL_DATE_MDD_MMDD     : int  101 101 101 101 101 101 101 101 101 101 ...

 $ FL_DATE              : int  1012013 1012013 1012013 1012013 1012013 1012013 1012013 1012013 1012013 1012013 ...

 $ UNIQUE_CARRIER       : Factor w/ 13 levels "9E","AA","AS",..: 11 10 2 5 8 9 11 10 10 10 ...

 $ DEST                 : Factor w/ 150 levels "ABE","ABQ","ALB",..: 111 70 82 8 8 31 110 44 53 80 ...

 $ DEST_CITY_NAME       : Factor w/ 148 levels "Akron, OH","Albany, NY",..: 107 61 96 9 9 29 106 36 97 78 ...

 $ ROUNDED_TIME         : int  451 451 551 551 551 551 551 551 551 551 ...

 $ CRS_DEP_TIME         : int  500 520 600 600 600 600 600 600 602 607 ...

 $ DEP_DEL15            : Factor w/ 2 levels "0","1": 1 2 1 1 1 1 1 2 1 1 ...

 $ CRS_ARR_TIME         : int  746 813 905 903 855 815 901 744 901 841 ...

 $ Conditions           : Factor w/ 28 levels "Blowing Snow",..: 2 2 2 2 2 2 2 2 2 2 ...

 $ Dew.PointC           : num  -14.4 -14.4 -14.4 -14.4 -14.4 -14.4 -14.4 -14.4 -14.4 -14.4 ...

 $ Events               : Factor w/ 10 levels "","Fog","Fog-Rain",..: 1 1 1 1 1 1 1 1 1 1 ...

 $ Gust.SpeedKm.h       : num  NA NA NA NA NA NA NA NA NA NA ...

 $ Humidity             : int  68 68 71 71 71 71 71 71 71 71 ...

 $ Precipitationmm      : num  NA NA NA NA NA NA NA NA NA NA ...

 $ Sea.Level.PressurehPa: num  1021 1021 1022 1022 1022 ...

 $ TemperatureC         : num  -9.4 -9.4 -10 -10 -10 -10 -10 -10 -10 -10 ...

 $ VisibilityKm         : num  16.1 16.1 16.1 16.1 16.1 16.1 16.1 16.1 16.1 16.1 ...

 $ Wind.Direction       : Factor w/ 18 levels "Calm","East",..: 9 9 7 7 7 7 7 7 7 7 ...

 $ WindDirDegrees       : int  320 320 330 330 330 330 330 330 330 330 ...

 $ Wind.SpeedKm.h       : num  20.4 20.4 13 13 13 13 13 13 13 13 ...

 - attr(*, "na.action")=Class 'omit'  Named int [1:22539] 3 32 45 87 94 325 472 548 949 1333 ...

  .. ..- attr(*, "names")= chr [1:22539] "3" "32" "45" "87" ...

当我执行以下命令时:

ldaModel <- train(DEP_DEL15~.,data=training,method="lda",preProc=c("center","scale"),na.remove=TRUE)

我明白了:

  

出了点问题;缺少所有准确度指标值:   准确度Kappa
   闵。 :NA Min。 :NA
   1 Qu。:NA 1st Qu。:NA
   中位数:NA中位数:NA
   平均值:NaN平均值:NaN
   第三曲:NA第三曲:NA
   最大。 :NA Max。 :NA
   NA:1 NA:1   train.default(x,y,weights = w,...)出错:停止

2 个答案:

答案 0 :(得分:5)

这可能是因为关于结果因素的级别为“0”和“1”。

发生这种情况时会发出特定警告:At least one of the class levels are not valid R variables names; This may cause errors if class probabilities are generated because the variables names will be converted to: X0, X1"

似乎人们统一忽略警告,所以我将在下一个版本中抛出错误。

答案 1 :(得分:0)

如果变量Gust.SpeedKm.hPrecipitationmm仅包含NA's,请在运行模型之前尝试从数据中省略这些变量。如果它们包含部分NA's并且您认为它们可以具有预测价值作为特征,那么使用估算。请遵循pre-processing in caret的此文档,包括插补。