全国服务热线:0898-08980898
联系我们 contact us
地址:
海南省海口市
邮箱:
admin@youweb.com
电话:
0898-08980898
传真:
1234-0000-5678
公司动态 当前位置: 首页 > 傲世皇朝新闻 > 公司动态
新加坡房价预测模型构建添加时间:2023-08-24

2022年6月24日开始动手第二个实验

课件下载链接:

https://pan.baidu.com/s/1BukfQOdt22pno6yETPfCNg 提取码:1n2s

数据集链接:

http://idatascience.cn/dataset-detail?table_id=101047

爱数课实验链接:

http://idatacourse.cn/case-run?id=12735&token=36ce4ac6c08ea9c786caf145af4fa2be

数据来源于新加坡的爱彼迎民宿数据,数据共计7907条,16个字段。本次实验我们通过Python的绘图库对数据集进行可视化分析,查看特征的取值分布以及特征之间的关系。构建回归模型,根据民宿的经度、纬度、房屋类型、行政区划等特征对民宿价格进行预测。各数据字段含义如下表所示:

列名含义
id房间编号
name房间名称
host_id房东编号
host_name房东名称
neighbourhood_group所属区域组
neighbourhood行政区划
latitude纬度
longitude经度
room_type房间类型(整套、独立房间、合租)
price价格
minimum_nights最少住几晚
number_of_reviews评论数
last_review上一次评论时间
reviews_per_month平均每月评论数
calculated_host_listings_count房东拥有的可出租房屋数
availability_365一年内可租用天数

首先将数据加载进来,对数据有一定了解。

 

使用Pandas中的函数可以读取文件,结果会保存为一个DataFrame或Series对象,通过调用DataFrame或Series对象的方法查看数据集大小,调用方法查看前n行数据,默认为5。

?运行结果

?值得注意的是在开头要加入一下代码来延长终端的输出长度,防止出现省略号

 

通过调用DataFrame对象的方法打印DataFrame对象的摘要,包括列的数据类型dtype、名称以及有无缺失值,数据框的维度以及占用的内存等信息。

 

?

?数据集房间名称,上次评论时间,平均每月的评论数三个字段有缺失值的存在,所以需要对缺失值进行处理。

 

?运行结果

可以看到上次评论时间,平均每月的评论数两个字段之所以有缺失值是因为评论数为0,即没有评论。在建模前进行数据预处理时,可以删除上次评论时间这一列,对平均每月的评论数缺失值用0进行填充。?

使用Seaborn中的函数绘制柱状图,展示每个分类特征的数量

 

运行结果

下面使用Seaborn中的函数绘制直方图,展示价格的分布情况

 

整体来看,价格分布在0到10000之间,但房价在1000到10000之间的房间数量极少,房屋价格绝大部分都在1000以下。

下面使用Seaborn中的函数绘制柱状图,展示不同房型的房屋数量

 

?数量最多的房型是整租,其次是独立房间的房型,最少的是合租的房型。整租和独立房间两种房型占比较大,可能更受欢迎,合租的房间数量最少。

下面使用Seaborn中的函数绘制柱状图,展示房屋的区域分布

 

?从上图结果可以看出更多的房子位于中心地区,其次是西部地区、东部地区、东北部地区,北部地区的房间数量最少。

下面使用Seaborn中的函数绘制柱状图,展示不同区域的房屋类型

 

?

?中心地区整租的房屋数量最多,其他地区独立房间的房型最多,绝大多数的合租的房型分布在中部地区,可能是由于中心地区房价较高等原因。

下面使用Seaborn中的函数绘制箱线图,展示不同地区房价情况

 

从箱线图中观察到:中心区域的房子价格分布更为广泛,价格的均值也高于其他位置。北部地区的平均价格最低。

下面使用Seaborn中的函数绘制箱线图,展示房屋类型与价格的关系

 

?整租类型的房屋价格分布区见更广,并且价格均值高于其他两种类型,合租的房型平均价格最低。

下面使用Seaborn中的函数绘制散点图,展示房屋经纬度分布的情况

 

?橙色部分为中心地区的房屋情况,绿色为东部地区的房屋情况,红色为西部地区的房屋情况,紫色为东北部地区的房屋情况,蓝色为北部地区的房屋情况。中心地区的房屋数量多并且分布较为密集,北部地区的房屋数量最少并且分布也相对分散。

下面使用Seaborn中的函数绘制散点图,展示房屋价格的分布情况

 

?价格较高的房屋大部分分布在中心地区和西部地区,东部地区、东北部地区和北部地区价格较高的房屋数量很少。

通过调用DataFrame对象的方法,并设置,删除房间编号、房间名称、房东编号等列。

 
 

通过调用DataFrame对象的方法,用对缺失值进行填充。

 

?

导入sklearn库中的模块的类

 

对数变换是一种常用的特征工程方法,一般对于数值大于0的长尾分布数据,可以采取对数变换的方法来转换特征值,整体上减缓长尾分布这种极偏的分布状态,为低值这一端争取更多的空间,将高值这一端尽可能的压缩,使得整体分布更加合理。进而增强模型的效果。

 

?输出具体描述

 

 
 

?

 

?通过调用查看最优模型。

通过得到最好的得分即MAE值的负数,通过方法得到绝对值,即模型的MAE值?

?

?

# 特征重要性,降序排序

?

?

?#通过调用barplot()函数,绘制条形图将特征重要性进行展示

?特征重要性首先是房屋的经度,纬度,两者重要性相差不大。其次是一年内可出租的天数,和房东拥有的可出租房屋数。特征重要性最低的是所属区域组。

还原为真实预测值并计算绝对误差

?

平台注册入口