我希望大家都很好;我有一個問題可能會被視爲一個愚蠢的問題,但我真的需要有人爲我解釋它。我也認爲它對一些人有用,因爲之前有人問過他沒有滿意的答案。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
}
請能有人給我解釋一下代碼的源代碼?
我希望我以正確的形式發佈問題,請讓我知道是否必須將其移動到其他地方。
非常感謝您的時間。