我正在运行一个基本的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
还有什么可能导致这种情况吗?
答案 0 :(得分:0)
事实证明问题出在子集中。该子集不包含TRUE值,因此,该子集具有少于2个响应类别。要检查您的子集是否正确,您可以尝试:
table(as.logical(tmp_train$train))
如果训练子集只有一个响应类,我相信可能会发生类似的问题。这是有道理的 - 例如,假设您正在尝试对两种不同类型的虹膜进行分类,并且您只使用一种类型训练模型。在这个例子中,模型不可能知道哪两个类型的特征是分开的,所以它会引发错误。