2

我正在使用 R-studio 并且正在使用 kaggle 的森林覆盖数据,并且在尝试在插入符号中使用 knn3 函数时不断出现错误。这是我的代码:

library(caret)
train <- read.csv("C:/data/forest_cover/train.csv", header=T)
trainingRows <- createDataPartition(train$Cover_Type, p=0.8, list=F)
head(trainingRows)
train_train <- train[trainingRows,]
train_test <- train[-trainingRows,]

knnfit <- knn3(train_train[,-56], train_train$Cover_Type)

最后一行在控制台中给了我这个:

Error in knn3.matrix(x, y = y, k = k, ...) : y must be a factor
4

1 回答 1

3

正如错误消息所述,y必须是一个因素(这里y是函数的第二个参数的名称)。在 R 中,因子变量用于表示分类数据。你可以y变成一个因素,factor(y)但它只会有1:7你的数据的水平。如果您想为您的因素提供更有意义的值,请尝试

train$Cover_Type <- factor(train$Cover_Type, levels=1:7, 
    labels=c("Spruce/Fir","Lodgepole Pine","Ponderosa Pine",
    "Cottonwood/Willow","Aspen",
    "Douglas-fir","Krummholz"))

这将使您的功能更快乐,并在结果中为您提供更多有用的标签

于 2014-07-12T00:47:41.103 回答