Я пытался создать эту программу или узнать, как получить доступ к тому, что делает KKNN для получения своих результатов. Я использую функцию и пакет KKNN, чтобы помочь предсказать будущую статистику бейсбола. Он принимает 11 переменных предиктора (предыдущие 3 года статистики, PA и уровень, а также возраст и другой предиктор). Прогнозы работают отлично, но я надеюсь, что когда я предскажу только одного игрока (так как это было бы смешно, если предсказывать 100 игроков), я хотел бы видеть, возможно, 3 ближайших соседей к игроку, о котором идет речь, и их предыдущие статистика с тем, что они произвели в следующем году. Меня больше всего интересует имя ближайших соседей, поскольку знание того, кто из игроков ближе всего, даст контекст предсказанию, которое он делает.Найти имена ближайших соседей из пакета KKNN
Я в порядке с попыткой редактировать фактический код функции, если это единственный способ получить от них. Даже обнаружение индексов было бы полезно, поскольку я мог бы вернуться оттуда, чтобы получить имена. Большое вам спасибо за вашу помощь!
Ниже приведен пример кода, который должен помочь:
name=c("McGwire,Mark","Bonds,Barry","Helton,Todd","Walker,Larry","Pujols,Albert","Pedroia,Dustin")
z
lag1=c(100,90,75,89,95,70)
lag2=c(120,80,95,79,92,90)
Runs=c(65,120,105,99,65,100)
full=cbind(name,lag1,lag2,Runs)
full=data.frame(full)
learn=full
learn
learn$lag1=as.numeric(as.character(learn$lag1))
learn$lag2=as.numeric(as.character(learn$lag2))
learn$Runs=as.numeric(as.character(learn$Runs))
valid=learn[5,]
learn=learn[-5,]
valid
k=kknn(Runs~lag1+lag2,learn,valid,k=2,distance=1)
summary(k)
fit=fitted(k)
fit
Вот функция, что я на самом деле вызова, если это поможет вам адаптировать свои ответы на обходные пути!
kknn(RVPA~(lag1*lag1LVL*lag1PA)+(lag2*lag2LVL*lag2PA)+(lag3*lag3LVL*lag3PA)+Age1+PAsize, RV.learn, RV.valid,k=86, distance = 1,kernel = "optimal")
Интересно, спасибо, что нашли время ответить! В моем полном наборе данных я использую «оптимальное» ядро для kknn. Есть ли способ заставить FNN использовать тот же самый ядро, что и kknn, чтобы гарантировать, что они используют одни и те же соседи? Это похоже на отличный ответ, хотя так спасибо! Целью познания, которые являются ближайшими соседями, является предоставление контекста предсказанию. Кроме того, я мог бы использовать 40 ближайших соседей и их тренды, чтобы придумать какой-то прорыв/сбой/улучшение/процент регрессии на основе их статистики, если это имеет смысл! – BaseballR
Это то, что я на самом деле вызываю в своей реальной функции, поскольку мне нужно попытаться построить get.knnx, чтобы соответствовать этому, как бы я это сделал? kknn (RVPA ~ (lag1 * lag1LVL * lag1PA) + (lag2 * lag2LVL * lag2PA) + (lag3 * lag3LVL * lag3PA) + Age1 + PAsize, RV.learn, RV.valid, k = 86, distance = 1, kernel = "оптимальный") – BaseballR