全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1351 5
2018-04-09
credit.xlsx
大小:(98.68 KB)

 马上下载


复制代码
Error in train(default ~ ., data = credit, "bag", trControl = ctrl, bagControl = bagctrl) :   unused arguments (data = credit, trControl = ctrl, bagControl = bagctrl)代码出自这本书的P245页,关于集成学习的部分。试了很多遍都不知道错在哪里,请大家帮忙看看如何处理。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-4-10 10:09:28
R里的caret包和mlr包都有一个强大的train函数,它俩重名,调用时需要指定是哪个,用caret::train试试。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-4-10 10:31:19
兰茨的那本《机器学习与R语言》(原书第2版)我也从头到尾学过,很不错的入门教程,但是确实比较浅,很多代码可以在自己日后学习中将其不断完善以致适用面更广、更强大。
关于bagging自助汇聚法,其实caret包更多是直接调用train函数,并配合trControl、tuneGrid或tuneLength几个参数去进行参数调优。比如我学过那本书之后,上网参考了caret包的官方教程,修改了代码形成了自己的“套路”:
复制代码


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-4-10 11:11:45
narcissism0923 发表于 2018-4-10 10:31
兰茨的那本《机器学习与R语言》(原书第2版)我也从头到尾学过,很不错的入门教程,但是确实比较浅,很多代码 ...
学习了,但是您发的代码只包含了调参数的部分,也就是只训练了一个分类器,如果要训练多个基分类器,应该怎么做呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-4-10 11:26:16
lanlanmei 发表于 2018-4-10 11:11
学习了,但是您发的代码只包含了调参数的部分,也就是只训练了一个分类器,如果要训练多个基分类器,应该 ...
每个学习器都有自己独特的参数,要调试参数最好一个个分别做,最后的结果可以汇总比较的。比如:
复制代码


当然,也可以把一堆学习器放一起调试,但那样的代码比较复杂,mlr包里的流程更清晰些。
我目前的“套路”是,先用一堆学习器一起学习一次,综合比较下谁的结果最好,挑出精度和时间综合平衡下最好的两三个学习器,再分别一个个调参,然后再利用调优的参数进行交叉验证,最后将验证结果放一起综合比较。
就我目前的水平来说,随机森林和xgboost是“黑箱”类中常常领先的两个学习器,尤其是xgboost,速度快、效果好!偶尔有earth、glmnet、nntrain这样的学习器在某些数据集上也不错,因为它们常常耗时更少。svm支持向量机综合起来精度不如随机森林和xgboost,速度更比不过xgboost。还有一类就是深度学习,如h2o的deeplearning,效果也不错,就是慢……
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-4-10 11:50:03
narcissism0923 发表于 2018-4-10 11:26
每个学习器都有自己独特的参数,要调试参数最好一个个分别做,最后的结果可以汇总比较的。比如:
我现在试了几个学习器后,也发现随机森林效果比较好,xgboost还没有试。我现在就像把bagControl这一项加到train函数中,这样能实现多个分类器的综合评价,但是总是出现错误,也不知道哪里出了问题。还有一点,我发现交叉验证方法实质上就相当于一个bagging过程了,不知道这样理解对吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群