我有一个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 中得到一个不同的值。为什么呢?
有没有更好的方法来检查测试错误是什么?
答案 0 :(得分:2)
来自knn
的文档,
对于测试集的每一行,找到k个最近(欧几里德距离)训练集向量,并且通过多数投票决定分类,并且在随机处打破关系。
如果您不希望发生随机化,您可以使用set.seed
来确保相同的&#34;随机化&#34;每次运行。