基于大数据的房价数据可视化分析预测系统

温馨提示:文末有 CSDN 平台官方提供的博主 Wechat / QQ 名片 :)

1. 项目背景

        房地产是促进我国经济持续增长的基础性、主导性产业,二手房市场是我国房地产市场不可或缺的组成部分。由于二手房的特殊性,目前市场上实时监测二手房市场房价涨幅的情况较少,影响二手房价的因素错综复杂,价格并非呈传统的线性变化。

        本项目利用Python实现某一城市二手房相关信息的爬取,并对爬取的原始数据进行数据清洗,存储到数据库中,通过 flask 搭建后台,分析影响二手房房价的各类因素,并构建递归决策树模型,实现房价预测建模。

基于大数据的房价数据可视化分析预测系统

2. 二手房数据

        二手房信息爬取流程为,先获取该市所有在售楼盘,以保定市为例,其中,p1 表示分页的页码,因此可以构造循环,抓取所有分页下的楼盘数据。

base_url = 'https://baoding.xxxx.com/community/p{}/'all_xqlb_links = set()
for page in range(1, 51):url = base_url.format(page)# 获取 html 页码,并进行dom解析# ...

 通过分析 html 页面的 Dom 结构,利用 Bootstrap 进行解析,获取楼盘的详细字段信息。​

同理,获取楼盘下所有在售房源信息: ​

def get_house_info(house_link):"""获取房屋的信息"""headers = {'accept': '*/*','accept-encoding': 'gzip, deflate, br','accept-language': 'zh-CN,zh;q=0.9,en;q=0.8','cookie': 'Your cookie','referer': house_link,'sec-fetch-dest': 'empty','sec-fetch-mode': 'cors','sec-fetch-site': 'same-origin','user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36'}response = requests.get(house_link, headers=headers)response.encoding = 'utf8'soup = BeautifulSoup(response.text, 'lxml')house_info = {'链接': house_link,'产权性质': '未知','房屋类型': '未知','产权年限': '未知','房本年限': '未知','唯一住房': '未知','参考首付': '未知','发布时间': '未知','总价': '','单价': '','房屋户型': '未知','所在楼层': '未知','建筑面积': '','装修程度': '未知','房屋朝向': '未知','建造年代': '未知','配套电梯': '无','所属小区': '未知','所在位置': '未知'}tbody = soup.select('tbody.houseInfo-main')[0]tds = tbody.select('td')for td in tds:datas = td.text.split(' ')if '产权性质' in datas[0]:house_info['产权性质'] = datas[0].replace('产权性质', '')if '产权年限' in datas[0]:house_info['产权年限'] = datas[0].replace('产权年限', '')if '发布时间' in datas[0]:house_info['发布时间'] = datas[0].replace('发布时间', '')if '唯一住房' in datas[0]:house_info['唯一住房'] = datas[0].replace('唯一住房', '')if '房屋类型' in datas[0]:house_info['房屋类型'] = datas[0].replace('房屋类型', '')if '房本年限' in datas[0]:house_info['房本年限'] = datas[0].replace('房本年限', '')if '参考预算' in datas[0]:yusuan = datas[0].replace('参考预算', '')house_info['参考首付'] = yusuan[2:].split(',')[0]total_price = soup.select('span.maininfo-price-num')[0]total_price = total_price.text.strip()house_info['总价'] = total_priceavgprice = soup.select('div.maininfo-avgprice-price')[0]avgprice = avgprice.text.strip()house_info['单价'] = avgpricehuxing = soup.select('div.maininfo-model-item.maininfo-model-item-1')[0]huxing = huxing.text.strip()house_info['房屋户型'] = huxing.split(' ')[0]house_info['所在楼层'] = huxing.split(' ')[1]daxiao = soup.select('div.maininfo-model-item.maininfo-model-item-2')[0]daxiao = daxiao.text.strip()house_info['建筑面积'] = daxiao.split('  ')[0]house_info['装修程度'] = daxiao.split('  ')[1]chaoxiang = soup.select('div.maininfo-model-item.maininfo-model-item-3')[0]chaoxiang = chaoxiang.text.strip()house_info['房屋朝向'] = chaoxiang.split(' ')[0]house_info['建造年代'] = chaoxiang.split(' ')[1].split('/')[0][:-2]bar = soup.select('div.crumbs.crumbs-middle')[0]xiaoqu = bar.select('a.anchor.anchor-weak')[-1]house_info['所属小区'] = xiaoqu.text.strip()tags = soup.select('div.maininfo-tags')[0].textif '电梯' in tags:house_info['配套电梯'] = '有'# 所属区域for line in soup.select('div.maininfo-community-item'):text = line.text.strip()if '所属区域' in text:house_info['所在位置'] = text.split(' ')[1].split('\xa0')[0]return house_info

3. 二手房数据清洗与存储

抓取的原始数据可能存在数据异常、缺失等情况,需要进行数据清洗和数据类型转换等预处理操作。清洗后的数据存储到 mysql 或 sqlite 等关系型数据库中。

for house_info in all_house_infos:for key in all_keys:if key not in house_info:house_info[key] = '暂无'if isinstance(house_info['单价'], float):continuehouse_info['单价'] = float(house_info['单价'][:-3].strip())house_info['总价'] = float(house_info['总价'].strip())house_info['建筑面积'] = float(house_info['建筑面积'][:-1].strip())house_info['参考首付'] = float(house_info['参考首付'][:-1].strip())tmp = list(map(int, re.findall(r'(\d+)', house_info['房屋户型'])))house_info['房屋户型_室数'] = tmp[0]house_info['房屋户型_厅数'] = tmp[1]house_info['房屋户型_卫数'] = tmp[2]del house_info['房屋户型']if '(' not in house_info['所在楼层']:house_info['所在楼层'] = '底层({})'.format(house_info['所在楼层'])house_info['总楼层'] = list(map(int, re.findall(r'(\d+)', house_info['所在楼层'])))[0]house_info['所在楼层'] = house_info['所在楼层'][:2]

4. 二手房价可视化分析预测系统

系统采用 flask 搭建 web 后台,利用 pandas 等工具包实现对当前城市二手房现状、二手房价格影响因素等进行统计分析,并利用 bootstrap + echarts 进行前端渲染可视化。系统通过构建机器学习模型(决策树、随机森林、神经网络等模型),对二手房价格进行预测。

4.1 系统首页/注册登录

4.2 小区楼盘名称关键词抽取与词云展示

4.3 二手房房屋类型与产权年限分布

4.4 不同区域在售二手房房源数量与均价对比

4.5 房价影响因素分析 

 房价影响因素包括:建造年代、建筑面积、房屋户型、朝向、房屋类型、楼层、装修程度、配套电梯、房本年限、产权性质、唯一住房、所在区域、周边设施等等诸多因素。我们对每类因素的影响情况分别进行可视化展示:

4.6 基于机器学习模型的二手房价格预测

通过一些列的特征工程、数据标准化、训练集验证集构造、决策树模型构建等操作,完成决策树模型的交叉验证训练和模型评估:

print('---> cv train to choose best_num_boost_round')
dtrain = xgb.DMatrix(train_X, label=train_Y, feature_names=df_columns)xgb_params = {'learning_rate': 0.005,'n_estimators': 4000,'max_depth': 3,'min_child_weight': 1.5,'eval_metric': 'rmse','objective': 'reg:linear','nthread': -1,'silent': 1,'booster': 'gbtree'
}cv_result = xgb.cv(dict(xgb_params),dtrain,num_boost_round=4000,early_stopping_rounds=100,verbose_eval=400,show_stdv=False,)
best_num_boost_rounds = len(cv_result)
mean_train_logloss = cv_result.loc[best_num_boost_rounds-11 : best_num_boost_rounds-1, 'train-rmse-mean'].mean()
mean_test_logloss = cv_result.loc[best_num_boost_rounds-11 : best_num_boost_rounds-1, 'test-rmse-mean'].mean()
print('best_num_boost_rounds = {}'.format(best_num_boost_rounds))print('mean_train_rmse = {:.7f} , mean_valid_rmse = {:.7f}\n'.format(mean_train_logloss, mean_test_logloss))

模型训练结果:

---> cv train to choose best_num_boost_round
[0]	train-rmse:4.10205	test-rmse:4.10205
[400]	train-rmse:0.59919	test-rmse:0.605451
[800]	train-rmse:0.20857	test-rmse:0.230669
[1200]	train-rmse:0.185981	test-rmse:0.21354
[1600]	train-rmse:0.181188	test-rmse:0.211841
[2000]	train-rmse:0.177933	test-rmse:0.211291
[2400]	train-rmse:0.174346	test-rmse:0.210886
best_num_boost_rounds = 2512
mean_train_rmse = 0.1733781 , mean_valid_rmse = 0.2108875

测试集预测结果与真实值分布情况:

print('决策树模型在验证集上的均方误差 RMSE 为:', rmse(valid_Y, predict_valid))>> 决策树模型在验证集上的均方误差 RMSE 为: 0.19991482173207226

 二手房价格预测模型交互式页面:

5. 总结

        本项目利用Python实现某城市二手房相关信息的爬取,并对爬取的原始数据进行数据清洗,存储到数据库中,通过 flask 搭建后台,分析影响二手房房价的各类因素,并构建递归决策树模型,实现房价预测建模。

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码

技术交流认准下方 CSDN 官方提供的学长 Wechat / QQ 名片 :)

精彩专栏推荐订阅:

1. Python 毕设精品实战案例
2. 自然语言处理 NLP 精品实战案例
3. 计算机视觉 CV 精品实战案例

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

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

相关文章

Kaggle房价预测详解

Kaggle房价预测详解 1.导入数据2.查看各项主要特征与房屋售价的关系查看中央空调与售价关系查看装修水平与房价关系查看建造日期与售价关系不同地段与房价关系查看地皮面积与房价关系查看地下室总面积与房价关系查看关联性 3.训练集数据预处理训练数据预处理创建机器学习模型得…

数据集:波士顿地区房价预测

数据集:波士顿地区房价预测 数据集下载地址 本文以线性回归模型预测为主 1. 数据集说明 变量名变量描述CRIM城镇人均犯罪率ZN住宅地超过25000平方英尺的比例INDUS城镇非零售商用土地的比例CHAS查理斯河空变量(如果边界是河流,则为1&#x…

AI for Science的上半场:人工智能如何重新定义科学研究新范式?

AI发展七十余年,每一技术性突破都将给人类未来开辟新一种可能性。而它与科学研究的深度融合,则会裂变出无数或无穷种可能性。 来源 :36氪 万众瞩目下,今年10月,有着诺贝尔奖“嫡传”之称的诺贝尔化学奖终于揭晓,授予了…

【分享NVIDIA GTC 23大会干货】加速生成式AI在生物学和医疗领域的应用

【分享NVIDIA GTC 23大会干货】加速生成式AI在生物学和医疗领域的应用 1. NVIDIA医疗领域AI计算平台——NVIDIA CLARA2. NVIDIA CLARA医学影像子平台——MONAI3. NVIDIA CLARA医疗设备子平台——Holoscan4. NVIDIA基因组学解决方案Parabricks5. NVIDIA药物研发解决方案6. 个人思…

GTC 2023 万字纪要 | Don‘t Miss This Defining Moment in AI

「Don’t Miss This Defining Moment in AI」 「切勿错过 AI 的决定性时刻」 北京时间 2023 年 3 月 21 日 23:00,「皮衣刀客」黄教主在 GTC 2023 发表主题如上的 Keynote 演讲,并称「这将是我们迄今为止最重要的一次 GTC」,NVIDIA官方 Twi…

「国际科技信息中心SCITIC论坛」细胞,基因和人工智能:探索医学研究的未来...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 随着科技的不断进步,我们现在拥有了许多前所未有的工具和技术,可以更深入地研究和了解人体内部的细胞和基因。人工智能技术的发展,也为医学研究带来了全新的机遇。例如&#…

明天10:00「国际科技信息中心SCITIC论坛」细胞,基因和人工智能:探索医学研究的未来...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 随着科技的不断进步,我们现在拥有了许多前所未有的工具和技术,可以更深入地研究和了解人体内部的细胞和基因。人工智能技术的发展,也为医学研究带来了全新的机遇。例如&#…

Nat. Biotechnol. | 生成式AI在生物科学领域发展迅速

在过去的一年中,人工智能迎来了突破性的技术,它们来自OpenAI的DALL-E2和ChatGPT。 Link: https://openai.com/dall-e-2 Link: https://openai.com/blog/chatgpt 或许你在网络上已经或多或少了解了一些,甚至已经在无意中使用过了这些技术所带来…

OpenAI新模型惊艳了!对话问答能力逆天

编|昕朋 Aeneas源|新智元 OpenAI新模型来了!全新对话模型ChatGPT,可以回答用户问题,还能挑出问题的错误之处。面对不懂的问题,还会承认错误并拒绝回答! 当人们翘首期待GPT-4时,OpenA…

买股不如买基?Python实现快速追踪基金的收益情况!谁还不是个买基高手?

​ 大家知道,近几年,不少同学都是经由基金进入到股市中的。去年就很流行“买股不如买基”的说话,至于股票和基金到底谁更好,这个仁者见仁智者见智,恐怕一时半会儿也说不清楚。 今天,阳哥给大家分享的主题是…

研报精选230505

目录 【行业230505国信证券】风电or电网产业链周评(4月第5周):海风开发资源集中释放,黑色类原材料价格持续下行 【行业230505天风证券】通信AI系列之:人工智能之火点燃算力需求,AI服务器迎投资机遇 【行业2…

你最关心的4个零代码问题,ChatGPT 帮你解答了!

作为人工智能(AI)新型聊天机器人模型 ChatGPT,刚上线5天就突破100万用户,两个多月全球用户量破亿,不愧为业界最炙热的当红炸子鸡。 ChatGPT 是一种语言生成模型,由 OpenAI 开发和训练。它是基于 Transform…

问ChatGPT:零基础如何学好.Net Core?

更多开源项目请查看:一个专注推荐.Net开源项目的榜单 ChatGPT横空出世,一下子让全球互联网企业都慌了,纷纷表示:马上跟进发布ChatGPT,媒体纷纷报道大有改变教培行业。 下面我们问问ChatGPT:零基础如何学好…

GPT-4刚发布就有手机APP接入,上传照片视频一键解读,还当起了美版知乎的问答bot...

萧箫 发自 凹非寺量子位 | 公众号 QbitAI GPT-4刚发布,就已经有手机应用接入了! 只需要上传图像,再用语音提出需求,GPT-4就能帮助视障人士“看清”眼前的世界。 随时随地,实时解读,就像聊天对话一样自然。 …

whisper:robust speech recognition via large-sacle weak supervision

OpenAI Whisper 精读【论文精读45】_哔哩哔哩_bilibili更多论文:https://github.com/mli/paper-reading, 视频播放量 68331、弹幕量 327、点赞数 2332、投硬币枚数 1192、收藏人数 983、转发人数 394, 视频作者 跟李沐学AI, 作者简介 ,相关视频&#xff…

《通义听悟能这么用?大佬语音面试音频通义AI总结》

此文章更适用与:有会议记录、直播记录、面试记录的朋友和知识内容博主等 1、把录音视频文件上传到电脑 2、上传音视频入口 3、上传音视频 4、选择语言是否翻译 5、选择是否区分发言人 我这里是某大佬的语音面试音频文件,选择了2人对话。 6、效果展示 总…

强到离谱!2023年必备的21款AI工具

2022年是AI技术大发展的一年,特别是ChatGPT的很空出世,让AI工具迎来大爆发,今天就给大家整理出21款免费且实用的AI工具推荐,无论是做设计还是日常学习工作都能用得到。2023年已经开始,让这些AI工具帮你提升生产效率&am…

《AI上字幕》基于openAI研发的whisper模型,语音(视频)一键转文本/字幕/带时间轴/支持多语言/自带翻译《桌面版教程》

简介: OpenAI的chatGPT非常火爆,其实OpenAI旗下的另一个模型实力也十分强大,它就是开源免费的Whisper语音转文本模型,目前为止它是较为顶尖的语音转文本模型 当前github上也有许多出色的开发者根据此模型开发出桌面版语音转文字应…

用GitChat赚钱的6种方法

先说下GitChat这个平台,其主页是:https://gitbook.cn/ 。 GitChat是针对技术人的知识付费平台,创始人是谢工,中途被CSDN收购,现在属于CSDN,不过依然是以独立品牌在运作。目前已完成和CSDN的衔接&#xff0c…

ChatGPT帮你梳理最全Java多线程编程知识

目录 引言 引入多线程编程的重要性和应用场景 介绍多线程的优势和挑战 什么是多线程? 线程与进程的区别 线程的创建与生命周期管理 线程的创建方式 …