错误:列车和测试中的级别集不匹配(knncat R)

时间:2015-04-20 18:43:42

标签: r machine-learning classification knn

我正在尝试使用R中的knncat进行knn分类,因为我的数据集中有分类属性。

knncat(FinalData, FinalTestData, k=10, classcol = 15)

当我执行上述语句时,它给出了以下错误:train和test中的级别集不匹配。

在检查所有属性的级别时,我确实得到了改变。我有一个country属性,可以在列车数据集中取1-41个值。

但是,在测试数据集中,某个特定国家/地区永远不会出现,因此会导致此错误。我该如何处理?

2 个答案:

答案 0 :(得分:2)

我不确定,但您可以按照以下因素匹配。

train <- factor(c("a","b","c"))
test <- factor(c("a","b"))
levels(test) <- levels(train)
test   
[1] a b
Levels: a b c

答案 1 :(得分:0)

也许我错了,但这不会有问题,因为KNN algorithm的调整基于Euclidian distance calculations,对吧? 您是否仍然需要为分类功能的每个级别创建二进制变量,这意味着如果某些级别可能不会出现在训练集和测试集中,则会出现问题。

有人可能会对此表示启发。

另外,作为一个注释,这意味着更多的是刺激而不是劫持。