r - R 不显示结果
问题描述
这是我第一次提出问题。
我试图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)
}
解决方案
你从你的教授那里得到了这个代码,所以我不确定这个练习的目的是什么。我会告诉你,要真正看到函数的结果,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
推荐阅读
- azure - Azure API 管理自动化
- lwjgl - LWJGL glDrawArrays 不绘制
- unit-testing - Polymer 1.x 单元测试间谍没有被调用
- angular - 无法绑定到“值”,因为它不是“ngx-select-dropdown”的已知属性
- python - Boto3 --> 修改 EC2 的实例以拥有多个安全组
- jenkins - 如何自动化 Jenkins 作业以在特定时间段内禁用自身然后启用自身?
- javascript - 使用 JSON 和屏幕截图生成带有黄瓜 4 的 HTML 报告
- python - 如何在 Pandas 中读取带有引号字符和逗号的 CSV 文件?
- c - 在 c 中打印 char 常量的大小
- duplicates - Mautic-Pipedrive 中的重复/三重触点