同样的k,不同的结果

时间:2015-07-31 15:45:03

标签: r knn

我有一个matriz ZZ。运行 prcomp 并选择前5台PC后,我得到data_new

P= prcomp(zz)
data_new = P$x[,1: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 中得到一个不同的值。为什么呢?

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

1 个答案:

答案 0 :(得分:2)

来自knn的文档,

  

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

如果您不希望发生随机化,您可以使用set.seed来确保相同的&#34;随机化&#34;每次运行。