【新人赛】阿里云恶意程序检测每周总结

调整随机种子和取平均

ngram(ngram_range(1, 3))固定

random_state=4:0.473048

train-mlogloss:0.06956 val-mlogloss:0.298036

random_state=42:0.472576

train-mlogloss:0.07944 val-mlogloss:0.297976

random_state=8:0.474908

train-mlogloss:0.072324 val-mlogloss:0.313219

random_state=0:0.473606

train-mlogloss:0.061369 val-mlogloss:0.285387

四个随机种子结果取平均:0.471909

  • 结果平均之后效果更好的原因

随机种子不同,生成的训练集和验证集不同,数据的分布变得不一样了,同样的 xgboost 模型,学习到的分布规律不同,四个结果取平均值后模型的泛化能力更好,对没有遇到过的线上的测试集有更好的预测效果。

修改 xgboost 参数 subsample

ngram(ngram_range(1, 3))固定,random_state=42 固定

subsample=0.8(默认设置参数):0.472576

train-mlogloss:0.07944 val-mlogloss:0.297976

subsample=0.7:0.474967

train-mlogloss:0.073961 val-mlogloss:0.297218

subsample=0.9:0.472149

train-mlogloss:0.085089 val-mlogloss:0.296884

subsample=1.0:0.471710

train-mlogloss:0.0727 val-mlogloss:0.300373

  • 推测结论

subsample 参数用于训练模型的子样本占整个样本集合的比例。如果设置为 0.5 则意味着 xgboost 将随机的冲整个样本集合中随机的抽取出 50% 的子样本建立树模型,这能够防止过拟合。选用所有样本效果最好,应该是因为训练集数据量并不够多,模型处于欠拟合的状态,增加数据量会使模型效果更好。

阅读代码和调参经验

拿到代码先跑一遍看能不能跑通,一般遇到的问题就是没有安装 python 库、文件路径或者版本问题,在网上搜索之后一般比较容易解决。能得出结果之后先大致浏览一遍代码,知道每部分大概的作用是什么,了解代码的执行流程。之后认真阅读每一部分的代码的时候比较需要时间,看不懂和没接触过的函数调用之类的一方面在网上查函数的作用和需要的参数,另一方面在编译器或者 jupyter 里面一句一句运行,看代码的运行过程和得到的结果,并且做好注释或者记笔记。认真阅读完代码之后应该就对整个的代码有了比较细致的了解。

需要优化模型调整参数的时候,先多搜索并且思考优化的思路,然后固定其他参数调整某一个参数,及时记录结果并且思考结果背后可能的原因。多学习一些 trick,从得到的结果能够更好地了解要解决的问题和所使用的模型。

学习 xgboost 原理

通俗理解kaggle比赛大杀器xgboost

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值