knn-相同的k,不同的结果 [英] knn- same k, different result

查看:209
本文介绍了knn-相同的k,不同的结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Matriz ZZ.在运行 prcomp 并选择了前5台PC后,我得到了data_new:

I have a matriz ZZ. After I ran prcomp and chose the first 5 PCs I get data_new:

P= prcomp(zz)
data_new = P$x[,1:5]

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

then I split into training set and test set

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 中都会得到一个不同的值.为什么?

Each time I run these 3 last rows, I get a different value in res. Why?

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

Is there a better way to check what is the test error?

推荐答案

来自knn的文档,

对于测试集的每一行,找到k个最近的(在欧几里得距离中)训练集矢量,并且分类由多数投票决定,并且在 random 断开关系.

如果您不希望发生随机化,则可以使用set.seed来确保每次运行都具有相同的随机化".

If you don't want the randomization to occur, you could use set.seed to ensure the same "randomization" on each run.

这篇关于knn-相同的k,不同的结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆