一、项目介绍
本项目是一个基于Python的南京二手房数据采集与可视化分析应用程序。该程序首先通过网络爬虫采集链家网上所有南京二手房的房源数据,并对采集到的数据进行清洗;然后,对清洗后的数据进行可视化分析,探索隐藏在大量数据背后的规律;最后,采用一个聚类算法对所有二手房数据进行聚类分析,并根据聚类分析的结果,将这些房源大致分类,以对所有数据的概括总结。通过上述分析,可以了解到目前市面上二手房各项基本特征及房源分布情况,为众多的购房者进行购房决策提供了参考。
二、应用技术
1)Python网络爬虫技术
2)Python数据分析技术
3)k-means聚类算法
4)高德地图开发者应用JS API
三、数据采集及清洗
1、网站结构分析
链家网二手房信息界面如下:
2、目标数据:
我们需要采集的目标数据就在该页面,包括基本信息、房屋属性和交易属性三大类。各类信息包括的数据项如下:
3、数据清洗
对于爬虫程序爬下来的数据并不能直接进行数据分析,需要先去掉一些“脏”数据,修正一些错误数据。
四、数据可视化分析
1、数据可视化分析基本步骤
该阶段主要是对数据从整体上做一个探索性分析并把数据进行可视化呈现,帮助人们更好、更直观的认识数据,把隐藏在大量数据背后的信息集中和提炼出来,总结出所研究对象的内在规律。我们主要对二手房房源的总价、单价、面积、户型、地区等数据项进行分析。数据可视化分析主要步骤如下:
1)数据加载
2)数据转换与运算
3)数据可视化呈现
2、数据整体质量分析
数据基本情况如右图:
综上,所以数据整体的质量还是不错的。
整体数据文件词云如下:
南京二手房房源中会经常出现的高频词:商品房、普通住宅、一梯两户、钢混结构、精装等。
我们可以通过这些高频词十分粗略的了解整个数据文件中的基本内容。
南京各区域二手房房源数量折线图如下:
从图中可以看出:
所以,后面关于六合区的分析都会存在一定误差。
南京二手房房屋用途柱状图如下:
从图中可以看出:
所以,没有剔除掉房屋用途为其他类型的记录,这些类型在房源整体样本中占比相当少,基本不会影响后面的分析结果,同时它们也属于二手房的范畴内。
南京各区域二手房平均单价柱状图如下:
从图中可以看出:
可以看到近几年南京市房价猛涨的结果。浦口区虽然相比房价已经很低了,但相较于浦口前几年的房价,差不多是翻一番了。
南京各区域二手房单价箱线图如下:
从图中可以看出:
所以,综合以上情况来看,鼓楼区应该是南京市单价最高的区域。与鼓楼区相邻的这些区域单价如此多的异常值,跟这些区域集中的教育和医疗资源有着密不可分的关系。
南京各区域二手房总价箱线图如下:
从图中可以看出:
南京二手房单价最高Top20如下:
从图中可以看出:
南京二手房单价热力图如下:
南京二手房总价热力图如下:
红色区域代表房源密集度高且房价高的区域。从图中可以看出鼓楼、玄武、秦淮和建邺上半部分是密集度最高的区域。这4个区域处于南京市正中心的位置,交通方便,医疗、教育等资源集中,这些因素一起造就了这些区域高价格。
南京二手房总价200万以下的区域分布图如下:
从图中可以看出:
除了鼓楼区和建邺区有点少,其他区域低于200万的房子还是有的。
南京二手房建筑面积分布区间图如下:
南京各区域二手房平均建筑面积如下:
南京二手房总价与建筑面积散点图如下:
南京二手房单价与建筑面积散点图如下:
南京二手房房屋户型饼状图如下:
南京二手房房屋装修饼状图如下:
南京二手房房屋朝向柱状图如下:
南京二手房建筑类型饼状图如下:
五、数据聚类分析
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类。典型的区域有栖霞、浦口、江宁等地