个人主页:@大数据蟒行探索者 

目录

一、数据分析目标与任务

1.1背景介绍

1.2课程设计目标与任务

1.3研究方法与技术路线

二、数据预处理

2.1数据说明

2.2数据清洗

2.3数据处理

三、数据探索分析

四、数据分析模型

五、方案评估


 

摘要:随着社会经济的迅猛发展,房地产开发建设的速度越来越快,二手房市场迅猛发展,对二手房房产价格评估的需求也随之增大。因此,对二手房房价预测进行研究是必要的。住宅是城市居民的刚性需求,随着城市建设用地越来越紧缺,住宅供需成为城市发展必须解决的一大问题。二手房数量占城市住宅总量的比重较高,并且大多数二手房占据城市配套成熟的优越位置,因此成为城市居民解决刚性需求的重要选择。城市是一个复杂的系统,二手房作为城市的“细胞”,其价格受许多要素影响,不同城市的二手房价格在空间分布上有所不同。

本文使用python爬虫从链家二手房网站上爬取了深圳的在售二手房数据,并对二手房数据进行数据分析,首先查看数据,导入数据,了解数据集的维度,每列数据的数据类型,以及打印部分数据,进行观察。然后进行数据清洗,删除不需要的列,删除重复行数据,删除包含有空值的行数据,以及对异常值进行处理。

数据清洗后,使用所在行政区、参考单价、建筑面积、户型结构、装修情况、配备电梯、建筑结构等指标作为影响深圳二手房售卖每平米价格的主要因素,据此建立模型,使用线性回归、支持向量机和随机森林三种模型进行预测,最终得到较优的深圳二手房房价预测模型,为深圳二手房交易者们提供了一个有较为有实用价值的二手房定价工具。

本文基本符合一个完整数据分析案例的要求,但仍有很多可以改进的地方,如可以采用更复杂的统计学理论深入分析房价分布及其影响因素,对机器学习模型进行调参以尽可能提高预测能力,采用更加直观的数据可视化方式展示数据,并通过数据分析为二手房购买者提供建设性意见。

关键词:深圳 房价 数据清洗

一、数据分析目标与任务

1.1背景介绍

房地产行业是我国国民经济的支柱产业之一,房地产市场的健康发展对促进我国的国民经济发展、维护社会的和谐稳定起着十分重要的作用。近几年,随着我国房地产行业的迅猛发展,房价节节攀升,很多购房者对于居高不下的一手房价格“心灰意冷”,转而将目光投向了比一手房价格低的二手房市场。深圳的二手房成交量也不断创出历史新高,呈现蓬勃发展的态势。但相比于较成熟的一手房市场,二手房市场对政策过于敏感,面对此起彼落的针对楼市过热出台的多项严控政策。根据深圳中原研究中心数据显示,2021年10月份深圳全市二手房住宅过户套数为1605套,环比下降9.1%,过户套数为2012年3月以来的最低值。深圳二手房月度成交量出现十连跌。

二手房市场的发展具有重要的意义。二手房市场的发展,不仅有利于住宅一级市场的繁荣、缩短新建商品住宅的销售周期,而且可以满足居民置业升级和梯度消费的需求,补充和保障中低收入户的住房需求。区别于一手房,二手房交易流程长,涉及主体多,法律关系错综复杂,纠纷时常发生,风险无处不在,所以对深圳二手房市场现状和政策的分析研究也就具备了可行性和必要性。同时,通过运用经济理论和方法对北京市二手房市场现状的研究,可以了解和学习国家相关的房贷信息和货币政策,从宏观上把握二手房市场的存在价值和发展趋势,为参与到二手房交易的个人或者家庭提供一些积极有效的参考信息和应该注意的问题,使其具有较强的现实意义和参考价值。

1.2课程设计目标与任务

住宅是城市居民的刚性需求,随着城市建设用地越来越紧缺,住宅供需成为城市发展必须解决的一大问题。二手房数量占城市住宅总量的比重较高,并且大多数二手房占据城市配套成熟的优越位置,因此成为城市居民解决刚性需求的重要选择。城市是一个复杂的系统,二手房作为城市的“细胞”,其价格受许多要素影响,不同城市的二手房价格在空间分布上有所不同。通过研究二手房价格空间分布及影响因素,对房地产健康发展具有重要的意义。

本次课程设计需要对二手房市场背景展开调研,爬取某一具体城市的二手房数据集,分析影响该城市二手房价格的主要因素,并构建相应的二手房房价估值模型,实现房价的预测。

1.3研究方法与技术路线

首先查看数据,导入数据,了解数据集的维度,每列数据的数据类型,以及打印部分数据,进行观察。然后进行数据清洗,删除不需要的列,删除重复行数据,删除包含有空值的行数据,以及对异常值进行处理。数据清洗后,对数据进行探索性分析找到影响房价的主要因素建立模型进行房价预测。

本次课程设计采用python编程,使用jupyter notebook开发环境进行开发。

二、数据预处理

2.1数据说明

  1. 数据规模:38762 rows × 29 columns
  2. 数据文件:本文通过对爬取到的 38762套深圳二手房数据进行数据分析,通过简单数据清洗、可视化作图等多个方式进行探索性分析以及房价预测。
  3. 数据字段:数据集中汇总了深圳市目前的38000+个二手房数据,包含房屋详细数据、经纬度等29个字段,字段主要包括:小区名称、行政区、区域、参考总价、参考单价、房屋户型、所在楼层、建筑面积、户型结构、套内面积、建筑类型、经纬度 等 29个字段,具体字段如下所示:
  • 小区名称
  • 行政区
  • 区域
  • 编号
  • 参考总价
  • 参考单价
  • 房屋户型
  • 所在楼层
  • 建筑面积
  • 户型结构
  1. 套内面积
  2. 建筑类型
  3. 朝向
  4. 建筑结构
  5. 装修情况
  6. 梯户比例
  7. 配备电梯
  8. 挂牌时间
  9. 交易权属
  10. 上次交易时间
  11. 房屋用途
  12. 房屋年限
  13. 产权所属
  14. 抵押信息
  15. 房本备件
  16. 房协编码
  17. 经度
  18. 纬度
  19. 城市

共29个字段,其中,小区名称、行政区、区域、总价、单价等都是最常见的基本信息户型、楼层、面积、建筑类型、房屋朝向、建筑结构等都是房屋的具体属性信息挂牌时间、交易权属、上次交易时间、抵押信息等都是房屋的交易信息经纬度是房屋所在的百度经纬度数据,城市是额外新增的一个字段,本次均为:深圳。

  1. 数据样本:利用data.head()输出前5行数据查看如下图所示。

1 数据样本

打印数据集每列的信息如下图所示,其中,参考总价、参考单价、建筑面积、套内面积 等都属于数值类型。因为在爬取数据的数据没有进行数据清洗,网站上是什么就存储成什么,这也是为了保护数据的真实性,但是在实际分析过程中,特别是建模中,这类数据通常都是存储成数值型,方便可视化的同时也能保证模型快速收敛,所以在后面会转换数据类型。

2 数据集每列信息

2.2数据清洗

  1. 缺失值处理

缺失值处理的三种方法:直接使用含有缺失值的特征;删除含有缺失值的特征(该方法在包含缺失值的属性含有大量缺失值而仅仅包含极少量有效值时是有效的);缺失值补全。而本次我们采用的是若是存在含有空值的行,则本地删除含有空值的行数据。

也就是将存在遗漏信息属性值的对象(元组,记录)删除,从而得到一个完备的信息表。这种方法简单易行,在对象有多个属性缺失值、被删除的含缺失值的对象与信息表中的数据量相比非常小的情况下是非常有效的,类标号(假设是分类任务)缺少时通常使用。然而,这种方法却有很大的局限性。它是以减少历史数据来换取信息的完备,会造成资源的大量浪费,丢弃了大量隐藏在这些对象中的信息。在信息表中本来包含的对象很少的情况下,删除少量对象就足以严重影响到信息表信息的客观性和结果的正确性;当每个属性空值的百分比变化很大时,它的性能非常差。因此,当遗漏数据所占比例较大,特别当遗漏数据非随机分布时,这种方法可能导致数据发生偏离,从而引出错误的结论。

 通过处理我们发现含有缺失值的行数为494行,缺失值处理后的结果如下所示。

3 缺失值处理

  1. 重复行处理

在数据的收集过程中,可能会存在重复观测的出现,例如通过网络爬虫,就比较容易产生重复数据重复值一般采取删除法来处理,看出检测数据集的记录是否存在重复,使用duplicated (英文单词的意思就是重复,复制的意思)方法,但是该方法返回的是数据集每一行的检验结果,为了能够得到最直接的结果,可以使用any函数,该函数表示的是在多个条件判断中,只有一个条件为True,则any函数的结果就为True。正如结果所示,any函数的运用返回True值,说明该数据集是存在重复观测的。然后再使用drop_duplicates删除重复观测。

重复行处理结果如下图所示,可以发现只删除了一行的数据,说明只有一行重复值。

4 重复行处理

  1. 异常值处理
  • 发现房屋户型、所在楼层、户型结构、建筑面积、套内面积、建筑类型、朝向、建筑结构、装修情况、配备电梯、梯户比例这几个字段在数据集中前四个字符都是多余的,故对其利用字符串切片进行删除如下图所示。

5 删除多余字符

  • 观察参考总价字段发现,可以看到参考总价有两种形式,带单位的和不带单位的,这里我们直接确定成数值(方便在回归模型中应用),同理,参考单价字段可以采用同样的处理方式。但是单价的单位是具体到元的,将参考单价的单位改成与总价的单位保持一致为万/平方米。

6 参考单价与参考总价字段处理

  • 在分析参考总价的时候发现有的总价小于10w,不符合逻辑,我们将这些数据提取出来观察如下所示。

7 总价小于10w的数据

  • 可以发现这些房屋总价的单位是亿不是万,所以需要对这部分房屋的总价进行处理如下图所示。

8 总价处理

  • 观察套内面积发现缺失的字段较多,并且在爬取数据时出现的错误也较多,故删除套内面积字段如下图所示。

9 套内面积处理

  • 观察户型结构字段发现户型结构字段存在错误数据,将这些存在错误数据的元组删除得到新的数据集data1如下图所示。

10 户型结构处理

2.3数据处理

  1. 所在楼层字段过于冗长,为了方便计算,直接取描述性数据,例如中楼层、高楼层如下图所示。

11 所在楼层处理

  1.  观察房屋户型字段我们发现都是x室x厅x厨x卫,但在实际中一般我们在说户型的时候,都只是说 xx室xx厅,很少去关注后面的厨房和卫生间个数,所以我们只取前两个属性,利用正则表达式进行匹配如下图所示。

12 房屋户型处理

  1. 分析建筑面积字段,将对应的 ㎡ 剔除掉,保证字段为数值类型,需要注意的是有部分数据为空的,官方标记的是“暂无数据”,这部分我们需要进行缺失值填充。例如:房屋价格存在缺失,可以使用同一区域内的均价进行填充;房屋类型存在缺失,可以使用同一小区的其他房屋该字段的众数进行填充;多个房屋区域存在缺失,可以通过自定义距离函数计算最近的小区并进行相应填充。填充方法如下图所示。

13 缺失值填充方法

首先col1、col2是辅助列,target_col 是目标列。例如:对建筑面积进行缺失填充,按照填充规则,会根据同一个小区同一户型的建筑面积的均值进行填充,对应的,目标列就是 “建筑面积”,辅助列col1、col2就是 ”小区名称、房屋户型”。另外,当你的辅助列只有一个时,对应的 col_2 可以传入一个空字符串,例如上述中的 “”。其次是 col1_value、col2_value 和 target_value,对应的表示建筑面积缺失该数据的辅助列字段的值。data 表示整个数据集。target_type 表示填充目标列的类型,像建筑面积就是数值型,使用均值填充;像房屋户型是字符类型,使用众数填充。

利用上述缺失值填充方法对建筑面积进行缺失值填充:

data.loc[data['建筑面积']=='暂无数据', '建筑面积'] = data.loc[data['建筑面积']=='暂无数据', ['小区名称', '房屋户型', '建筑面积']].apply(lambda x: get_nan_info("小区名称", "房屋户型", x[0], x[1], data, target_col="建筑面积", target_value=x[2]), axis=1)

  1. 对于户型结构字段,通过观察可以发现户型结构中也存在“暂无数据”的缺失值,故我们利用'小区名称', '房屋户型'两个字段来确定怎样填充户型结构字段,剩余的利用众数来填充如下图所示。

14 户型结构填充

  1. 对于建筑类型字段,通过观察可以发现建筑类型中也存在“暂无数据”和未知结构的缺失值,故我们利用'小区名称', '房屋户型'两个字段来确定怎样填充建筑类型字段,剩余的利用众数来填充如下图所示。

15 建筑类型填充

  1. 对于建筑结构字段,通过观察可以发现建筑结构中也存在“暂无数据”和未知结构的缺失值,故我们利用'小区名称', '房屋户型'两个字段来确定怎样填充建筑结构字段,剩余的利用众数来填充如下图所示。

16 建筑结构填充

  1. 配备电梯、房屋年限、装修情况和上面类似,这里就不再赘述了。

17 配备电梯填充

18 房屋年限填充

19 装修情况填充

  1. 通过对抵押信息字段的观察发现,抵押信息看似很多,但是其实说白了就两种,有抵押和无抵押,直接进行处理即可,将其分为有抵押和无抵押如下图所示。

20 抵押信息处理

  1. 本次设计预处理最难的部分也就是缺失值填充部分,刚开始我们并没有去处理“暂无数据”或者“该小区无数据”等缺失值字段进行分析,分析到后面发现了这个错误,想到必须对其进行填充,然后讨论并分析才设计出这种填充方法。

三、数据探索分析

1. 结合可视化呈现,对数据进行探索性分析

  1. 整体房价分析

对深圳市的整体二手房价进行处理,包括最高价格、最低价格、平均价格和中位数价格分布。

  1. 地理位置对房价的影响

采用行政区划作为地理位置的影响因素,从行政区划方面对深圳二手房的数据进行分析。

  1. 建筑面积对房价的影响

作为房屋类型的影响因素之一,从建筑面积方面对深圳二手房的数据进行分析。

  1. 所在楼层对房价的影响

作为房屋类型的影响因素之一,从所在楼层方面对深圳二手房的数据进行分析。

  1. 户型结构对房价的影响

作为房屋类型的影响因素之一,从户型结构方面对深圳二手房的数据进行分析。

  1. 建筑类型对房价的影响

作为房屋类型的影响因素之一,从建筑类型方面对深圳二手房的数据进行分析。

  1. 建筑结构对房价的影响

作为房屋类型的影响因素之一,从建筑结构方面对深圳二手房的数据进行分析。

  1. 抵押信息对房价的影响

作为房屋类型的影响因素之一,从是否抵押方面对深圳二手房的数据进行分析。

  1. 房屋年限对房价的影响

作为房屋类型的影响因素之一,从房屋使用年限方面对深圳二手房的数据进行分析。

  1. 装修情况对房价的影响

作为房屋类型的影响因素之一,从装修情况方面对深圳二手房的数据进行分析。

  1. 配备电梯对房价的影响

作为房屋类型的影响因素之一,从是否配备电梯方面对深圳二手房的数据进行分析。

  1. 深圳二手房房屋户型占比情况

通过绘制饼图,展示深圳二手房的房屋户型占比情况。

  1. 深圳二手房所在楼层占比情况

通过绘制柱状图,统计深圳各楼层二手房数量分布。

  1. 深圳二手房房屋朝向分布情况

通过绘制柱状图,统计深圳二手房房屋朝向分布情况。

  1. 深圳各区域二手房平均单价

通过绘制柱状图,展现深圳各区域二手房平均单价。

  1. 可视化呈现结果
  1. 整体房价分析

21 整体房价分析

从统计结果上来看,深圳二手房的最高价格超过50万元/平方米,最低价格不高于2万元/平方米,悬殊极大。房价的平均数和中位数均在5-6万元/平方米。

下面展示深圳整体二手房价格与数量的柱状图:

22 整体房价的柱状图

通过上图可以看出,二手房的价格主要集中在5-6万/平方米;从整体分布来看,其数据分布类似于正态分布,呈现单峰特点。

  1. 行政区化对房价的影响

①各行政区划内房价的平均值柱状图(按从大到小排序)

23 行政区划对平均房价的影响

24 行政区划对平均房价的影响柱状图

从统计结果可以看出南山区的均价最贵,超过8万元/平方米,接下来是福安区7.7万元/平方米左右,宝安区、龙华区和罗湖区,三者房价比较接近,在6-5万元/平方米的区间内。

②各行政区划二手房价格分析箱线图

25 行政区划对平均房价的影响箱线图代码

26 行政区划对平均房价的影响箱线图

从深圳各行政区划二手房价格的箱型图可以看出,南山区、盐田区、福田区、罗湖区具有较多上侧异常值,其中南山区最多。可想而知越靠近知名商圈的房价会特别贵。相反,深圳的周边区划异常值极少,如光明区没有异常值,大鹏新区异常值为1,房价分布区间相对较小。

  1. 建筑面积对房价的影响

房屋面积在一定程度上反映了房屋类型。例如面积超过200平方米的房子很有可能是别墅,此类房屋往往在优质住宅区内,价格很有可能偏高。

首先查看参考单价随房屋面积的分布,采用散点图进行可视化:

27 房屋面积对参考单价的影响散点图

由上图看出全部数据的散点图分布较乱,看不到明显的规律。结合前面行政区划对房价的分析,猜想10个行政区内房价应该存在不同的分布规律,因此有必要区分各个行政区划:

28 区分各个行政区划

29 深圳各行政区内房屋面积对房价的影响(散点图)

为了更好地体现各行政区划房价分布的区别,将作图范围缩小,仍包含绝大部分数据。

图例按照各行政区划平均房价的顺序排列,红色为价格第一梯队,蓝色为价格第二梯队,绿色为价格第三梯队,灰色为价格第四梯队,黄色为价格第五梯队。每个梯度包含两个行政区划。从散点图中可以明显观察到第一梯队的红色散点相对偏向左上方,第二梯队蓝色相比于第一梯度整体向下偏移,以此类推各个梯队相比于上一梯队整体向下偏移。

③为了更明显地比较各行政区房屋面积对房价影响规律,对各区的散点进行最小二乘线性拟合。

导入优化模块,作线性拟合:

30 线性拟合代码

31 线性拟合结果图

从线性拟合结果上来看,房屋单价随房屋面积的变化规律与预期相符合,即平均房价越高的行政区划,其房屋单价随房屋面积变化的回归线越偏向左上方。仅光明区和盐田区存在例外,其回归线的斜率较高。

房屋面积小时其房屋单价较低,符合预期;但随着房屋面积增大,特别是超过200平方米后其房屋单价急剧上升。探讨后认为,造成这种情况的主要原因是样本量较少,导致一部分异常数据会显著改变线性拟合的结果。

  1. 所在楼层对房价的影响

通过绘制三幅子图分别是深圳二手房所在楼层的占比情况(饼图)、各个行政区划的中高楼层数量堆叠图和各行政区划低中高楼层的参考单价柱状图来分析。

32 所在楼层对房价的影响代码

33 所在楼层对房价的影响结果

34 所在楼层对房价的影响可视化

首先通过第一幅饼图可以看出,深圳二手房所在楼层的占比情况,中层占比最高达37.66%其次是高楼层占32.56%、低楼层占29.75%,最后地下室占0.02%。

通过第二幅堆叠图可以看出各行政区划中高楼层的占比情况及数量,基本上是各占一半。

第三幅柱状图可以看出低中高楼层在各个行政区划的参考单价,其中南山区三种楼层的单价相近且最高,大鹏新区的三种楼层单价相近且最低。只有坪山区和盐田区的三种楼层间的单价不太一致。

  1. 户型结构对房价的影响

通过绘制两幅子图分别是深圳二手房户型结构的占比情况(饼图)、各行政区划不同户型结构的参考单价柱状图来分析。

35 户型结构对房价的影响

36 户型结构对房价的影响可视化

通过第一幅饼图可以看出深圳二手房户型结构的整体占比情况,平层结构的存量居多,和第二名复式结构的比例大概是8:1,最后是错层和跃层占比较低。这个数据也和现有普通开发商楼盘对应的户型结构比例相近,因此我们主要分析平层和复式结构对房价的影响。

第二幅柱状图可以看出平层和复式在各个行政区划的参考单价,其中南山区两种结构户型单价相近且最高,大鹏新区和坪山区的两种结构户型单价相近且最低。只有光明区、宝安区、盐田区的三种楼层间的单价不太一致。此外还可以看出除了光明区 其他几个区大多数都是复式价格大于平层。

  1. 建筑类型对房价的影响

通过绘制三幅子图分别是深圳二手房建筑类型的占比情况(饼图)、各个行政区划的板塔结合和塔楼的数量堆叠图和各行政区划建筑类型的参考单价柱状图来分析。

37 建筑类型对房价的影响

38 建筑类型对房价的影响可视化

首先通过第一幅饼图可以看出,深圳二手房建筑类型整体的占比情况,板塔结合占比最高达50.52%其次是塔楼占33.35%、板楼占15.5%,平房、钢混结构、混合结构等几种占比较低。

通过第二幅堆叠图可以看出各行政区划中板塔结合和板楼两种建筑类型的占比情况及数量。只有南山区的塔楼建筑类型比板塔结合类型多。

第三幅柱状图可以看出板塔结合、塔楼、板楼三中建筑类型在各个行政区划的参考单价,其中南山区三种建筑类型的单价相近且最高,大鹏新区的三种建筑类型单价相近且最低。

  1. 建筑结构对房价的影响

通过绘制三幅子图分别是深圳二手房建筑结构的占比情况(饼图)、各个行政区划的钢混结构和框架结构的堆叠图和各行政区划不同建筑结构的参考单价柱状图来分析。

39 建筑结构对房价的影响

 

40 建筑结构对房价的影响可视化

第一幅饼图可以看出,深圳二手房建筑结构整体的占比情况,钢混结构占比最高达86.92%其次是框架结构占4.77%,这个数据也和现有建筑对使用的建筑结构相近。因此我们主要分析钢混结构和框架结构对房价的影响。

通过第二幅堆叠图可以看出各行政区划中钢混结构和框架结构两种建筑结构的占比情况及数量,可以看出各个行政区划的建筑结构基本上都是钢混结构。

第三幅柱状图可以看出钢混结构、框架结构这两种建筑结构在各个行政区划的参考单价,其中钢混结构在南山区的参考单价最高,框架结构在南山区和福田区的参考单价相近且最高。此外只有光明区的钢混结构单价高于框架结构单价。

  1. 抵押信息对房价的影响

通过绘制三幅子图分别是深圳二手房抵押信息的占比情况(饼图)、各个行政区划有无抵押的堆叠图和各行政区划有无抵押的参考单价柱状图来分析。

41 抵押信息对房价的影响

42 抵押信息对房价的影响可视化

第一幅饼图可以看出有抵押的二手房是无抵押的两倍,基本上每个房源都有明确的是否抵押信息。

第二幅堆叠图可以看出福田区的无抵押的房源占比相比于其他行政划区而言最高。

第三幅柱状图可以看出,只有盐田区的有抵押房源单价高于无抵押的房源单价,其余行政划区有无抵押的房源单价均相近。

  1. 房屋年限对房价的影响

通过绘制三幅子图分别是深圳二手房房屋年限的占比情况(饼图)、各个行政区划有房屋年限堆叠图和各行政区划有房屋年限的参考单价柱状图来分析。

43 房屋年限对房价的影响

44 房屋年限对房价的影响可视化

通过第一幅饼图可以看出深圳二手房的房屋年限已满五年的占比达68.44%超过整体房源的一半,其次是满两年的占整体的26.44%,未满两年的仅占5.13%。

第二幅堆叠图展现了各个行政区划房屋年限满五年和满两年的占比及数量。其中盐田区房源满五年的占比最高。可以看出盐田区相比于其他行政区划旧楼要多一点。

第三幅柱状图展现了各个行政区划不同房屋年限的参考单价,其中南山区不论房屋年限多少参考单价都相近且最高,光明区满五年的参考单价比其他两种高,坪山区未满两年的房屋单价比其他两种高。

  1. 装修情况对房价的影响

通过绘制三幅子图分别是深圳二手房装修情况的占比情况(饼图)、各个行政区划有装修情况堆叠图和各行政区划有装修情况的参考单价柱状图来分析。

45 装修情况对房价的影响

46 装修情况对房价的影响可视化

第一幅饼图展现了深圳二手房装修情况的占比,精装房源将近占整体的一半(46.44%),有29.05%的房源并未说明装修情况,21.48%的房源是简装。

第二幅堆叠图展现了各行政区划精装和简装的房源数量及占比,其中光明区的房源基本都是精装,福田区简装的房源占福田区整体房源比例最大。

第三幅柱状图可以看出各个行政区划简装和精装的参考单价,南山区的精装参考单价最高,对于简装的单价福田区和南山区相近且最高。

  1. 配备电梯对房价的影响

通过绘制三幅子图分别是深圳二手房是否配备电梯的占比情况(饼图)、各个行政区划是否配备电梯情况的堆叠图和各行政区划是否配备电梯的参考单价柱状图来分析。

47 配备电梯对房价的影响

48 配备电梯对房价的影响可视化

第一幅饼图展示了深圳二手房是否配备电梯的比例情况,可以看出大部分房源都是配备了电梯的,与没有配备电梯相比接近9:1的比例。

第二幅图堆叠图可以看出各个行政区划是否配置电梯的数量及比例,光明区、坪山区、大鹏新区的房源基本上都有电梯。

第三幅图柱状图展示了各个行政区划是否配置电梯的参考单价,南山区两者的参考单价悬殊较高可以看出南山区配置了电梯的房源的参考价格高于其他所有地区的价格,属于繁华地段。

  1. 深圳二手房房屋户型占比情况

绘制饼图如下所示。

49 深圳二手房房屋户型占比情况

50 深圳二手房房屋户型占比饼图

通过饼图展示的深圳二手房房屋户型占比情况可以看出,2室1厅和3室2厅这种房源比较普遍,也比较符合当下的社会需求。5室1厅和5室2厅的房源较少,这种户型可能不太适用。

  1. 深圳二手房所在楼层占比情况

绘制柱状图如下。

51 二手房所在楼层数量分布

52 二手房所在楼层数量分布柱状图

通过柱状图可以看出深圳二手房楼层为中楼层的房源数目较多,高楼层和低楼层的房源数目相差不大,地下室的数目极少几乎没有这种房源。

  1. 深圳二手房房屋朝向分布情况

绘制柱状图如下。

53 二手房房屋朝向的占比情况

54 二手房所在楼层占比情况柱状图

通过柱状图可以看出,房屋朝向为南的数目最多,其次为东南朝向,朝向为北和朝向为西南的房源数目相近,朝向为南北、西北、东、东北的数目相近,纵观整个图以指数递减的趋势。

  1. 深圳各区域二手房平均单价

55 二手房平均单价

56 二手房平均单价柱状图

通过柱状图可以看出深圳二手房的单价从高到底依次是南山区,福田区,宝安区,龙华区,罗湖区,盐田区,龙岗区,光明区,坪山区最后是大鹏新区。可以看出南山区较为繁华房价较高,与大鹏新区相比单价差距较大。

  1. 结论

上述探索式分析主要从七大方面来展开,分别是整体房价分析、地理因素对房价的影响、房屋类型(再细分为建筑面积、所在楼层、户型结构、建筑结构、建筑类型、抵押信息、房屋年限、装修情况、配备电梯九大因素)对房价的影响,以及深圳二手房房屋户型占比情况、朝向分布情况、所在楼层分布情况、平均房价占比情况。

整体房价分析得出深圳二手房的最高价格超过50万元/平方米,最低价格不高于2万元/平方米,差距极大,房价的平均数和中位数均在5-6万元/平方米。

通过探讨九种不同房屋类型因素对房价的影响,南山区的参考单价无论在是何种因素下都位列第一,属于繁华地段。相反,大鹏新区的参考单价基本上均是最低。总的来说对房价影响较大的因素有六个分别是行政区、建筑面积、户型结构、装修情况、配备电梯、建筑结构。

对于户型而言,2室1厅和3室2厅这种房源比较普遍,也比较符合当下的社会需求。5室1厅和5室2厅的房源较少,可能不太适用。因此通过满足不同个人或家庭对于户型的需求,对于房屋均价较高的深圳而言,2室1厅足够满足大部分家庭的需要,因此较受欢迎。

对于朝向而言,房屋朝向为南的数目最多,其次为东南朝向。根据历史情况而言,从古至今,坐北朝南都是公认的最好的朝向,朝南房间明亮一些,干燥些,朝北的房子阴暗潮湿一点,因此房屋朝向为南的房屋数目最多,也比较随主流。

对于二手房楼层而言,中楼层的房源数目较多,高楼层和低楼层的房源数目相差不大。在现实生活中,如果楼层过高,停水停电会很麻烦,太低会很潮湿,终日见不到阳光。

对于平均单价而言,从高到底依次是南山区,福田区,宝安区,龙华区,罗湖区,盐田区,龙岗区,光明区,坪山区最后是大鹏新区。

四、数据分析模型

  1. 结合分析的目标,拟采用哪一种模型(如聚类、分类、回归)开展分析

综合考虑多个因素对房价的影响,并建立预测模型。通过对数据进行一系列的分析,选择对房价有明显影响的6个因素(行政区、建筑面积、户型结构、装修情况、配备电梯、建筑结构)。

因为预测目标—房价是一个连续变量,所以本实验中的房价预测属于一个回归问题。

常见的机器学习回归模型有线性回归、K近邻、支持向量机、回归树和随机森林等。本次实验选用三类模型分别是线性回归、支持向量机和随机森林来进行对房价的预测。

  1. 模型评估

选用的模型是线性回归、支持向量机和随机森林三种模型。在训练模型和预测完成后,需要对模型的预测效果进行评价。常用的评价指标有:平均绝对误差(mean_absolute_error)、均方误差(mean_squared_error)、中位数绝对误差(median_absolute_error)、解释方差得分(explained_variance_score)以及R方得分(r2_score)。

本次实验使用均方误差和R方得分两个指标,期望均方误差尽量低,R方得分尽量高。

  1. 可视化结果
  1. 对数据进行了一系列的分析,所选的因素均对房价有明显影响,并且所有数据不存在缺失现象。但行政区划为文字,所以需要使用one-hot编码,one-hot编码是将定类的非数值型类型量化的一种方法,在pandas中使get_dummies() 方法实现。

57 one-hot编码

使用one-hot编码修改特征“行政区”、“户型结构”、“装修情况”、“配备电梯”、“建筑结构”后结果如下:

58 编码结果

绘制热力图结果如下所示。

59 绘制热力图

60 热力图

可以根据颜色观察特征的相关性。颜色偏红或者偏蓝都说明相关系数较大,即两个特征对于目标变量的影响程度相似,也就是说存在严重的重复信息,会造成过拟合现象。通过特征相关性分析,可以找出哪些特征有严重的重叠信息,然后择优选择。

  1. 确定数据中的特征与标签、数据分割,随机采样25%的数据作为测试样本,其余作为训练样本,最后进行数据标准化处理。

61 分割及标准化

  1. 使用线性回归模型预测

62 线性回归模型预测

  1. 使用支持向量机模型预测

63 支持向量机模型预测

  1. 使用随机森林回归

64 随机森林回归

  1. 本实验中调用均方误差MSE和R方得分两个指标,期望均方误差尽量低,R方得分尽量高:

65 线性回归模型R

66 支持向量机模型R

67 随机森林模型R

通过比较三种回归模型的两种评价指标的结果,可以看出,R方得分与均方误差成负相关关系,因此只看一个指标即可。R方得分越高,模型的预测能力越强。则本实验中所用到的回归模型中随机森林回归模型的预测能力最强。

(7)为能更加直观地对比不同模型的预测能力,下面对线性回归模型、支持向量机模型、随机森林回归预测结果进行可视化处理。

68 线性回归模型预测效果

69 支持向量机模型预测效果

70 随机森林模型预测效果

上幅图随机森林回归模型在低房价区间预测效果较好,但随着房价超过14万元/平方米后预测值偏低。

五、方案评估

本次课程设计达到了预期的目标,完成了所有设计任务,体现在四个方面分别是明确分析目标与任务、进行数据预处理、数据探索分析(七大方面)、数据分析模型。课程设计可以说是一门课程的总结,设计难度中等,仍存在着一些问题,在爬取数据时,有些数据的字段位置错乱,数量较少,故我们直接将它删除,可能预测结果的准确性会略微降低一点。并且在进行探索分析的时候,有的字段对房价影响不大,有的字段影响较大,对于影响不那么明显的字段我们也选取了来进行预测,可能会出现问题。最后存在的问题是在使用随机森林模型预测的时候R方只有0.3左右,过于低,预测效果很不好,需要进行进一步检查以及优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/82399.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/82399.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/82399.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kotlin IR编译器插件开发指南

在 Kotlin 中开发基于 IR(Intermediate Representation)的编译器插件,可以深度定制语言功能或实现高级代码转换。以下是分步骤指南: 一、IR 编译器插件基础 IR 是什么? Kotlin 编译器将源码转换为 IR 中间表示&#xf…

如何用 python 代码复现 MATLAB simulink 的 PID

MATLAB在 Simulink 里做以下设置MATLAB 脚本调用示例 python 实现离散 PID 实现(并行形式) Simulink 中两种 PID 结构(并联形式, I-形式)下连续/离散时域里积分增益 I 的表示并联(Parallel) vs 理想&#x…

黑马点评--基于Redis实现共享session登录

集群的session共享问题分析 session共享问题:多台Tomcat无法共享session存储空间,当请求切换到不同Tomcat服务时,原来存储在一台Tomcat服务中的数据,在其他Tomcat中是看不到的,这就导致了导致数据丢失的问题。 虽然系…

SkyWalking启动失败:OpenSearch分片数量达到上限的完美解决方案

🚨 问题现象 SkyWalking OAP服务启动时报错: org.apache.skywalking.oap.server.library.module.ModuleStartException: java.lang.RuntimeException: {"error":{"root_cause":[{"type":"validation_exception", "reason&q…

向量数据库选型实战指南:Milvus架构深度解析与技术对比

导读:随着大语言模型和AI应用的快速普及,传统数据库在处理高维向量数据时面临的性能瓶颈日益凸显。当文档经过嵌入模型处理生成768到1536维的向量后,传统B-Tree索引的检索效率会出现显著下降,而现代应用对毫秒级响应的严苛要求使得…

MySQL#秘籍#一条SQL语句执行时间以及资源分析

背景 一条 SQL 语句的执行完,每个模块耗时,不同资源(CPU/IO/IPC/SWAP)消耗情况我该如何知道呢?别慌俺有 - MySQL profiling 1. SQL语句执行前 - 开启profiling -- profiling (0-关闭 1-开启) -- 或者:show variables like prof…

【数据结构】实现方式、应用场景与优缺点的系统总结

以下是编程中常见的数据结构及其实现方式、应用场景与优缺点的系统总结: 一、线性数据结构 1. 数组 (Array) 定义:连续内存空间存储相同类型元素。实现方式:int[] arr new int[10]; // Javaarr [0] * 10 # Python操作: 访问&…

PyTorch中cdist和sum函数使用示例详解

以下是PyTorch中cdist与sum函数的联合使用详解: 1. cdist函数解析 功能:计算两个张量间的成对距离矩阵 输入格式: X1:形状为(B, P, M)的张量X2:形状为(B, R, M)的张量p:距离类型(默认2表示欧式距离)输出:形状为(B, P, R)的距离矩阵,其中元素 d i j d_{ij} dij​表示…

Ansible配置文件常用选项详解

Ansible 的配置文件采用 INI 格式,分为多个模块,每个模块包含特定功能的配置参数。 以下是ansible.cfg配置文件中对各部分的详细解析: [defaults](全局默认配置) inventory 指定主机清单文件路径,默认值为 …

了解FTP搜索引擎

根据资料, FTP搜索引擎是专门搜集匿名FTP服务器提供的目录列表,并向用户提供文件信息的网站; FTP搜索引擎专门针对FTP服务器上的文件进行搜索; 就是它的搜索结果是一些FTP资源; 知名的FTP搜索引擎如下, …

【大模型面试每日一题】Day 28:AdamW 相比 Adam 的核心改进是什么?

【大模型面试每日一题】Day 28:AdamW 相比 Adam 的核心改进是什么? 📌 题目重现 🌟🌟 面试官:AdamW 相比 Adam 的核心改进是什么? #mermaid-svg-BJoVHwvOm7TY1VkZ {font-family:"trebuch…

C++系统IO

C系统IO 头文件的使用 1.使用系统IO必须包含相应的头文件,通常使用#include预处理指令。 2.头文件中包含了若干变量的声明,用于实现系统IO。 3.头文件的引用方式有双引号和尖括号两种,区别在于查找路径的不同。 4.C标准库提供的头文件通常没…

多模态理解大模型高性能优化丨前沿多模态模型开发与应用实战第七期

一、引言 在前序课程中,我们系统剖析了多模态理解大模型(Qwen2.5-VL、DeepSeek-VL2)的架构设计。鉴于此类模型训练需消耗千卡级算力与TB级数据,实际应用中绝大多数的用户场景均围绕推理部署展开,模型推理的效率影响着…

各个网络协议的依赖关系

网络协议的依赖关系 学习网络协议之间的依赖关系具有多方面重要作用,具体如下: 帮助理解网络工作原理 - 整体流程明晰:网络协议分层且相互依赖,如TCP/IP协议族,应用层协议依赖传输层的TCP或UDP协议来传输数据&#…

11.8 LangGraph生产级AI Agent开发:从节点定义到高并发架构的终极指南

使用 LangGraph 构建生产级 AI Agent:LangGraph 节点与边的实现 关键词:LangGraph 节点定义, 条件边实现, 状态管理, 多会话控制, 生产级 Agent 架构 1. LangGraph 核心设计解析 LangGraph 通过图结构抽象复杂 AI 工作流,其核心要素构成如下表所示: 组件作用描述代码对应…

相机--基础

在机器人开发领域,相机种类很多,作为一个机器人领域的开发人员,我们需要清楚几个问题: 1,相机的种类有哪些? 2,各种相机的功能,使用场景? 3,需要使用的相机…

【备忘】 windows 11安装 AdGuardHome,实现开机自启,使用 DoH

windows 11安装 AdGuardHome,实现开机自启,使用 DoH 下载 AdGuardHome解压 AdGuardHome启动 AdGuard Home设置 AdGuardHome设置开机自启安装 NSSM设置开机自启重启电脑后我们可以访问 **http://127.0.0.1/** 设置使用 AdGuardHome DNS 效果图 下载 AdGua…

安装部署配置jenkins

随着现代软件开发流程的不断演进,持续集成(CI)和持续交付(CD)已经成为了开发团队必不可少的工具。而Jenkins作为最为广泛应用的CI/CD工具,能够自动化执行构建、测试、部署等任务。Maven作为Java生态中广泛使用的构建工具,它能够帮助开发人员自动化管理项目的构建、依赖和…

How to balance work and personal life?

How to balance work and personal life? 1. Background2. How to balance work and personal life?References 1. Background Let me introduce /ˌɪntrəˈdjuːs/ the background /ˈbkɡraʊnd/ first. Today we will talk about this topic: How to balance work and …

存储引擎系列--LSM的Compaction研究方法论

本文主要包含以下内容: 1、Compaction 设计空间的四个原语:触发器、数据布局、压缩粒度、数据移动策略。任何已有的compaction策略和新的策略都可以由这个四个原语组建构成。 2、详细介绍这四个原语的定义,策略方法 3、现有的基于LSM的知名系统的compaction策略按照四个原语…