基于简单MLP模型的加州房价预测
基于简单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小于51e7的数据,删除。分析第六个坐标轴,存在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来标准化数据:
机器学习入门实践--线性回归模型(波士顿房价预测) 一.背景介绍 给定一个大小为 n n n的数据集 { y i , x i 1 , . . . , x i d } i = 1 n {\{y_{i}, ... 评分卡模型(二)基于评分卡模型的用户付费预测 小P:小H,这个评分卡是个好东西啊,那我这想要预测付费用户,能用它吗 小H:尽管用- (本想继续薅流失预测的,但想了想这样显得我的业务太单调了,所以就改成 ... 公众号:尤而小屋 作者:Peter 编辑:Peter 大家好,我是Peter~ 新年的第一个项目实践~给大家分享一个新的kaggle案例:基于随机森林模型(RandomForest)的心脏病人预测分类 ... 大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师.欢迎大家跟我一起走进数据分析的世界,一起学习! 感兴趣的朋友可以关注我或者我的数据分析专栏,里面有许多优质的文章跟大家分享哦. 前言 这 ... 本文采用Kaggle上面的Boston HousePrice数据集展示了如何建立机器学习模型的通常过程,包括以下几个阶段: 数据获取 数据清洗 探索性数据分析 特征工程 模型建立 模型集成 标签变量( ... 目录 1.项目背景 2.项目简介 2.1数据说明 2.2技术工具 3.算法原理 4.项目实施步骤 4.1理解数据 4.2数据预处理 4.2.1缺失值处理 4.2.2重复值处理 4.2.3异常值处理 4 ... 机器学习的主要步骤 将问题框架化并且关注重点. 获取并探索数据以洞悉数据. 准备数据以更好地将基础数据模式暴露给机器学习算法. 探索多种不同的模型并列出最好的那些. 微调模型并将它们组合成一个很好的解 ... 问题描述 数据来源:California Housing Prices dataset from the StatLib repository,1990年加州的统计数据. 要求:预测任意一个街区的房价 ... 加州房价预测 # 同时支持python2和python3 from __future__ import division,print_function,unicode_literals# 常用库 im ...基于简单MLP模型的加州房价预测相关推荐
最新文章
热门文章