目前我正在尝试使用 knnMCN()
我正在以这种格式进行...
knnMCN(data, classification, data2, K=1, ShowObs=T)
文件 data、classification 和 data2 都是 .csv 文件。'data' 是我的训练数据,'classification' 是分类的单列文件(分类为 0、1 或 2),data2 是我要分类的数据集。
这些文件中只有数值。每当我运行此命令时,我都会收到错误消息:
Error in sort.list(y) : 'x' must be atomic for 'sort.list'
Have you called 'sort' on a list?
有人知道这里出了什么问题吗?有没有更好/不同的方法来做 K-Nearest Neighbors?
编辑:这些是 dput(head(data/classification/data2)) 的结果
数据:
structure(list(down = c(1L, 2L, 3L, 1L, 2L, 1L), yards_to_first = c(10L,
7L, 7L, 10L, 7L, 10L), yards_to_endzone = c(84L, 81L, 81L, 73L,
70L, 40L), score_difference = c(0L, 0L, 0L, 0L, 0L, 0L), quarter = c(1L,
1L, 1L, 1L, 1L, 1L), seconds_remaining = c(3595L, 3560L, 3554L,
3523L, 3476L, 3450L)), .Names = c("down", "yards_to_first", "yards_to_endzone",
"score_difference", "quarter", "seconds_remaining"), row.names = c(NA,
6L), class = "data.frame")
分类:
structure(list(play_type = c(0L, 1L, 1L, 0L, 1L, 1L)), .Names = "play_type",
row.names = c(NA,6L), class = "data.frame")
数据2:
structure(list(down = c(1L, 2L, 3L, 4L, 1L, 2L), yards_to_first = c(10L,
5L, 8L, 8L, 10L, 10L), yards_to_endzone = c(58L, 53L, 56L, 56L,
98L, 98L), score_difference = c(0L, 0L, 0L, 0L, 0L, 0L), quarter = c(1L,
1L, 1L, 1L, 1L, 1L), seconds_remaining = c(3593L, 3556L, 3515L,
3507L, 3496L, 3460L)), .Names = c("down", "yards_to_first", "yards_to_endzone",
"score_difference", "quarter", "seconds_remaining"), row.names = c(NA,
6L), class = "data.frame")