我希望大家都很好;我有一个问题可能会被视为一个愚蠢的问题,但我真的需要有人为我解释它。我也认为它对一些人有用,因为之前有人问过他没有满意的答案。K最近的邻居与高尔距离测量在R
由于,我已混合数据类型的矩阵,我寻找K-nearst邻居算法用于与高尔距离工作在R.我发现功能Knngow包dprep声称能执行此之下。 http://finzi.psych.upenn.edu/library/dprep/html/knngow.html
函数带三个参数knngow(Training_Set,Testing_set,K_number)并返回预测的类。
我在玩弄它,想知道该功能如何识别我的目标矢量是什么?换句话说,它是如何返回预期的班级,而不是事先与我的目标栏目确认。
请看下面(我检索它使用功能编辑)
function (train, test, k)
{
p = dim(train)[2]
ntest = dim(test)[1]
ntrain = dim(train)[1]
classes = rep(0, ntest)
if (ntest == ntrain) {
for (i in 1:ntest) {
tempo = order(gower.dist(test[i, -p], train[-i,
-p]))[1:k]
classes[i] = moda(train[tempo, p])[1]
}
}
else {
for (i in 1:ntest) {
tempo = order(StatMatch::gower.dist(test[i, -p],
train[, -p]))[1:k]
classes[i] = moda(train[tempo, p])[1]
}
}
classes
}
请能有人给我解释一下代码的源代码?
我希望我以正确的形式发布问题,请让我知道是否必须将其移动到其他地方。
非常感谢您的时间。