基于可视化分析的房地产市场监测与预警机制,展示二手房的价格趋势、区域分布、户型结构等关键信息
1 绪 论
随着城市化进程的加快和人口的增长,住房需求日益增加,自2016年起,我国二手房交易量年均增长12%(国家统计局, 2023)[1],尤其是大城市中,新房价格昂贵使得许多购房者将目光转向二手房市场。二手房因其价格相对灵活、选择范围广、配套设施成熟等特点,逐渐成为许多家庭和投资者的首选。然而,二手房市场的透明度、交易流程的复杂性以及房屋质量的参差不齐等问题也备受关注。
1.1 研究背景、目的与意义
1.1.1 研究背景
1978年改革开放以来,我国的城镇化进程取得了显著成就。根据历史数据和发展趋势推算,截至2024年,我国城镇人口较1978年增长了约450%至500%,城镇人口总数预计达到约9.5亿至10亿人。这一增长反映了我国城镇化进程的快速推进,同时也推动了房地产市场的蓬勃发展,尤其是二手房市场的繁荣。一方面,伴随着各地人口迅速涌入城市,首要解决的是安身立命的住房问题,因此形成了大量的房地产刚性需求;另一方面,城市不断的发展与规划需要进行旧城区改造,新增了大量拆迁户的住房需求。如何在紧张的城市资源中获取个人住房,成为市民日常生活中最关心的问题。由居住需求形成的房地产需求主体是居民家庭,其中仅有少量高收入群体可通过购买新房满足需求,而绝大多数中低收入者需通过二手房实现住房需求。
1.1.2 研究的目的与意义
购房支出是居民生活中一项最为重要的支出,因此居民会在决策前广泛的收集相关信息,并进行多方比对。相比于繁荣的市场需求与市场交易,用户获取城市二手房市场详细信息的渠道却相对单一,一般是通过房产中介机构或购房网站获取信息,这些信息基本都是数条房源的文字介绍。
本文将用户定位为两类人群,一是购房者、房地产中介交易机构及房地产开商,他们存在对二手房的市场行为需求;政府管理者,他们存在对二手房的干预和监管需求。对于普通市民,获取相关信息的渠道多数是通过房地产中介进行了解,根本无法及时全面的了解相关信息,造成了决策的困难。因此,本文致力于收集整理三亚的二手房数据,探索三亚市二手房市场的情况。
1.2 国内外研究现状
1.2.1 数据清洗研究现状
相较于国内,国外在数据清洗方向的研究起步较早,而国内关于数据清洗的研究尽管逊色于国外,但无论是质量还是数量上都正在逐步提升。除了对数据清洗相关技术的创新研究,一些学者也针对数据清洗工作做了较为全面的技术综述。例如,郝爽等发表了一篇关于数据清洗的高质量综述,较为全面的概述了当前主流数据清洗方法及其发展状况。经过对数据清洗方向的文献分析我们不难发现,直接应用数据清洗技术的文献较多,而纯粹研究清洗核心方法和清洗框架的文章相对较少。
1.2.2 二手房研究现状
国内外在二手房可视化分析领域各有侧重,国内研究多依赖政府数据和开源工具,关注政策影响和区域差异。
国外研究数据来源多样,常用商业工具,更关注消费者行为和市场趋势预测。Blake表示,快速公交系统(BRT)的建设可以显著提升周边地区房价[10]。
1.2.3 可视化研究现状
数据可视化,是一种针对数据视觉表现形式的技术研究,是将海量数据的各项属性通过可视化技术的处理展示出来,清晰有效地传达信息。
2 相关技术介绍
2.1 网络爬虫技术介绍
网络爬虫(Web Crawler),也称为网络蜘蛛(Web Spider),是一种在网络上自动地爬取信息的程序,主要作用是在大量的数据中按一定规则进行爬取和存储。其详细处理流程如图:2-1所示。
图2-1 爬虫流程图
![]() |
目前很多网络爬虫都是用后台脚本语言来编写的,比较常见的网络爬虫编写语言有Goleang、C#、Java、PHP、Node.JS、Python等语言,其中由于Python语言的代码简洁,简单易学,并且具有许多不同功能的框架和强大的第三方标准库,因此Python也成为编写网络爬虫使用最为广泛的一种语言。结构关系如图2-2:
图2-2 结构关系图
2.1.1 网络爬虫分类
网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:一、通用网络爬虫(General Purpose Web Crawler)二、聚焦网络爬虫(Focused Web Crawler)三、增量式网络爬虫(Incremental Web Crawler)四、深层网络爬虫(Deep Web Crawler)。
2.2 Django框架
Django是一个由Python编写的具有完整架站能力的开源Web框架。使用Django只需要很少的代就能Python的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的Web服务。Django流程如下图2-1所示:
图2-3 结构关系图
2.3 Bootstrap前端框架
Bootstrap,来自 Twitter,自2011年首次发布以来Bootstrap 已经经历了多个版本的迭代,是目前最受欢迎的前端框架之一[14]。Bootstrap是基于 HTML、CSS、JAVASCRIPT的,它简洁灵活,使得 Web开发更加快捷。
2.4 ECharts可视化框架
ECharts(Enterprise Charts)是由百度开源并捐赠至Apache基金会的数据可视化库,其核心功能是通过声明式配置生成基于Canvas/SVG的高性能交互式图表。ECharts部分图例如图2-4所示:
图2-4 ECharts图例
3 数据预处理
3.1 数据来源
本文基于Python工具通过网络爬虫爬取链家网站三亚市二手房源数据,利用requests模块进行爬取,为了有效地爬取网站数据并避免封锁,需采用多种策略。
3.2 数据清洗理论
数据清洗理是数据预处理的关键步骤,旨在提高数据质量,使其适合后续分析和建模。数据清洗的目标是识别并纠正数据中的错误、不一致和缺失,以确保数据的准确性、完整性和一致性。以下是数据清洗的理论框架如图3-1所示:
图3-1 数据清洗流程图
3.2.1 数据清洗
对房屋数据中的脏各类异常值进行处理,对于缺失了部分不重要信息的数据,为了数据量,可通过数据插补进行填充,对于缺失了重要信息的数据为了保证分析结果,则进行删除。同时,如果相同的记录多次出现,则将重复值去掉即可。数据清洗后, 并创建字典。清洗前如图3-2所示:清洗后如图3-3所示:
图3-2 清洗前
3.2.2 数据去重处理
使用df.drop_duplicates()清除重复行。该操作基于所有列判断行数据是否重复,确保分析数据唯一性。通过SQL查询获取原始数据后,直接调用Pandas的去重函数实现。这种处理能避免重复数据对统计结果的干扰,例如防止同一房源信息多次计数影响价格分析准确性:
3.2.3 单位转换与分箱处理
将"单价"列去除"元/㎡"文本并转为整型,"总价"列去除"万"字转为浮点型。使用pd.cut进行数据分箱,将连续价格划分为7个区间段并生成标签。这种处理将数值型数据转化为分类变量,便于进行价格区间分布的可视化展示,如生成"100-300万元"等直观分段。分箱后如图3-3所示:
3.2.4 本特征结构化
从"信息"列提取楼层数据,通过split方法分离楼层分类。使用str.contains过滤包含"年建造"的错误数据,确保楼层信息纯净。该方法将非结构化的文本信息转化为"低楼层/中楼层/高楼层"等标准分类,为楼层分布分析提供结构化数据基础。分离特征后如图3-3所示:
4.可视化系统功能与架构设计
4.1 系统功能需求分析
二手房数据具有种类多、数量大、结构各异等特点,因此现有的二手房数据库在快速直观展示数据方面较为薄弱。设计二手房数据可视化平台,旨在弥补这一局限性。
4.1.2 非功能需求分析
考虑到平台的使用者的计算机操作水平不同,二手房数据可视化系统的设计应更具人性化,要易于理解、易于学习和易于操作。在易于理解上,要实现平台前端页面数据呈现简单易懂、无歧义;在易于学习上,要让使用者通过后台管理界面信息即可掌握平台的使用;在易于操作上,在设计页面样式布局与操作布局时要清晰明了,让使用者能够迅速发现所需的功能菜单,从而提高效率。
4.2 系统功能框架设计
根据对功能需求分析设计出系统功能框架如下图4-1所示:
图4-1 系统功能框架图
该系统包含用户端与管理端两大功能模块。用户初次使用系统时需完成账号注册流程,待成功登录平台后,即可开展各项平台操作。
4.3 图表分析设计
通过可视化图表可以直观展示二手房市场的关键数据,帮助用户快速理解市场,通过合理的可视化设计,二手房数据不再是冰冷的数字,更重要的是可以通过不同的数据图对数据进行分析。最终推动用户、企业、政府等多方共赢。
- 户型占比图
通过饼图展示不同的户型(如一室一厅、两室一厅等)在二手房市场中的占比情况。在户型占比分析中,饼图是最简洁、高效的可视化工具,能够快速传递关键信息,辅助用户决策,不同的颜色还可以明显的区分不同户型。
- 标题词云图
通过词云图把二手房标题中出现频率较高的关键词。人们一眼就能看到哪些特点或卖点在二手房房源中更为常见,例如 “学区房”“地铁附近”“精装修”等,快速把握大量房源信息的关键要点。可以直观地感受到哪些因素在二手房标题中占据主导地位,哪些是相对次要的因素。
- 售价区间图
通过柱形图把区间售价可视化,不同高度的柱子,能够直观地反映出各个售价区间内二手房的数量或占比情况。人们可以一眼看出哪个售价区间的房源最多,哪个区间的房源较少。了解到当前二手房市场中不同价格区间的房源分布情况,从而根据自己的预算和需求,有针对性地选择合适的房源。
4.4 数据库设计
根据二手房数据可视化平台功能的分析与研究,平台数据库所需表主要有存储管理员个人信息的用户信息表、存储数据的房源数据表。具体的数据库表名和表描述如表4-1和4-2所示:
表4-1 用户信息表
名 | 类型 | 长度 | 是否为空 |
id | INTEGER | 0 | 是 |
password | varchar | 128 | 是 |
last_login | datetime | 0 | 否 |
is_superuser | bool | 0 | 是 |
first_name | varchar | 150 | 是 |
last_name | varchar | 150 | 是 |
varchar | 254 | 是 | |
is_staff | bool | 0 | 是 |
is_active | bool | 0 | 是 |
data_joined | datetime | 0 | 是 |
username | varchar | 50 | 是 |
gender | varchar | 1 | 是 |
phone_number | varchar | 20 | 是 |
avatar | varchar | 100 | 否 |
表4-2 房源表
名 | 类型 | 长度 | 是否为空 |
区 | TEXT | 255 | 否 |
标题 | TEXT | 255 | 否 |
信息 | TEXT | 255 | 否 |
小区名 | TEXT | 255 | 否 |
地址 | TEXT | 255 | 否 |
标签 | TEXT | 255 | 否 |
总价 | TEXT | 255 | 否 |
单价 | TEXT | 255 | 否 |
Id | INTEGER | 0 | 是 |
5 可视化系统实现
5.1 登录注册功能实现
登录和注册页面采用统一的视觉风格,以蓝色为主色调,顶部居中展示系统Logo与名称,强化品牌识别。
5.2 数据展示功能实现
数据展示页面采用模块化设计,继承基础模板保持整体风格统一。
5.3 数据可视化实现
5.3.1 户型分析可视化
采用环形饼图直观展示各户型占比,数据通过后端变量动态注入。图表中心留白增强视觉聚焦,悬浮提示显示具体数值与百分比,侧边图例垂直排列节省空间。
5.3.2 不同售价区间视化
蓝色渐变柱状图横向排布,X轴标注价格区间刻度,Y轴显示房源数量。
5.3.3 朝向分析可视化
传统饼图搭配八方位图例,半径参数扩展至55%增大数据区块辨识度。
5.3.4 楼层分析可视化
漏斗图逆向展示楼层分布趋势,顶部宽度表示低楼层房源量,自上而下收缩模拟楼层升高。标签内嵌于图形通道,白色字体与底色形成对比。
5.3.5 聚类分析可视化
双联面板设计,左侧饼图展示区域房源聚类占比,右侧词云动态呈现特征关键词。区域选择器内置洪山等预设选项,异步加载机制实现无刷新更新。
5.4 数据预测实现
数据预测页面的设计注重简洁与功能性,整体布局采用卡片式风格,将信息输入与预测结果分区展示,提升用户体验。