二手房大数据分析系统

本文介绍了使用Python进行南京二手房数据采集、清洗、可视化分析和聚类的过程,通过网络爬虫获取链家网信息,利用Numpy、Matplotlib等工具进行数据分析,最终将房源分为大户型、地段型、大众蜗居型和高性价比型四类,为购房者提供决策依据。
摘要由CSDN通过智能技术生成

一、项目介绍

        本项目是一个基于Python的南京二手房数据采集与可视化分析应用程序。该程序首先通过网络爬虫采集链家网上所有南京二手房的房源数据,并对采集到的数据进行清洗;然后,对清洗后的数据进行可视化分析,探索隐藏在大量数据背后的规律;最后,采用一个聚类算法对所有二手房数据进行聚类分析,并根据聚类分析的结果,将这些房源大致分类,以对所有数据的概括总结。通过上述分析,可以了解到目前市面上二手房各项基本特征及房源分布情况,为众多的购房者进行购房决策提供了参考。

二、应用技术

    1)Python网络爬虫技术

•Requests
•Beautifulsoup

    2)Python数据分析技术

•Numpy
•Matplotlib
•Pandas

    3)k-means聚类算法

    4)高德地图开发者应用JS API

三、数据采集及清洗

1、网站结构分析

链家网二手房信息界面如下:

 

2、目标数据:

   我们需要采集的目标数据就在该页面,包括基本信息、房屋属性和交易属性三大类。各类信息包括的数据项如下:

•基本信息:小区名称、所在区域、总价、单价。
•房屋属性:房屋户型、所在楼层、建筑面积、户型结构、套内面积、    建筑类型、房屋朝向、建筑结构、装修情况、梯户比例、配备电梯、产权年限。
•交易属性:挂牌时间、交易权属、上次交易、房屋用途、房屋年限、产权所属、抵押信息、房本备件。

3、数据清洗

    对于爬虫程序爬下来的数据并不能直接进行数据分析,需要先去掉一些“脏”数据,修正一些错误数据。

 

四、数据可视化分析

1、数据可视化分析基本步骤

    该阶段主要是对数据从整体上做一个探索性分析并把数据进行可视化呈现,帮助人们更好、更直观的认识数据,把隐藏在大量数据背后的信息集中和提炼出来,总结出所研究对象的内在规律。我们主要对二手房房源的总价、单价、面积、户型、地区等数据项进行分析。数据可视化分析主要步骤如下:

   1)数据加载

•数据项的行列索引的处理
•数据类型推断和数据转换
•缺失值的处理

    2)数据转换与运算

    3)数据可视化呈现

2、数据整体质量分析

数据基本情况如右图:

•数据一共20527行、25列
•占用内存3.9+MB
•数据类型上:3列float64类型,2列int64类型,20列object类型
•除了户型结构、套内面积、抵押信息三列数据项缺失值比较多之外,其他列数据项的缺失值都不多

综上,所以数据整体的质量还是不错的。

整体数据文件词云如下:

南京二手房房源中会经常出现的高频词:商品房普通住宅一梯两户钢混结构精装等。

我们可以通过这些高频词十分粗略的了解整个数据文件中的基本内容。

南京各区域二手房房源数量折线图如下:

从图中可以看出:

•江宁在售的房源数量最多,高达5000多套,占了总量的1/4。
•之相反的是六合区,六合区在售的房源数量仅有1套,数量太少
•其他各区的数量相差不多。

所以,后面关于六合区的分析都会存在一定误差。

南京二手房房屋用途柱状图如下:

从图中可以看出:

•房屋用途类型有:普通住宅、别墅、商业办公、酒店式公寓、车库5中类型
•普通住宅类型近20000套,占总量绝大部分

所以,没有剔除掉房屋用途为其他类型的记录,这些类型在房源整体样本中占比相当少,基本不会影响后面的分析结果,同时它们也属于二手房的范畴内。

南京各区域二手房平均单价柱状图如下:

从图中可以看出:

•建邺区和鼓楼区二手房平均单价最高,近40000元/平米
•从整体上来看,南京市各个区域均价都已经远远的超过20000元/平米了

可以看到近几年南京市房价猛涨的结果。浦口区虽然相比房价已经很低了,但相较于浦口前几年的房价,差不多是翻一番了。

南京各区域二手房单价箱线图如下:

从图中可以看出:

•建邺和鼓楼两个区域房源单价正常值分布都不是太集中,50%的单价分布在30000~50000的区间内,区间跨度比其他区都要大。
•虽然建邺区平均单价略高于鼓楼区,但鼓楼区的异常值特别多
•玄武区和秦淮区单价正常值分布较为集中50%的数据都分布在30000~40000之间,但这两个异常值也比较多,单价上限也非常高。

所以,综合以上情况来看,鼓楼区应该是南京市单价最高的区域。与鼓楼区相邻的这些区域单价如此多的异常值,跟这些区域集中的教育和医疗资源有着密不可分的关系。

南京各区域二手房总价箱线图如下:

从图中可以看出:

•鼓楼、建邺这两个单价最高区域,500万元的二手房以分布在正常值范围内了。
•南京其他各区域二手房价格大部分都集中在200~400万元之间,下四分位数都十分靠近200万。
•江宁、栖霞虽然在单价上不高,但总价不低,尤其是近几年房价涨幅比较高的江宁,500万以上异常值都已经比较多了。
•浦口区总价数据分布最为集中,绝大部分数据都200~300万区间内。

 南京二手房单价最高Top20如下:

从图中可以看出:

•前20单价都已经超过9万,并且都集中在鼓楼区,这也印证了上面箱线图中鼓楼如此多异常值的存在

南京二手房单价热力图如下:                

              

南京二手房总价热力图如下:

 红色区域代表房源密集度高且房价高的区域。从图中可以看出鼓楼、玄武、秦淮和建邺上半部分是密集度最高的区域。这4个区域处于南京市正中心的位置,交通方便,医疗、教育等资源集中,这些因素一起造就了这些区域高价格。

南京二手房总价200万以下的区域分布图如下:

从图中可以看出:

除了鼓楼区和建邺区有点少,其他区域低于200万的房子还是有的。

 

南京二手房建筑面积分布区间图如下:                     

南京各区域二手房平均建筑面积如下:

•建筑面积50~100区间内房源数量最多,超过了10000套。其次是100~150区间与小于50的区间。
•玄武、秦淮、鼓楼这几个单价比较高的老城区平均建筑面积最小,面积80平米左右。反而是江宁、浦口这两个单价最低的区域平均建筑面积最大,面积大小都超过了100平米。
                   

 南京二手房总价与建筑面积散点图如下:

 

 南京二手房单价与建筑面积散点图如下:

•总价与建筑面积这两个变量符合正相关关系。数据点分布比较集中,大多数都在总价0~1500万元与建筑面积0~400平米这个区域内。
•建筑面积与单价并无明显关系,同样样本点分布也较为集中,离散值不多,但单价特别高的房源,建筑面积都不是太大,因为这些房源一般都位于市中心。

 

 南京二手房房屋户型饼状图如下: 

 南京二手房房屋装修饼状图如下:

2室1厅2室2厅作为标准配置,一起占比接近一半。其中3室2厅和3室1厅的房源也占比不少,其他房屋户型的房源占比就比较少了。
•房源全部为二手房的缘故,近60%的房源的房屋装修情况都是写的其他,大家都是自主装修过的。

 南京二手房房屋朝向柱状图如下:

 南京二手房建筑类型饼状图如下:

•只有少数几种的朝向比较多,其余的都非常少,明显属于长尾分布类型(严重偏态)。这也符合我们的认识,房屋朝向一半都是坐北朝南
•房源的建筑类型65.6%都是板楼,现在房地产商喜欢开发的塔楼反而较少,这和南京二手房建筑时间有关都比较久远相符。

 五、数据聚类分析

 1、基本原理

k-Means算法是一种聚类算法,它是一种无监督学习算法,目的是将相似的对象归到同一个蔟中。蔟内的对象越相似,聚类的效果就越好。聚类和分类最大的不同在于,分类的目标事先已知,而聚类则不一样。其产生的结果和分类相同,而只是类别没有预先定义。

2、聚类效果判定标准

使各个样本与所在簇的质心的均值的误差平方和达到最小,这也是评价K-means算法最后聚类效果的评价标准。

3、算法实现步骤

1)选定k值

2)创建k个点作为k个簇的起始质心。

3)分别计算剩下的元素到k个簇中心的相异度(距离),将这些元素分别划归到相异度最低的簇。

4)根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均值。

5)将D中全部元素按照新的中心重新聚类。

6)重复第5步,直到聚类结果不再变化。

7)最后,输出聚类结果。

2、聚类结果统计信息如下

聚类后的单价与建筑面积散点图和总价与建筑面积散点图,聚类前(前2)和聚类后(后二)的散点图对比如下

聚类结果分组0、1、2、3、4的区域分布图(从上到下)

3、聚类结果分析

根据聚类结果和我们的经验分析,我们大致可以将这20000多套房源分为以下4类

a、大户型(面积大,总价高),属于第0类。平均面积都在200平以上,这种大户型的房源相对数量较少,主要分布在鼓楼、建邺、江宁、栖霞等地(具体可从各类中的区域分布图可知)。

b、地段型(单价高),属于第2、4类。这种房源围绕南京市中心位置集中分布,地理位置极好,交通方便,主要分布鼓楼、玄武、建邺、建邺等地(具体可从各类中的区域分布图可知)。

c、大众蜗居型(面积小、价格相对较低、房源多),属于第3类。这类房源分布范围广,主要围绕在各地铁线两边。典型的区域有秦淮、鼓楼、江宁、玄武、浦口等地。

d、高性价比型(面积相对大,单价低),属于第1类。典型的区域有栖霞、浦口、江宁等地

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值