小项目 上海二手房数据分析

本文所使用的数据是安居客的二手房数据(爬虫水平不怎样,一爬就404了,所以这边直接用八爪鱼给抓了数据,爬虫的程序之后补上,用八爪鱼爬非常简单,不会的同学可以参一下这个链接https://wenku.baidu.com/view/11cece9859f5f61fb7360b4c2e3f5727a5e924d2.html)。我总共导出了1000多条数据。

我是一个纯小白,所以数据分析的流程参考了https://blog.csdn.net/Caesar1993_Wang/article/details/80237461,并对里面的代码进行了一点自己的补充。

一、初步分析

1、整体二手房房价分析

小项目 上海二手房数据分析_第1张图片

上海二手房单为面积价格(元/平方米):

最高价格为:260504

最低价格为:8077

平均价格为:41600.63542642924

中位数为: 37463.0

从图像上看上海二手房房价的分布

小项目 上海二手房数据分析_第2张图片


小项目 上海二手房数据分析_第3张图片

图像显示上海市二手房呈现右偏分布。


2、影响房价的因素分析

(1)区位因素的影响

首先让我们看一下不同行政区的房价情况:


小项目 上海二手房数据分析_第4张图片
图片发自App



小项目 上海二手房数据分析_第5张图片
图片发自App


小项目 上海二手房数据分析_第6张图片
图片发自App

从图中结果可以看出崇明的二手房房价最低,徐汇、长宁的价格非常高,几乎是上海周边、崇明的8倍。让我们对各个行政区的房价箱线图,看其数据的分布情况:


图片发自App


小项目 上海二手房数据分析_第7张图片
图片发自App



箱线图显示浦东、徐汇、静安有较高的异常值点,上海周边、崇明、金山的房价较低且分布集中。

(2)面积对房价的相关性分析


小项目 上海二手房数据分析_第8张图片
图片发自App


小项目 上海二手房数据分析_第9张图片
图片发自App


小项目 上海二手房数据分析_第10张图片
图片发自App

从散点图中可以看出第一梯队的黑色散点相对偏向左上方,前一梯队的整体上高于后一梯队。面积与房价的具体关系,我在这里用一元线性回归的结果具体展示:


小项目 上海二手房数据分析_第11张图片
图片发自App


小项目 上海二手房数据分析_第12张图片
图片发自App

1.1上面直线图显示,第一梯度的线斜率均为正,即随面积的增加,单位房价在增加,并且相比于其他线基本上更为陡峭,也就是位于繁华地带的上海二手房房价单价随面积增加的斜率更大。

2.2金山、虹口、杨浦的房子竟然随着面积的增大,单位面积的房价在减少

3.3第二梯度的二手房,随着面积增加二手房的单位面积价格也在增加 #总结来看,繁华地段的房子真的很值钱,寸金寸土,而不是繁华地段的房子单位面积价格增幅就比较少,也就没有像繁华地带那么值钱

二、区位的进一步分析

前文已经对各个区位的房价进行了粗略的分析,接下来将进行区位的进一步分析。

(1)绘制二手房的热力图

绘制二手房热力图的时候,我们需要各个房子的经纬度坐标,这里可以借助百度API进行获取。

【获取百度api方法:前往http://lbsyun.baidu.com/,注册后进入控制台,创建应用,注意应用类别需要时浏览器端,不然打不开。创建完成后,你便会得到你的ak,之后便可用这个ak爬取你的数据啦】


小项目 上海二手房数据分析_第13张图片
图片发自App


小项目 上海二手房数据分析_第14张图片
图片发自App


小项目 上海二手房数据分析_第15张图片
图片发自App

将得到经纬度数据保存后,我们可以读取它,并将经纬度、价格数据进行成之后可以填进网页的格式,转换方式如下:


小项目 上海二手房数据分析_第16张图片
图片发自App

得到经纬度,价格数据后,可以把var points的数据改成你自己的。(这边用到的网页代码是我去http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=135854粘过来的)


小项目 上海二手房数据分析_第17张图片
图片发自App

然后因为我研究的是上海二手房,所以把var point=new BMap.Point(经度,纬度)改成上海的经纬度(121.48038,31.236363)。

最后会绘制结果如下:


小项目 上海二手房数据分析_第18张图片
图片发自App

关于绘制热力图方法,这边写的很粗略,有兴趣的可以看一下这个网页:https://blog.csdn.net/xxzj_zz2017/article/details/79396980

(2)获取各房源距区政府、最近地铁站的距离

以获取房源的方式,同样爬取上海市地铁站、区政府的坐标位置:


小项目 上海二手房数据分析_第19张图片
图片发自App


小项目 上海二手房数据分析_第20张图片
图片发自App

在计算区政府与最近地铁站距离的时候,可以采用百度地图API获取,我这边直接用经纬度的计算方法进行了一个计算(参考链接:https://blog.csdn.net/koryako/article/details/51864161)


小项目 上海二手房数据分析_第21张图片
与区政府的距离计算方法与这个一致

我们将得到的距离数据与价格同样绘制散点图,看两两之间是否存在关系

小项目 上海二手房数据分析_第22张图片
由于这里不同房子与政府的距离相差过大,导致x轴很奇怪,若要细致一点可进行分组来画图

上图显示长宁区等第一梯队的区域虽然离区政府远,但不不影响它们房价的高

小项目 上海二手房数据分析_第23张图片
图片发自App

#本份数据大部分的房源离地铁站都挺近的,对于四个梯度的房子来说,散点图没有很明显的趋势显示地铁对房价的影响,需要做进一步研究。

三、机器学习预测

到此,我已经将做预测需要的数据收集完毕,

实际上影响房价的因素有很多,因此接下来采用机器学习方法综合考虑多个因素对房价的影响,并建立预测模型

本份数据涉及4个自变量(房屋面积、所在行政区划、与区政府及与最近地铁站之间的距离)和1个因变量(房价)

行政区划特征为文字,这里需要使用one-hot编码(https://www.cnblogs.com/lianyingteng/p/7792693.html)

在进行预测前,首先使用one-hot编码修改特征"district"


小项目 上海二手房数据分析_第24张图片
图片发自App

1、线性回归预测


小项目 上海二手房数据分析_第25张图片
图片发自App


小项目 上海二手房数据分析_第26张图片
图片发自App

散点图显示,模型预测效果良好,但当房价高起来时没有低房价的预测效果好。

2、支持向量机回归


小项目 上海二手房数据分析_第27张图片
图片发自App

支持向量机回归中选用不同核函数进行回归,具体结果为:


小项目 上海二手房数据分析_第28张图片
图片发自App

各结果显示的是在测试集上的拟合结果,其中径向基核函数的支持向量机回归效果较好,但略差于线性回归

3、集成模型回归

集成模型这里选用了随机森林、极度随机森林、梯度提升回归进行研究。

把所需要的库先import进来


图片发自App


小项目 上海二手房数据分析_第29张图片
图片发自App


小项目 上海二手房数据分析_第30张图片
图片发自App

使用三种集成模型的回归结果来看,随机森林的回归效果较好,且比支持向量机回归结果要好。

将随机森林的回归结果同样可视化:


小项目 上海二手房数据分析_第31张图片
图片发自App

对比线性回归和随机森林的图,直观上随机森林回归在高房价预测时的预测效果要好一点。

四、结语

本篇通过八爪鱼获取上海市二手房数据,利用百度API获取房源具体位置,计算得到房源距离区政府、最近地铁站的距离,最后利用房价与面积、两个距离、区政府划分情况进行房价预测。

后面的机器学习预测写的比较笼统,因为我不太懂这些算法后面的原理,所以会找时间具体看一下推一下,在对这份数据做更有效全面的分析。











你可能感兴趣的:(小项目 上海二手房数据分析)