我对R中的ml相当陌生,并且正在尝试构建一个10倍交叉验证的xgboost模型。我在这里看到了文档:
https://www.rdocumentation.org/packages/xgboost/versions/1.1.1.1/topics/xgb.cv
然而,在该示例中,它纯粹使用训练数据,并且没有地方指定测试集或测试拆分。这对任何人来说都有意义吗?任何使用过该软件包的人都能帮助我了解这个交叉验证的模型到底是如何测试的吗?
感谢
xgboost包允许您选择是使用内置的交叉验证方法还是指定自己的交叉验证。
当然,你可以同时做这两件事,并看到区别!
如果你向下扫描你为xgb.cv方法链接的页面;细节";您将看到一些关于如何从已完成的模型中提取信息的简要细节。
10倍交叉验证方法意味着xgboost-cv算法在内部对数据进行连续分割,比例为10%用于测试,90%用于训练,以便依次使用所有数据。该算法的使用实际上制作并评估了十个不同的模型,并向您展示了结果。您可以手动或通过网格搜索来调整各种超参数以改进您的模型。
如果你想进行自己的数据分割而不是使用内置的交叉验证方法;香草";算法的形式:
型号<-xgboost(数据=……等(#在R 中
我认为xgb.cv公式的一个优点是,它可以让你访问更多的超参数进行调整。
使用自己的训练/测试分割而不是内置的cv版本的普通xgboost(….(模型可能更好,甚至在某些情况下是必不可少的,例如,在数据具有时间敏感结构的情况下。假设你对过去10年的销售数据感兴趣,最好将前9年的数据用于培训,并将最后一年作为测试集。
我所做的是从";香草";公式化,并使用默认参数构建模型。这成为我比较的基准模型。可以建立更复杂的连续模型,并将其性能与此基线进行比较。