1、花了少量时间补充上周五的小结
2、然后开始继续抄作业
- kernel去除outliers的方法是用的常数,-0.4和0.4,为什么这样设计,并没有给出说明,这个值是介于2 delta和3 delta之间
- 缺失值处理方面,全部用-1填补
- 对于类型为object的变量,使用了一个sklearn.preprocessing中的LabelEncoder,这个类使用上需要建立一个实例,使用方法很简单,一个fit产生编码,transform用编码去替代,从0开始编码到n-1
lbl = LabelEncoder() lbl.fit(list(column.values)) column = lbl.transform(list(column.values)) - 这个kernel用到的算法就是单纯的xgb,这里多涉及到一个参数,base_score,这个其实就是init_score,就好比之前sklearn的GBDT用的初始预测就是logOdds
- xgb最耗时的是,DMatrix的转换,应该是用控件换时间,我一个150M的数据集转换出来是1.2G,所以大的数据集转换了要序列化到硬盘,下次可以直接载入
xgb.cv用于交叉验证,num_boost_round是最大迭代次数,early_stopping_rounds,测试集50 round没有提升迭代cv_result = xgb.cv(xgb_params, dtrain, nfold=5, num_boost_round=1000, early_stopping_rounds=50, verbose_eval=10, show_stdv=False )

这篇博客回顾了使用LabelEncoder处理分类变量和xgb.cv进行交叉验证的过程。文中提到,kernel中用常数-0.4和0.4去除outliers的原因未明确,而缺失值用-1填充。对于类型为object的变量,应用LabelEncoder进行编码。此外,讨论了xgb中最耗时的DMatrix转换,并解释了xgb.cv的参数含义。最后,作者尝试了不同离群值处理方法,但未能达到预期效果,认为3 delta方法更合理。
最低0.47元/天 解锁文章
720

被折叠的 条评论
为什么被折叠?



