我发现了一个奇特的效果,即测试集的RMSE低于sample
带有caret
包装功能的训练集的RMSE 。
我的代码对训练和测试集进行了常见的划分:
set.seed(seed)
training.index <- createDataPartition(dataset[[target_label]], p = 0.8, list = FALSE)
training.set <- dataset[training.index, ]
testing.set <- dataset[-training.index, ]
Run Code Online (Sandbox Code Playgroud)
例如,0.651
这可以提供比训练集RMSE高的测试集RMSE- 0.575
如预期的那样。
遵循许多资料来源的建议,例如here,应该对数据进行混洗,因此在进行上述拆分之前我会这样做:
# shuffle data - short version:
set.seed(17)
dataset <- data %>% nrow %>% sample %>% data[.,]
Run Code Online (Sandbox Code Playgroud)
经过这种洗牌之后,测试集RMSE会低于0.528
训练集RMSE 0.575
!这个发现在包括在内的许多算法中是一致的lm, glm, knn, kknn, rf, gbm, svmLinear, svmRadial
。
据我所知,sample()的默认值为,replace = FALSE
因此不会有任何数据泄漏到测试集中。尽管createDataPartition
执行分层,但在分类(准确性和kappa)中也会出现相同的观察结果,因此应处理任何数据不平衡情况。
我不使用任何非常规配置,仅使用普通的交叉验证:
training.configuration <- trainControl(
method = "repeatedcv", number = 10 …
Run Code Online (Sandbox Code Playgroud) 为什么“rstudio-server start”不起作用??
在这一点上,即使在 stackoverflow 上我也找不到任何有用的答案。我从以下博客文章交叉检查了以下步骤 1-5 是否足以在 Ubuntu 上安装 Rstudio Server:https ://www.r-bloggers.com/installing-rstudio-server-on-ubuntu-server/ http://www.joeroe.eu/blog/2015/08/rstudio-server-on-a-google-compute-engine-instance/ https://gist.github.com/rweald/4321052
这是我所做的:
1. 创建谷歌云虚拟机
Google Cloud Compute Engine > 创建 VM 实例(在 Ubuntu 16.04 LTS 上)
2. 安装 R
sudo nano /etc/sources.list
Run Code Online (Sandbox Code Playgroud)
进入:
deb http://cran.rstudio.com/bin/linux/ubuntu xenial/
Run Code Online (Sandbox Code Playgroud)
获取 ubuntu 的公钥:
sudo apt-key adv —keyserver keys.gnupg.net —recv-key 381BA480
sudo apt-get update
sudo apt-get install r-base libapparmor1
sudo apt-get install r-base
Run Code Online (Sandbox Code Playgroud)
3.安装Rstudio服务器
sudo apt-get install gdebi-core
wget https://download2.rstudio.org/rstudio-server-1.0.143-amd64.deb
sudo gdebi rstudio-server-1.0.143-amd64.deb
Run Code Online (Sandbox Code Playgroud)
4.在谷歌云防火墙中打开8787端口
gcloud compute firewall-rules create allow-rstudio --allow tcp:8787 …
Run Code Online (Sandbox Code Playgroud) 我无法获得由Google Cloud命令行工具(gcloud)创建的vm实例的ssh访问权限.
症状:
sudo gcloud compute ssh myuser@ubuntu
ssh: connect to host 104.155.16.104 port 22: Connection refused
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].
Run Code Online (Sandbox Code Playgroud)
我做了什么:
1:验证端口22上的防火墙是否已打开
gcloud compute firewall-rules list
Run Code Online (Sandbox Code Playgroud)
回
NAME NETWORK SRC_RANGES RULES SRC_TAGS TARGET_TAGS
allow-rstudio default 0.0.0.0/0 tcp:8787 allow-rstudio
default-allow-http default 0.0.0.0/0 tcp:80 http-server
default-allow-https default 0.0.0.0/0 tcp:443
https-server
default-allow-icmp default 0.0.0.0/0 icmp
default-allow-internal default 10.128.0.0/9 tcp:0-65535,udp:0-65535,icmp
default-allow-rdp default 0.0.0.0/0 tcp:3389
default-allow-ssh default 0.0.0.0/0 tcp:22
Run Code Online (Sandbox Code Playgroud)
2:续订公钥
ssh-keygen -t rsa -f ~/.ssh/google_compute_engine -C myuser
Run Code Online (Sandbox Code Playgroud)
3:使用新公钥更新元数据
sudo gcloud …
Run Code Online (Sandbox Code Playgroud)