1)基于baseline,模型用xgboost,得分709。
特征包括:'gearbox', 'power', 'kilometer', 'v_0', 'v_1', 'v_2', 'v_3', 'v_4', 'v_5', 'v_6', 'v_7', 'v_8', 'v_9', 'v_10', 'v_11', 'v_12', 'v_13', 'v_14'。
baseline的jupyter链接:https://tianchi.aliyun.com/notebook-ai/detail?postId=95422
2)按照阿泽老师发布的jupyter,做特征工程,模型用xgboost,得分是626。
特征包括:'bodyType', 'brand', 'fuelType', 'gearbox', 'kilometer', 'model',
'offerType', 'power', 'seller', 'v_0', 'v_1', 'v_10', 'v_11', 'v_12', 'v_13',
'v_14', 'v_2', 'v_3', 'v_4', 'v_5', 'v_6', 'v_7', 'v_8', 'v_9', 'used_time','city',
'brand_amount', 'brand_price_max', 'brand_price_median', 'brand_price_min', 'brand_price_sum',
'brand_price_std', 'brand_price_average', 'power_bin'
特征工程jupyter链接:https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.12586969.1002.9.2c5266c2HRdfiO&postId=95501
3)在2)的基础上,将预测结果为负数的,设置为10,得分是626,变化不大。可能是因为这部分样本比较少。
4)接下来是要改进的思路,想从一下几个方面提升模型准确性
思路一:xgboost训练的时候,用的目标函数是R2,而比赛用的目标函数的MAE,xgboost允许自定义目标函数,但是要求目标函数二阶可导,MAE不满足二阶可导的条件。所以换支持MAE作为目标函数的模型,或者自定义接近MAE的二阶可导目标函数。
思路二:类别特征做one-hot编码。
【零基础入门数据挖掘--二手车交易价格预测之一--特征工程】思路三:对价格做log处理之后进行预测,预测结果再做指数变换。
推荐阅读
- 学习|python3打印菱形(测试过)
- python生成13位或16位时间戳以及反向解析时间戳
- Python3实战Spark大数据分析及调度
- Python3 画菱形
- Python3|python基础一
- Python3|Python语言实现多关键字排序问题