基于简单MLP模型的加州房价预测

摘要

机器学习是当前热度非常高的领域,可以对房价数据进行预测,具有很高的研究价值。为了更好地学习机器学习,将理论付诸于实践,本文从加州房价预测实验入手,提出了基于简单MLP的房价预测模型方法研究。
本文的主要研究内容为基于简单MLP模型的方法,提出了加州房价预测的模型。本文首先介绍了研究背景和意义,实验选取了来源于Kaggle上的一次竞赛California House Prices。在实验中,首先观察了训练数据以及测试数据,分析了自变量Sold Price与因变量的相关性,选取了用来训练的特征。接着,对数据进行预处理,对数值类型的特征进行特征归一化和缺失值的补充,使用了独热编码处理了离散值,最终得到了用于训练的特征。构建了一个简单MLP模型,共三个线性层,并对前两层使用了Relu()。训练函数借助了Adam优化器,其优点是它对初始学习率敏感度不强。使用了网格搜索结合K折交叉验证对超参数进行了调整。训练结束后将获得的模型应用于测试集,并将预测保存在CSV文件中提交到Kaggle查看结果。最终我在Kaggle上获得的score为。
将我的预测结果与简单线性模型的预测结果进行对比,结果显示在这次竞赛的数据上,所提出的模型预测精度更好,具有稳健性,适合用于加州房价预测。

关键词

房价预测;机器学习;

1. 数据指标说明及处理

1.1 数据来源

为了验证模型的普适性,本文选择的数据是Kaggle竞赛California House Prices的数据。该竞赛的任务是根据房子的信息,如卧室数量、居住面积、位置、附近的学校和卖家的摘要,预测房子的销售价格。数据包括2020年在加州售出的房屋,测试数据集中的房屋在训练数据集中的房屋之后售出。此外,私人排行榜上的房子也是在公共排行榜上的房子之后出售的。

1.2 数据指标说明

> 读入数据集之后首先对数据进行观察,代码和结果如下。

print(train_data.shape)
print(test_data.shape)

图1-1

可以观察到训练集共有47439个数据,40个特征,多出的一列是标签Sold Price。测试集有31626个数据,40个特征。

将训练集和测试集合并之后对数据进行总览,结果如下。

图1-2

1.2.1 影响因素特征

通过分析自变量Sold Price与因变量的相关性,得到的结果如下图。

#查看自变量与因变量的相关性
fig = plt.figure(figsize=(14,8))
abs(train_data.corr()['Sold Price']).sort_values(ascending=False).plot.bar()
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)

图1-3

结合上面两步,可以看到相关性大于0.5有这些:Annual tax amount,Tax assessed value,Last Sold
Price,Listed Price,Full bathrooms,Bathrooms。它们全是数值类型,将被加入用于训练的特征列。

1.3 数据预处理

在开始建模前,需要对特征进行预处理。

1.3.1 异常值处理

通过画出上一节中分析出的相关性高的特征的值的分布,通过分析剔除异常的值。

#异常值处理
figure=plt.figure()
sns.pairplot(x_vars=['Annual tax amount','Tax assessed value','Last Sold Price','Listed Price','Full bathrooms','Bathrooms'],y_vars=['Sold Price'],data=train_data,dropna=True)
plt.show()

运行结果:

图1-4

分析第三个坐标轴,存在Last Sold Price大于8,但Sold
Price只有41e7的数据,删除。分析第五个坐标轴,存在Full bathrooms大于15,但Sold
Price小于5
1e7的数据,删除。分析第六个坐标轴,存在Bathrooms大于20,但Sold Price小于2*1e7的数据,删除。

删除异常值后重新打印出特征值的分布图,代码和运行结果如下。

#删除异常值
train_data = train_data.drop(train_data[(train_data['Last Sold Price']>8*1e7) &(train_data['Sold Price']<4*1e7)].index)train_data = train_data.drop(train_data[(train_data['Full bathrooms']>15) &(train_data['Sold Price']<5*1e7)].index)train_data = train_data.drop(train_data[(train_data['Bathrooms']>20) &(train_data['Sold Price']<2*1e7)].index)

图1-5

1.3.2 特征归一化

适当地特征缩放可以加速梯度下降过程。通过将特征缩放到均值为0,方差为1来标准化数据:

基于简单MLP模型的加州房价预测相关推荐

  1. 机器学习入门实践——线性回归模型(波士顿房价预测)

    机器学习入门实践--线性回归模型(波士顿房价预测) 一.背景介绍 给定一个大小为 n n n的数据集 { y i , x i 1 , . . . , x i d } i = 1 n {\{y_{i}, ...

  2. 评分卡模型(二)基于评分卡模型的用户付费预测

    评分卡模型(二)基于评分卡模型的用户付费预测 小P:小H,这个评分卡是个好东西啊,那我这想要预测付费用户,能用它吗 小H:尽管用- (本想继续薅流失预测的,但想了想这样显得我的业务太单调了,所以就改成 ...

  3. kaggle项目:基于随机森林模型的心脏病患者预测分类!

    公众号:尤而小屋 作者:Peter 编辑:Peter 大家好,我是Peter~ 新年的第一个项目实践~给大家分享一个新的kaggle案例:基于随机森林模型(RandomForest)的心脏病人预测分类 ...

  4. 一文带你用Python玩转线性回归模型《加利福尼亚房价预测》回归模型评估指标介绍

    大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师.欢迎大家跟我一起走进数据分析的世界,一起学习! 感兴趣的朋友可以关注我或者我的数据分析专栏,里面有许多优质的文章跟大家分享哦. 前言 这 ...

  5. 机器学习 | 一个基于机器学习的简单小实践:波斯顿房价预测分析

    本文采用Kaggle上面的Boston HousePrice数据集展示了如何建立机器学习模型的通常过程,包括以下几个阶段: 数据获取 数据清洗 探索性数据分析 特征工程 模型建立 模型集成 标签变量( ...

  6. 大数据分析案例-基于随机森林模型对北京房价进行预测

    目录 1.项目背景 2.项目简介 2.1数据说明 2.2技术工具 3.算法原理 4.项目实施步骤 4.1理解数据 4.2数据预处理 4.2.1缺失值处理 4.2.2重复值处理 4.2.3异常值处理 4 ...

  7. 完整的机器学习_加州房价预测

    机器学习的主要步骤 将问题框架化并且关注重点. 获取并探索数据以洞悉数据. 准备数据以更好地将基础数据模式暴露给机器学习算法. 探索多种不同的模型并列出最好的那些. 微调模型并将它们组合成一个很好的解 ...

  8. 机器学习入门实例-加州房价预测-1(数据准备与可视化)

    问题描述 数据来源:California Housing Prices dataset from the StatLib repository,1990年加州的统计数据. 要求:预测任意一个街区的房价 ...

  9. 基于机器学习之模型树短期负荷预测(Matlab代码实现)

  10. 【机器学习实用指南】加州房价中位数预测

    加州房价预测 # 同时支持python2和python3 from __future__ import division,print_function,unicode_literals# 常用库 im ...

最新文章

  1. Replication Controller、Replica Set
  2. Linux的磁盘管理
  3. NTU 课程笔记:MAS 714(16) 图灵机
  4. 我建议你了解一点儿Serverless
  5. PKUWC2019游记WC2019游记
  6. verilog的$dumpfile和$dumpvar系统任务详解
  7. AVS3关键技术、性能和复杂度分析
  8. 织梦其他模型使用联动类型地区联动
  9. 一个点击icon就生成html和css的网页
  10. java程序 登录界面_用java写一个登陆界面代码。
  11. Navicat Premium 12.1.21 最新版激活工具及方法
  12. 联发科MT7621 Openwrt开发编译记录
  13. matlab学习笔记 repmat函数与kron函数之区别
  14. oracle打开游标报904,物化视图刷新报错ora-920(或ora-904)
  15. TypeScript代理模式/委托模式
  16. 服务器2008系统驱动安装,Windows Server 2008系统安装设备驱动的方法
  17. android OTA更新
  18. 计算机进去pe怎么设置用户,电脑如何进入winpe模式?进入winpe模式的方法
  19. 爱上开源之Boot4go-etcdv3-browser之剧透篇
  20. lsm mysql_一文了解数据库索引:哈希、B-Tree 与 LSM

热门文章

  1. 用阿里云建站模版套餐云速成美站有没有可能不容易被seo抓取排名?
  2. HDU - 3174(计算几何)
  3. 华为机试od社招刷题攻略-目录
  4. 外星人笔记本计算机在哪里,笔记本电脑没声音,详细教您外星人笔记本没声音如何解决...
  5. java xmx 最大值_java – JVM超过用-Xmx定义的最大内存
  6. “三权分立”模型之角色模型
  7. 区块链大戏上演!陈伟星VS朱啸虎公开互怼数个回合 | 区块链日报
  8. python函数写法_python函数的写法和调用
  9. 蒙特梭利素材语言幼儿识字 补笔画 闪卡三段卡蒙氏教具
  10. 混沌数学之Chua's circuit(蔡氏电路)