kaggle房价预测特征意思_Kaggle 房价预测精简版,附代码

本文详细介绍了在Kaggle房价预测任务中的数据预处理、特征工程和模型融合步骤。通过分析数据,找出与目标变量"SalePrice"高度相关的特征,处理异常值,填充缺失值,进行特征编码和正态化。使用Lasso等模型筛选特征并构建新特征,最终通过Stacking融合模型,降低均方根误差(RMSE)至0.101。
摘要由CSDN通过智能技术生成

一、问题定义

该问题来源于kaggle,主要是通过上世纪90年代的加利福利亚地区的房价的数据来训练模型,最终可以较为准确预测出对应房屋的价格。该问题实际上还是一道回归问题。

从kaggle上获取数据后,为了更好的训练,每个样本的特征属性和标签(即房屋价格)需要进行相关处理(包括取出异常值、填充缺省值、特征转换,数据转化等),然后构建多种误差较小的模型,找到最佳参数后将模型stacking融合,获取更小的误差,达到更好的预测效果,然后将模型保存起来。本次题目使用rmse均方根误差作为衡量模型标准,最终降低到0.10左右。

二、数据获取

首先将Kaggle上提供的相关的训练集和测试集下载下来,主要是train.csv和test.csv,训练集和测试集都是DataFrame数据结构。

然后查看其数据结构。训练集的shape是(1460,81)表示共有1460个样本,每个样本有81个属性,测试集的shape是(1459,80)表示共有1459个测试样本,每个测试样本有1459个属性。除此以外,通过head()函数,可以查看训练集和测试集的前5行数据,进行直观的认识,如下所示。

cc54f37475c1ed30239f971b4cf946ac.png

从上面,我们可以发现训练集有81个属性,但第一个Id属性没有意义,之后可以考虑删去。最后一个属性SalePrice是该样本数据的标签,其中有些属性是字符型,有些是数据型。而测试集则没有SalePrice标签属性,因为其不参与训练。

三、数据研究

该部分主要是通过可视化或者直接打印来查看属性之间的相关性,每个属性的分布情况等,从而为后面数据清洗,找出与标签属性SalePrice最相关的其他属性做准备。

1、作图来显示相关性

corrmat=train_data.corr()

plt.figure(figsize=(12,9))

cols=corrmat.nlargest(10,'SalePrice')['SalePrice'].index

cm=np.corrcoef(train_data[cols].values.T)

sns.set(font_scale=1.25)

hm=sns.heatmap(cm,cbar=True,annot=True,square=True,fmt='.2f', annot_kws={'size': 10},xticklabels=cols.value

cc9557eb00a4a77d228e99efaeb012c9.png

2、直接输出相关度高的属性

利用DataFrame数据类型的函数corr(),并将与SalePrice属性相关度大于0.5的所有属性取出来:

Corr=train_data.corr()

print(Corr[Corr['SalePrice']>0.5]),结果显示如下。

3c61dbc53e1d1d3d13d140f0a3e868dd.png

从上面可以发现除了SalePrice自身外,还有10个属性与SalePrice的相关程度较高。

四、数据准备

1、去除异常数据

上面找出10种与SalePrice最相关的属性后,由于其对标签影响最大,所以我们就要在这些属性上进行一个处理—除去少数非正常分布的属性的值。可以通过画出每个属性与SalePrice的关系的散点图来查看那些点偏离正常分布,画出的部分图像如下:

4ab387a7d8e3f2c5eca47fb70f60baa5.png

观察这些分布,可以删去一些异常点

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值