R" ada"中的错误包:"目前此程序无法直接处理> 2课堂反应"

时间:2014-08-05 13:34:41

标签: r

我正在运行一个基本的ada模型,但我收到了一个奇怪的错误。

型号:

boost1 <- ada(response ~ . ,
              data = my_data_set, 
              subset  = as.logical(tmp_train$train),
              iter = 50      
)

我得到的错误是:

Error in ada.default(x, y, ..., na.action = na.action) : 
  Currently this procedure can not directly handle > 2 class response

我认为这意味着我的回应&#34;列有两个以上的因素,但它没有:

> length(levels(my_data_set$response))
[1] 2

还有什么可能导致这种情况吗?

1 个答案:

答案 0 :(得分:0)

事实证明问题出在子集中。该子集不包含TRUE值,因此,该子集具有少于2个响应类别。要检查您的子集是否正确,您可以尝试:

table(as.logical(tmp_train$train))

如果训练子集只有一个响应类,我相信可能会发生类似的问题。这是有道理的 - 例如,假设您正在尝试对两种不同类型的虹膜进行分类,并且您只使用一种类型训练模型。在这个例子中,模型不可能知道哪两个类型的特征是分开的,所以它会引发错误。