2017.07.31回顾 LabelEncoder xgb.cv

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

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,所以大的数据集转换了要序列化到硬盘,下次可以直接载入
  • cv_result = xgb.cv(xgb_params,
                       dtrain,
                       nfold=5,
                       num_boost_round=1000,
                       early_stopping_rounds=50,
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值