首页 > 解决方案 > R 不显示结果

问题描述

这是我第一次提出问题。

我试图K在运行时找到最好的,Knn但我从教授那里得到的代码似乎没有显示最好的结果KRmse.

贝娄是我在控制台上输入的。感谢您的帮助!

#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)
}

标签: rknn

解决方案


你从你的教授那里得到了这个代码,所以我不确定这个练习的目的是什么。我会告诉你,要真正看到函数的结果,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

推荐阅读