我有一个矩阵ZZ。在我运行prcomp并选择前 5 台 PC 后,我得到data_new:
P= prcomp(zz)
data_new = P$x[,1:5]
Run Code Online (Sandbox Code Playgroud)
然后我分成训练集和测试集
pca_train = data_new[1:121,]
pca_test = data_new[122:151,]
Run Code Online (Sandbox Code Playgroud)
并使用 KNN:
k <- knn(pca_train, pca_test, tempGenre_train[,1], k = 5)
a <- data.frame(k)
res <- length(which(a!=tempGenre_test))
Run Code Online (Sandbox Code Playgroud)
每次运行最后 3 行时,我都会在res中得到不同的值。为什么?
有没有更好的方法来检查测试错误是什么?
从 的文档来看knn,
对于测试集的每一行,找到k个最近的(欧氏距离)训练集向量,并通过多数投票决定分类,并随机打破平局。
如果您不希望发生随机化,则可以使用它set.seed来确保每次运行都有相同的“随机化”。
| 归档时间: |
|
| 查看次数: |
3597 次 |
| 最近记录: |