R knn-相同的k,不同的结果

R knn-相同的k,不同的结果,r,knn,R,Knn,我有一个matriz。在我运行prcomp并选择前5台电脑后,我获得了新数据: 然后我分为训练集和测试集 pca_train = data_new[1:121,] pca_test = data_new[122:151,] 并使用KNN: k <- knn(pca_train, pca_test, tempGenre_train[,1], k = 5) a <- data.frame(k) res <- length(which(a!=tempGenre_test)) 每次

我有一个matriz。在我运行prcomp并选择前5台电脑后,我获得了新数据:

然后我分为训练集和测试集

pca_train = data_new[1:121,]
pca_test = data_new[122:151,]
并使用KNN:

k <- knn(pca_train, pca_test, tempGenre_train[,1], k = 5)
a <- data.frame(k)
res <- length(which(a!=tempGenre_test))
每次运行最后3行时,我都会得到不同的res值。为什么

有没有更好的方法来检查什么是测试错误?

来自knn的文档

对于测试集的每一行,找到欧几里德距离训练集向量中最近的k,并通过多数投票决定分类,随机打破联系


如果您不想进行随机化,可以使用set.seed确保每次跑步时都进行相同的随机化。

谢谢!!!您能告诉我如何使用set.seed以及我应该选择什么值吗?使用set.seedx,其中x是任意数字。不同的值将产生不同的随机化,但使用相同的值将确保相同的复制。
k <- knn(pca_train, pca_test, tempGenre_train[,1], k = 5)
a <- data.frame(k)
res <- length(which(a!=tempGenre_test))