Kaggle房价预测

Kaggle房价预测

         从去年9月份自学python以来,中间经理各种迷茫,但是依然坚持下来了。到现在开始要找工作了,在这之前,要花点时间把自己学习的知识复习回顾一遍,也要做一些实战项目多多练习,以增加熟练度。本项目打算着重复习 python 数据分析(进阶)相关的知识。(https://github.com/hpchihuo/houceprice)

项目简介:数据分析是数学统计,计算机科学以及相关业务知识的统一。因此该项目将结合自己房地产工作经验,以及自学的数学统计和分析软件。探索与房地产价值相关的因素。

数据来源:来自于kaggle竞赛:HousePrices: Advanced Regression Techniques的数据集

目的:探寻与房地产价值相关的因素,然后建立模型,预测房地产价值。

数据初步探索:

         通过其他数值属性与SalePrice的相关关系,快速寻找与SalePrice相关因素较大的数值属性。

在以上属性中,有多个属性从不同维度来描述同一特征。通过比较变量相关关系以及变量与目标相关关系,应使用如下属性:OverallQua(房屋用料及完好程度总体评价),GrLivArea(房屋地上居住面积),GarageCars(车库容纳车数量),TotalBsmtSF(地下室总面积),FullBath(卫生间数量), YearBuild(建筑年代),Fireplaces为壁炉数量。

上图为七个属性与SalePrice组成的散点图或箱型图。可以看出随着GrLivArea以及TotalBsmtSF的增大,SalePrice总体趋势是上升的。OverallQua评价越高,则满意度越高,房价也就越高。Fireplaces,FullBath,GarageCars越大,SalePrice趋势也是上升的。房屋越新,使用年限越短,损坏越少,房价越高,当然也有一些特殊情况,如某些房子可能存在特殊的历史意义等。

处理缺失值:

         在该数据集中,有部分属性从不同角度描述了不同的物体,因此处理缺失值时,可以从两个属性之间的联系来处理。有部分NA则表示物体不存在,这样的缺失值可直接填充None,或0,(注意:NA既表示缺失值,又表示不存在的情况)


寻找PoolArea不为0但PoolQC为NA的索引,根据面积填充PoolQC,PoolQC和PoolArea其他的Na值用None和0填充

寻找GarageCond不为空而GarageCond,GarageFinish,GarageQual为空的索引,用分组众值填充,其他的均用None或0值填充

对含有Bsmt的属性进行空缺值进行处理


由MasVnrArea和MasVnrType关系,对MasVnrArea不为空和MasVnrType为空值填充一定范围内的众值,其他的填充None或0。

由于MSZoning和MSSubClass存在一定关系,用分组众值填充MSZoning空值

其他的空缺值均由众值填充

数据变换

对CentralAir,Utilities,BsmtCond,GarageQual序列型属性转化为数值序列型数据,将YearBuilt转化为连续型数据,将分类变量MSZoning转换为“哑变量矩阵”,将转变后的数据重新与SalePrice进行相关性检查后,去掉Utilities


特征缩放:

对数值型特征进行特征缩放,取3/4位进行缩放。

对SalePrice进行处理,使用 x/(xmax-xmin)

建立模型

使用xgboost模型中得XGBRegressor进行拟合,得到结果后按要求保存到sample.csv中

总结:

         本项目的重点(对我来说)在于数据的清洗和数据转换,以及特征值的选取。在特征选取方面,我根据个人经验以及数据分析技术进行了选择过滤,同时对选择的特征进行了初步的分析.特征涵盖了房屋面积,地下室,车库,卫生间等状况,也包括外部环境。严格说来,这样选择并不严谨,或许遗漏了某些特征值。

         另外在机器学法的选择上,我也只能进行初步运用,而且使用之后,也无法评论其好坏。这些知识只能在以后慢慢积累。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章