节奏不要乱,做应该做的事情,一些不应该做的事情需要克制!
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太慢了,跑了一个小