我在使用R
中的Caret
来运行xgboost
算法,以解决一个机器学习分类问题。
运行以下R
代码后,我收到了如下的警告信息:
cl <- makeCluster(10, type = "SOCK")
registerDoSNOW(cl)
caret.cv <- train(market ~ .,
data = mydata.train,
method = "xgbTree",
tuneGrid = tune.grid,
trControl = train.control)
Warning messages:
1: closing unused connection 12 (<-[-John-laptop.mycompany.local:11916)
2: closing unused connection 11 (<-[-John-laptop.mycompany.local:11916)
3: closing unused connection 10 (<-[-John-laptop.mycompany.local:11916)
4: closing unused connection 9 (<-[-John-laptop.mycompany.local:11916)
5: closing unused connection 8 (<-[-John-laptop.mycompany.local:11916)
6: closing unused connection 7 (<-[-John-laptop.mycompany.local:11916)
7: closing unused connection 6 (<-[-John-laptop.mycompany.local:11916)
8: closing unused connection 5 (<-[-John-laptop.mycompany.local:11916)
9: closing unused connection 4 (<-[-John-laptop.mycompany.local:11916)
10: closing unused connection 3 (<-[-John-laptop.mycompany.local:11916)
我可以忽略这些警告继续进行分析吗,还是说背后有什么问题?
回答:
这个太长了,不适合作为评论…
当你启动集群时,R 会与每个进程建立连接。这些警告信息仅仅是连接被自动关闭的提示。
更优雅的做法是停止你的集群并显式地关闭它们,但如果你没有遇到任何问题,你可以合理地忽略这些警告。
像stopCluster(cl)
这样的命令(取决于你加载了哪些库)会停止集群,但有时候你仍然会收到关于未使用连接的错误信息 – 这不太可能是一个真正的问题,因为你并没有接近连接限制。
请注意,10个线程对于笔记本电脑来说可能过多 – 你可以尝试使用parallel
包中的detectCores()
来获取处理器数量,并使用这个数量。