节奏不要乱,做应该做的事情,一些不应该做的事情需要克制!
1、上午就是抓取建模变量,对变量做一些初步encode的工作,集中注意力弄了一上午,应该完成了1/3
2 、继续zillow数据建模,有几点收获:
- xgboost的基分类器是CART,但是也可以用线性分类器,booster参数可以设置,似乎还有一个名叫dart的分类器,听朋友说是神经网络相关的
- 整理了所有变量的预处理方法
- 尝试了drop掉90% missing value的字段,但是在lb上效果很烂,CV好像是有所提升
- 又尝试drop掉了一些地区类的字段,也没能提升lb的排名
- 感觉到xgboost的这个方法根本不怕多喂他变量,不怕处理高度缺失值的变量
- 最后我尝试把某些变量转换成哑变量,方法是直接调用pd.get_dummies方法,这个方法有参数可以控制是否转换NaN,他常用参数形如
后面的prefix前缀于前面的df列数相对应,如果后面prefix少一个,前面有一列就不会被dummy,这个函数返回一个dummy化的DF,添加到原raw_df可以用pd.get_dummies(df,prefix=['col1','col2'])
可以添加到raw_df后面raw_df = raw_df.join(df) - 添加了dummies变量后,交叉验证mae下降了,感觉有一定希望,但是xgb.DMatrix转换300万*156太慢了,跑了一个小时,那个kernel直接down掉,我发现不能用本机来跑,用本机来跑,我的工作直接会pending在那里,我需要想个办法,要不然找台服务器,要不然利用云计算平台
- 老司机所说的保留尽可能多的特征是有道理的,可能xgboost这种算法有非常优秀的工程化实现,可以容忍各种缺失的,不完备的数据集
- 线性相关性对于xgboost训练的影响,我实际数据集中有3个自变量高

本文回顾了使用xgboost进行数据建模的过程,探讨了xgboost的基分类器和参数设置,如线性分类器、dart等。在数据预处理中,通过get_dummies进行哑变量转换,降低了交叉验证的平均绝对误差。同时,发现xgboost能有效处理高度缺失值的变量。遇到的大问题是大型数据集转换为xgb.DMatrix速度过慢,考虑使用服务器或云计算平台解决。
最低0.47元/天 解锁文章
698

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



