Рассмотрит эту регрессионную проблему со следующим обучающим:Постоянно получать различные предсказания для небольшого набора данных при использовании Knn (к = 2) в R
Я хочу, чтобы предсказать 2-ближайший сосед предсказание для каждого объекта - однако я постоянно получаю разные предсказания каждый раз, когда я вызываю функцию knn. Если это так? Вот код, я использую:
library(class)
test <- train <- matrix(c(-1, 0, 2, 3),,1)
cl <- c(0, 1, 2, 1)
knn(train, test, cl, k=2)
Выход:
> knn(train, test, cl, k=2)
[1] 1 1 2 2
Levels: 0 1 2
> knn(train, test, cl, k=2)
[1] 0 0 1 2
Levels: 0 1 2
> knn(train, test, cl, k=2)
[1] 1 1 1 2
Levels: 0 1 2
> knn(train, test, cl, k=2)
[1] 0 0 1 2
Levels: 0 1 2
бы реально оценить какие-либо разъяснения.
Извините, теперь вы можете отредактировать его действие. Я устанавливаю k = 3 и все равно получаю разные результаты, я не уверен, что не так – v0vk
'k = 3' не поможет: вы всегда получите' 1' за последние две строки, потому что единственная метка, которая встречается дважды (и таким образом, может выиграть сразу) составляет '1', и только последние две строки достаточно близки, чтобы выбрать оба. Первые две строки всегда будут иметь 3 разных ярлыка и, таким образом, всегда будут случайным выбором среди них. –