R не отображает результаты - PullRequest
0 голосов
/ 14 декабря 2018

Это первый раз, когда я задаю вопрос.

Я пытаюсь найти лучший K при запуске Knn, но код, полученный от профессора, похоже, не отображает результатиз лучших K и Rmse.

Пыльник - это то, что я набрал на консоли.Я ценю помощь!

#rm(list=ls())
gc()
#setwd('/******/Desktop/Applied/isds 574/R')
dat = read.csv('cleaned.csv', stringsAsFactors=T, head=T)

#dropping Longtitude and Latitude
dat$longitude = NULL 
dat$latitude = NULL
dat$X = NULL


#Factors 

dat$ocean_proxy_dummy = as.factor(dat$ocean_proxy_dummy)

# divide the data into 2 sets: training and validation
set.seed(1) 
id.train = sample(1:nrow(dat), nrow(dat)*.6) 
id.test = setdiff(1:nrow(dat), id.train) 

#KNN2
library(FNN)
Knn.reg.bestK = function(xtrain, xtest, ytrain, ytest, Kmax = 10) { 
  vec.rmse = rep(NA, Kmax) 
  for (K in 1:Kmax) { 
    yhat.test = Knn.reg(xtrain, xtest, ytrain, k)$pred 
    vec.rmse[K] = rmse(yhat.test, ytest) 
  }  
  list(K.opt = which.min(vec.rmse), rmse.min = min(vec.rmse), vec.rmse)
}

1 Ответ

0 голосов
/ 14 декабря 2018

Вы получили этот код от своего профессора, поэтому я не уверен, какова цель этого упражнения.Я скажу вам, что для фактического просмотра результатов функции Knn.reg.bestK() вам нужно будет вызвать эту функцию для ваших данных.

Knn.reg.bestK(xtrain, xtest, ytrain, ytest)

Но прежде чем сделать это, вам нужно установить имена переменных в соответствующие значения.

xtrain = id.train$variables #This is a dataframe of predictors
ytrain = id.train$response  #This is your outcome variable
...