美文网首页
kaggle入门之 房价预测

kaggle入门之 房价预测

作者: ygquincy | 来源:发表于2019-03-18 13:33 被阅读0次

    背景介绍:
    这个比赛总的情况就是给你79个特征然后根据这些预测房价(SalePrice),难点在于特征很多,且存在大量的缺失值。kaggle提供的data_description.txt这个文件,里面对各个特征的含义进行了描述,对处理缺失值有很大的帮助

    一、认识数据


    House Price 数据集分为train和test数据。训练集含有1460个样本,80个属性,一个标签(SalePrice)。测试集很有1459个样本,80个属性。sample_submission则是最终上传到kaggle的预测结果。

    二、EDA

    首先导入包,探索一下测试集的情况。


    属性的意义

    * MSSubClass:建筑类              
    * mszoning:一般的分区分类
    * LotFrontage:街道连接属性线性英尺
    * LotArea:平方英尺批量
    * 街道:道路通行方式
    * 小巷:通道入口的类型
    * LotShape:财产的形状
    * LandContour:财产的平整度
    * 实用程序:可用的实用程序类型
    * LotConfig:很多配置
    * LandSlope:坡的财产
    * 邻近:Ames市区范围内的物理位置
    * 状态:邻近主要道路或铁路
    * 条件:靠近主要道路或铁路(如果第二存在)
    * BldgType:住宅类型
    * housestyle:风格的住宅
    * overallqual:整体材料和完成质量
    * overallcond:总体状况评价
    * yearbuilt:原施工日期
    * yearremodadd:重塑日期
    * RoofStyle:屋顶类型
    * RoofMatl:屋面材料
    * exterior1st:外部覆盖的房子
    * exterior2nd:外部覆盖的房子(如果有一个以上的材料)
    * MasVnrType:砌体饰面型
    * masvnrarea:砌体饰面面积平方英尺
    * exterqual:外部材料质量
    * extercond:在外部的物质条件
    * 基金会:基金会的类型
    * BsmtQual:地下室的高度
    * bsmtcond:地下室的一般条件
    * BsmtExposure:罢工或花园层地下室墙
    * bsmtfintype1:质量基底成品区
    * bsmtfinsf1:型完成1平方英尺
    * bsmtfintype2:质量第二成品区(如果有的话)
    * bsmtfinsf2:型完成2平方英尺
    * BsmtUnfSF:未完成的平方英尺的地下室
    * totalbsmtsf:地下室面积总平方英尺
    * 加热:加热类型
    * heatingqc:加热质量和条件
    * 中央:中央空调
    * 电气:电气系统
    * 1stflrsf:一楼平方英尺
    * 2ndflrsf:二楼平方英尺
    * lowqualfinsf:完成平方英尺Low质量(各楼层)
    * grlivarea:以上等级(地)居住面积平方英尺
    * BsmtFullBath: Basement full bathrooms
    * BsmtHalfBath:地下室半浴室
    * FullBath:完整的浴室级以上
    * HalfBath:半浴室级以上
    * 卧室:高于地下室的卧室数
    * 厨房:厨房数量
    * kitchenqual:厨房的品质
    * totrmsabvgrd:房间总级以上(不包括卫生间)
    * 功能:家庭功能评级
    * 一些壁炉壁炉:
    * fireplacequ:壁炉质量
    * GarageType:车库位置
    * GarageYrBlt:建立年车库
    * GarageFinish:车库的室内装修
    * GarageCars:在汽车车库大小的能力
    * GarageArea:在平方英尺的车库规模
    * GarageQual:车库质量
    * garagecond:车库条件
    * paveddrive:铺的车道
    * WoodDeckSF:平方英尺的木甲板面积
    * openporchsf:平方英尺打开阳台的面积
    * enclosedporch:封闭式阳台的面积以平方英尺
    * 3ssnporch:平方英尺三季阳台的面积
    * screenporch:平方英尺纱窗门廊区
    * PoolArea:在平方英尺的游泳池
    * poolqc:池质量
    * 栅栏:栅栏的质量
    * miscfeature:杂项功能在其他类未包括
    * miscval:$杂特征值
    * MoSold:月销售
    * YrSold:年销售
    * SaleType:销售类型
    * salecondition:销售条件
    

    目标值Saleprice 房价的情况。

    房价是否满足正态分布

    看起来有些右偏,右边有长尾,等下再做处理。

    居住面积与房价的关系

    地下室面积与房价的关系

    材料饰面质量与房价的关系

    年份与房价关系

    看看相关性,哪些和价格最相关


    三、数据清洗

    首先把测试集和训练集读进来

    首先来处理之前的离群点

    现在分布看上去正常多了

    首先观察下saleprice的分布


    观察分布图和qq图明显看出有些右偏,需要去处理。

    我们选用对数变换来处理。log(1+x)


    可以看出仅做了个对数变化,分布变得符合了正态分布。

    去掉ID和目标

    观察缺失值情况


    处理缺失值


    缺失值就大致被处理好了。

    四、特征工程

    有些特征并不是连续值,来把他做成类别值

    观察发现utilities这个值基本没用

    接下里用labelencoder进行标签映射

    检查特征的偏度


    有些偏度还挺大的

    用box-cox变换来处理,参考资料选取0.15为经验值

    最后进行one-hot 编码

    五、建模对比

    评价指标是均方根误差(RMSE)


    这里选用robustscaler来级联起来先处理

    中间用gridsearch测试出了参数取值


    用stacking模型



    选取ENet,Gboost,KRR作为第一层模型,lasso作为第二层模型。

    做成上交的格式

    排名在前15%左右,后续再慢慢改进。

    相关文章

      网友评论

          本文标题:kaggle入门之 房价预测

          本文链接:https://www.haomeiwen.com/subject/ftuvmqtx.html