Kaggle-数据分析竞赛:House Price Prediction官网链接
参赛情况 | |
---|---|
参赛时间 | 2020-x-x |
结果提交时间 | 2020-x-x |
最终结果(均方根误差RMSE) | 0.115 |
竞赛排名 | 前10% |
项目python代码notebook | https://www.kaggle.com/yzh094/my-house-price-prediction |
该项目的基本思路如下图所示。项目所有流程均基于Python实现。
该项目要求利用给定的数据(共包括81个特征,数值型特征和类别型特征均有)来对房屋价格进行预测,因此考虑采用回归方法进行预测。同时,为了提高预测的准确率(尽量降低RMSE),考虑基于集成学习思想的多个回归模型集成方法。
利用Python第三方库pandas_profiling对训练集生成描述性统计报告。发现该数据中包含数值型特征和类别型特征,大量特征存在缺失值。缺失率可视化如下图所示:
通过数据分布可视化,发现数据在许多特征上存在偏态性。以训练集目标变量SalePrice为例,数据分布及QQ图如下图所示:
异常值处理:选择对房屋价格影响较大的面积变量"GrLivArea"与目标变量 "SalePrice"的关系进行数据可视化(散点图),可以看到存在两个明显的异常值点(房屋面积极大但是房价极低,不符合业务常识),如下图所示:
对这两个异常值点进行删除。
缺失值处理:根据竞赛提供的特征变量的解释,充分理解每个特征的含义,综合采用众数、中位数等方法进行缺失值填补。
数据偏态处理:通过观察每个数值型特征的数据分布,对目标变量SalePrice采用对数化处理;对其余特征变量采用Box-Cox转换处理。以SalePrice变量为例,偏态处理后的数据分布及QQ图如下图所示(经过处理后的数据更符合回归问题要求的正态分布):
对于该回归问题,本项目选择的模型有:
模型名称 |
---|
Lasso回归模型 |
ElasticNet回归模型 |
岭回归模型(以polynominal为核函数) |
XGBregreressor模型 |
LGBMRegressor模型 |
Gradient Boosting回归模型 |
通过K折交叉验证计算上述模型的RMSE的均值和标准差。
对训练好的多模型进行集成融合,生成最终的模型Stacking model。
分别用Stacking model、XGBregreressor、LGBMRegressor对测试集进行预测,然后将三个预测结果进行加权,得到最终结果:
最终均方误差 |
---|
0.115 |
【Kaggle-数据分析竞赛】House Price Prediction 项目总结
原文:https://www.cnblogs.com/yangzhehan/p/12809171.html