使用类包中的knn()查找R中的k最近邻

使用类包中的knn()查找R中的k最近邻,r,statistics,classification,data-mining,R,Statistics,Classification,Data Mining,这是家庭作业 我有两个矩阵,一个用于训练,一个用于测试。 数据有两列用于分类的数据,第三列为已知类别的数据。两个矩阵都有第三列 [1] [2] [3] [1] 6.4 0.32 2 [2] 4.8 0.34 0 [3] 4.9 0.25 2 [4] 7.2 0.32 1 其中整数是类(从0到2) 我的数据集的维数是训练集的1003,测试集的383 我已经尝试使用lbrary类的knn()函数 knn使用以下参数:(训练、测试、cl、k=1、l=0、prob=FALSE、use.all=

这是家庭作业

我有两个矩阵,一个用于训练,一个用于测试。 数据有两列用于分类的数据,第三列为已知类别的数据。两个矩阵都有第三列

    [1] [2] [3]
[1] 6.4 0.32 2
[2] 4.8 0.34 0
[3] 4.9 0.25 2
[4] 7.2 0.32 1
其中整数是类(从0到2)

我的数据集的维数是训练集的1003,测试集的383

我已经尝试使用lbrary类的knn()函数

knn使用以下参数:(训练、测试、cl、k=1、l=0、prob=FALSE、use.all=TRUE)

我曾试图直接使用我的数据集,但后来我得到了错误:“‘train’和‘class’的长度不同”

我试过几件事,但几个小时后我就卡住了。目前,我的编辑器中有以下代码:

cl <- t(factor(c(rep("0",1), rep("1",1), rep("2",1))))
k <- knn(train, test, cl)

cl如文件所述
cl
是训练集真正分类的
因素,即你的
y
变量(训练集的第三列)

这意味着功能应如下所示:

cl <- factor(c(2,0,2,1)) #or alternatively factor(train[,3])
k <- knn(train[,c(1,2)], test[,c(1,2)], cl)

cl如文件所述
cl
是训练集真正分类的
因素,即你的
y
变量(训练集的第三列)

这意味着功能应如下所示:

cl <- factor(c(2,0,2,1)) #or alternatively factor(train[,3])
k <- knn(train[,c(1,2)], test[,c(1,2)], cl)
cl