计算机类本科毕业论文-基于机器学习的房租价格的预测和分析.docx
- 文档编号:30857202
- 上传时间:2024-04-02
- 格式:DOCX
- 页数:34
- 大小:3.52MB
计算机类本科毕业论文-基于机器学习的房租价格的预测和分析.docx
《计算机类本科毕业论文-基于机器学习的房租价格的预测和分析.docx》由会员分享,可在线阅读,更多相关《计算机类本科毕业论文-基于机器学习的房租价格的预测和分析.docx(34页珍藏版)》请在冰豆网上搜索。
基于机器学习的房租价格的预测和分析
CHANGSHAUNIVERSITYOFSCIENCE&TECHNOLOGY
毕业设计(论文)
题目:
基于机器学习的房租价格的预测和分析
学生姓名:
学号:
班级:
专业:
计算机科学与技术
指导教师:
2022年6月
基于机器学习的房租价格的预测和分析
学生姓名:
学号:
班级:
所在学院:
计算机与通信工程学院
指导教师:
完成日期:
2022年6月10日
基于机器学习的房租价格的预测和分析
摘要
随着越来越多的人涌入城市,房屋问题成为了主要问题。
虽然国家出台多项购房政策来调节我国房地产市场,但对于经济实力一般并且在大城市工作的人们来说,买房是不太现实的,租房就成为解决住宿问题的有效途径。
在本文中介绍的系统采用Python3.9语言进行开发,利用VisualStudioCode、PyCharm作为Python编辑开发工具,使用MySQL进行数据库的管理,利用Tkinter设计一个GUI界面作为前端。
该系统主要通过网络爬虫爬取房源信息,然后通过JupyterNotebook实现对数据的处理分析。
整个系统主要分为前端交互模块、数据信息处理模块。
其中前端交互模块主要为用户需求信息提交模块、数据提取显示模块,数据信息处理模块分为网络爬虫模块、数据清洗模块、机器学习模块、预测分析模块,具有较为完整的系统功能。
测试运行结果表明该系统界面简洁明了、能够平稳流畅地运行。
关键词:
VisualStudioCode;Tkinter;Python;JupyterNotebook
IPREDICTIONANDANALYSISOFRENTPRICEBASEDONMACHINELEARNING
ABSTRACT
Withmoreandmorepeoplepouringintothecity,thehousingproblemhasbecomethemainproblem.AlthoughthestatehasissuedanumberofhousepurchasepoliciestoregulateChina'srealestatemarket,itisunrealisticforpeoplewithaverageeconomicstrengthandworkinginbigcitiestobuyahouse.Rentingahousehasbecomeaneffectivewaytosolvetheproblemofaccommodation.ThesystemintroducedinthispaperisdevelopedinPython3.9language,usesVisualStudiocodeandpycharmasPythoneditinganddevelopmenttools,usesMySQLfordatabasemanagement,andusesTkintertodesignaGUIinterfaceasthefrontend.Thesystemcrawlsthehouseinformationthroughthewebcrawler,andthenprocessesandanalyzesthedatathroughtheJupiternotebook.Thewholesystemismainlydividedintofront-endinteractionmoduleanddatainformationprocessingmodule.Thefront-endinteractionmodulemainlyincludesuserdemandinformationsubmissionmoduleanddataextractionanddisplaymodule.Thedatainformationprocessingmoduleisdividedintowebcrawlermodule,datacleaningmodule,machinelearningmoduleandpredictionandanalysismodule,whichhasrelativelycompletesystemfunctions.Thetestresultsshowthatthesysteminterfaceissimpleandclear,andcanrunsmoothly.
Keywords:
VisualStudioCode;Tkinter;Python;JupyterNotebook
目录
1绪论 1
1.1课题背景及意义 1
1.2国内外研究现状 2
1.3课题研究方法 3
1.4论文构成及研究内容 4
2相关理论基础 6
2.1房租与房价 6
2.2随机森林 6
2.2.1基本原理 6
2.2.2实现过程 7
2.2.3主要优点 8
3数据来源及探索性分析 8
3.1数据来源 9
3.2数据获取方式 10
3.3探索性分析和可视化 11
3.4数据预处理 17
3.4.1对数化 17
3.4.2归一化 18
4房租预测模型建立 20
4.1前端GUI界面 20
4.2随机森林模型 21
4.2.1模型建立 21
4.2.2变量重要性排序 23
结论与展望 24
参考文献 26
致谢 28
1绪论
本文根据当今社会房租市场的变化情况,结合当下人们的观点和生活方式,希望设计出一款能够帮助到使用者及时了解到房租市场讯息或者是能预测房租市场未来走势的系统。
该系统能够帮助使用者节约极大时间和空间成本拿到心理预期的房源信息,这对房屋租赁市场的发展起到了极大的帮助和改善作用。
1.1课题背景及意义
在经济和科技日益发展的今天,越来越多的人需要解决临时或者是长期的住房问题。
无论出差还是旅游,如果需要长期在陌生城市居住,租房所需成本比酒店花费成本要低很多。
但是租房无疑要比住酒店麻烦多了,于是本文的研究就能恰如其分的帮助到这些人。
同样这种房租预测的方法不仅是仅运用于国内,这在全球同样适用,只需要改变影响因素,拿到足够的数据基础。
随着城市化的不断推进,大量的城市外人口进城,还包括每年大量的学生步入社会加入城市,外国人涌入中国,越来越多的人需要住房的提供。
正是这种供求关系的变化以及通货膨胀的影响,我国近年来房租价格持续升高,这时候研究考虑房屋租赁价格的变化和房屋租赁市场的发展规律,对于广大急需租房或者有住房压力的人是具有很大帮助意义的。
在实际上,当前我国的房价不断上涨,例如北京上海广州之类的一线城市更是寸土寸金,买房对于大多数人可能需要一辈子甚至几辈子。
诚然,国家以及给出了很多优惠以及解决办法,可是这对于大半部分生活在大都市的人们,买房还是天方夜谭,所以租房就成为解决住宿问题的一大途径。
通过查阅资料很容易看到中国社科院发布的蓝皮书调查显示,超过一半的刚步入社会的大学生选择提高自己的生活质量而不是当房奴,所以一二线城市的大部分人并没有自己的房子,多数属于租房生活模式[4]。
这些信息无一不在向我们明示我国的房屋租赁市场潜力有多么巨大。
而当今社会互联网高速发展,网上租房订房也成为了许多人主要的方式之一,在网上租房订房不仅安全度相对更高,交接手续也更加方便,更加有效。
不仅租房者轻松,出租人也免除了许多麻烦。
但是,网上租房毕竟是一个新生事物,在实际应用中还存在一些问题。
比如,网上租房的安全性有待提高;租户与房屋出租方之间信息不对称,容易产生道德风险等。
古往今来房子一直都是人们的热点话题和热点关注对象。
但在研究方面很少关注房租价格的影响因素和预测,更加倾重于房屋交易买卖价格的研究。
虽然房租价格和房产价格是有着必然的联系的,许多影响因素也有着共通之处,但是两者在概念上是截然不同的,研究起来也有巨大的差异,有必要将两者分开研究。
综上所述研究房租价格的未来走势和影响因素是十分合理和有意义的,学者们的研究大多没有从这个方面出发,拥有的文献相比其他领域都相对较少。
因此,本文将会通过实际研究计算分析的方式,使用网络爬虫和sklearn建模的方式对这方面进行一个比较深入的研究分析。
1.2国内外研究现状
在国内,大部分学者对房价本身的市场价值研究较多,对房屋租赁价格始终没有太过于重视。
时过境迁,直到今日,在住房问题日益突出,很多人困扰与没有落脚处的情况下,许多人开始对这方面进行了研究和分析。
很多人对房屋交易市场情况进行过研究,张利军就是其中一个,他研究了2000年到2015年全国商品房价格,选取了其中比较重要的影响因素,根据这些因素进行深度分析,然后建立模型,最终通过比较实际值和预测值得出部分线性模型相较于线性回归模型要更好[1]。
还有许多例子,例如PCA-BP神经网络的住宅价格评估模型,但该方法存在网络训练速度慢、收敛精度不高等问题。
为解决上述问题,提出一种改进PCA—BP算法(IPC—BP),通过对输入样本进行降维处理,提高学习速度和计算精度;同时利用粒子群优化(PSO)算法对模型参数进行寻优,避免陷入局部最优解。
在此基础上构建房地产价格预测系统并应用于实际房价预测中,以深圳市某小区为例验证其有效性,结果表明:
IPCA—BP神经网络能有效降低计算量,加快收敛速率,且具有较高的精度;IPC—BP神经网络不仅适用于单一房屋类型的预测,而且也可用于多种房屋类型组合情况下的房价预测[2]。
李圆圆将用户行为的反馈量化为房屋交易软指标,并以“房屋成交价格”作为评价标准。
在对数据进行预处理后,使用决策树方法分析了不同类型的房屋交易软、硬指标之间的关系,建立了基于多属性决策理论和Logistic回归模型的预测模型,通过该模型得到了各参数与房价间的关联程度,进而实现对未来房产市场发展态势的预测[5]。
最后,结合北京市房地产市场的实际情况,运用上述方法构建了北京住房需求指数(DPI),利用所建预测模型对未来五年内北京市居民住房需求量进行了定量预测,同时根据预测结果提出相应政策建议[6]。
相比于国内研究,国外对此的研究开始得比我们早很多,理论也更加成熟,这跟他们城市化进程比我们快速,暴露问题更早有关。
例如,Basu和他的伙伴们使用半对数特征价格模型和球面自相关函数,对德克萨斯州达拉斯市1991年到1993年之间共计5000多笔房屋交易的记录进行了数据处理和分析,结果发现:
在样本期间内,房价与房屋租金之间存在长期均衡关系[10]。
但在不同时期,这种线性关系的显着性有差异;而房价与贷款利率间则不存在长期均衡关系,即两者呈反向变动关系;房价与收入差距之间也不存在长期均衡的关系,这说明美国的住房市场是一个完全竞争的市场;房价波动幅度与房价变化频率之间存在着负相关关系,表明房地产市场上的投资者更关注于未来的短期收益[16]。
Liu使用支持向量回归方法对数据集进行建模,并将模型的输出与原始样本做比较[17]。
实验结果表明,Liu的模型在一定程度上优于传统的统计学习算法,并且具有较好的泛化能力和预测效果[18]。
[18]
总的来说国内外前辈们的研究成果各有千秋,都体现出了有关房屋租赁价格的研究对社会和国家的影响,这项研究能解决目前很多人的问题。
虽然有了这么多研究,但是广泛运用于人们手中的这类软件还并没有普及,所以该项研究还应该继续完善和深入。
1.3课题研究方法
现如今科技蓬勃发展,许多开发软件横空出世,所以这需要我们紧跟潮流,使用先进好用的开发软件进行开发和学习,这能使我们开发时事半功倍。
本文所介绍的系统使用PyCharm2021、VisualStudioCode、DataGrip作为开发工具。
后端数据库采用关系型数据库MySQL进行开发,整体采用Python3.9作为开发语言。
前端页面设计是以HTML、Tkinter作为核心,另外绘图中包含JavaScripts、JQuery、Echarts、Python3.9等相关技术,机器学习部分使用了JupyterNotebook。
考虑到开发过程中要对系统不断进行优化升级,本系统主要功能的是数据处理分析以及数据资源爬取,可以以这个功能为核心发展相关可行业务。
本系统目前的状况是,解决了匆忙租房的问题,得到了租客想要的预测值,后续即可以此为核心展开项目的各项功能。
通过分析所要求的往年数据,进而可以得出未来房价走势。
得出未来走势之后,就为整个系统的开发打下了基础。
通过爬虫模块的编写,使得各地房源信息存入到了数据库中,再通过前后端数据交互平台,即可将使用者需要的信息以及预测的结果显示出来。
1.4论文框架构成
本文的核心是介绍如何实现一个为需要租房人员服务的基于机器学习的房租价格的预测和分析。
通过参考了大量参考文献,亲自实验了小部分确定了可行性后,本文以链家网上的出租房源信息为研究对象。
通过链家网上给出的租房可选条件,选取可能对出租价格产生影响的因素,通过网络爬虫爬取到网站上的相关进行处理分析,并运用多元线性回归方法建立了一个关于房屋租赁价格影响因素的多元回归模型。
结果表明:
房屋租金、房租和房源面积是影响房屋租金和房源面积的主要因素;在不同类型的房屋之间,对于同一类型的房屋,其租户选择房屋时考虑的因素有所不同,而这些因素又受到多种随机因素的干扰,所以在具体选择房屋时应综合各方面因素来确定最优组合方案,才能使自己所拥有。
通过分析比较,最终使用的模型为随机森林模型。
本文的内容分为以下五个章节:
第一章为绪论,简要介绍为什么要预测房屋租赁价格以及这么做有什么好处,简要展示了一些国内外学者有关房屋租赁价格的研究成果,在本章最后一个模块介绍了本文组成框架和一些方法的概述。
第二章为有关理论介绍,第一点是房租与房价的基本概念和两者的关系,第二点是随机森林算法的基本原理、实现过程以及模型优点。
第三章为数据来源及探索性分析,主要介绍如何从网站上网络爬虫爬取相关数据,以及什么是数据预处理、如何对数据进行预处理、为何要进行预处理,通过数据做出各种图表对各种因素进行探索性分析和可视化。
第四章为前端GUI界面的交互展示以及模型的建立展示,长沙房租价格预测模型的构建过程,建立了随机森林预测模型,进行了影响因素重要性排序,并进行参数调优。
第五章为全文的总结,这一章主要对本文研究的机器学习课题进行总结,对得出的结论进行自我评价,最终对研究过程中的不足之处进行了分析,讲明系统还需要优化完善的地方。
2相关理论基础
基于机器学习的房租价格的预测和分析是对目前房租价格进行研究的一个项目。
它不仅适用于研究理论,同样加入前端交互平台后可以为需要短期内租到房子的租客提供实际帮助。
同样该行业的从业人员通过预测房价,一样可以对他们起到莫大的帮助。
2.1房租与房价
房租是指房租是指房屋的租金。
房租包括国家,集体和个人三者之间对房屋产权的占有,使用与收益的权利。
房价自然是指房屋的价格,它是衡量一个国家或地区经济发展水平和人民生活质量高低的重要指标之一。
时至今日,我国无论经济还是生产力都在飞速发展,房地产市场同样紧跟其后,蓬勃崛起发展,起到了推动我国国民经济发展的作用。
房屋租赁价格和房屋价格不论何时肯定时存在直接关联的,例如当房价上涨时,房屋租赁价格也一定会在未来一段时间后上涨。
这也是他们之间的共性都属于商品,那同类型别商品价值涨或者落当然是具有相关性的。
但在现实中,由于市场环境以及经济发展水平等方面原因,导致两者间并不完全具备这种相关关系,甚至有时还出现相反的现象,即房地产市场上房价与租金同时下跌的情况。
因此,研究房地产租赁价格的波动规律对其进行调控具有重要意义。
对房租与房价影响因素的研究,虽然看似很接近,但是在不同环境下同样的因素对两者影响天差地别。
所以,有必要将两者分开来进行分析。
2.2随机森林
2.2.1基本原理
随机森林的原理通俗一点来说它就是随机地建立一个森林,森林由很多决策树组成,他们之间没有必然联系。
然后,每出现一个新的样本,就需要让每一棵决策树进行判断,最终确定样本地分类。
再进行投票统计,哪一类占的比例最高,那这个样本最终的分类结果就是什么。
值得注意的一点是,在回归问题中,使用随机森林,它会输出所有决策树得出值的平均值。
随机森林地意义在于它是分类和回归都能适用的一种方法,其次它是处理缺失值和异常值的一种降维手段,最后集成学习的重要方法也包括它。
随机森林也是一种较为前沿的机器学习模型。
以往比较经典的机器学习模型有很多,比较著名的就是神经网络,这个是史诗级模型了,到现在得有半个多世纪的运用史了。
但是比较而言,神经网络虽然预测精确但是所需要的计算量过于庞大。
直到Breman率领一些人发明了分类树算法,再通过反复二分数据这种巧妙的办法才使得预测模型的计算量大幅度降低。
随机森林也是由这个进化而来。
随机森林的基本原理很简单,可以使用很多方式表达,本文使用流程图如图2.1所示。
图2.1随机森林流程图
Figure2.1Flowchartofrandomforestalgorithm
2.2.2实现过程
因此,随机森林的训练过程可以总结如下:
1.从输入数据中选择特征,提取有效特征。
2.将样本点作为一个整体来处理。
3.利用分类器进行分类。
由于传统的方法只对单个变量做分析,而没有考虑到每个个体在不同状态下表现出的差异性以及这些差异是否会影响到最终模型性能。
针对该问题提出了基于多属性决策树和支持向量机相结合的预测方法。
首先通过建立多属性决策树来挖掘潜在的规则;然后采用SVM算法实现参数优化以提高模型精度。
实验结果表明:
与其他常用方法相比,所提方法能够获得更高的准确率和召回率。
2.2.3主要优点
随机森林模型的主要优点有以下五个点:
(1)可以有效地从大量样本中学习,得到较好的分类效果。
(2)能够对不同特征进行建模,具有较强的泛化能力。
(3)在训练数据较少或不完整时也能取得良好的性能。
(4)算法简单,没有复杂的过程,比较容易实现。
(5)计算复杂度低,运行过程快。
但是由于该模型是一个非线性优化问题,其参数选择和结构确定一直困扰着研究者,因此如何提高模型精度成为了目前研究的重点。
对于许多统计建模者来说,随机森林给人的感觉就像一个黑盒子,你无法控制模型内部的运行。
只能在不同的参数和随机种子之间进行尝试。
对于小数据或者低维数据(特征较少的数据),可能不能产生很好的分类。
(处理高维数据,处理特征遗失数据,处理不平衡数据是随机森林的长处)。
本章主要是介绍相关理论模型算法,并且结合房租房价,逐层深入,为后文的模型建成和内容铺垫了踏实的理论基础和技术支持。
同时也介绍了随机森林的优点和局限性,希望能够找到更优的解法。
3数据来源及探索性分析
3.1数据来源
本系统主要通过网络爬虫获取到与房屋租赁价格影响相关的数据,通过对比大量租赁房屋网站,最终确定本系统数据从链家网站得到相关数据。
在本系统中主要爬取了如下目标房源信息:
租赁方式(合租还是整租)、有无电梯、车位、用水、燃气、采暖、楼层、户型、朝向、面积、出租价格、经纬度、配套设施。
下图是链家网站一个房源的信息展示:
图3.1链家房源基本信息展示
网页中展示了有关房源的基本详细信息,只需要将这些信息爬取下来储存起来就好了。
关于爬取链家信息,我们需要先设置一个请求头,不然通不过网站验证:
headers={'User-Agent':
'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/72.0.3626.119Safari/537.36'}
在链家网站中有了很多房屋所有的基本信息,可是为了确定房屋的基本位置,需要知道它的经纬度信息而网站中并没有显示。
通过解析网站html源码会发现,经纬度信息被隐藏在一个input标签中。
而房屋周边配套设施数据的爬取就需要这个,我们只需要将经纬度爬取下来后,调用百度地图里面对大众开放使用的API就能轻易办到。
3.2数据获取方式
获取数据的方式主要为网络爬虫,爬虫代码的编译过程是在PyCharmCommunityEdition2021.3.3上完成运行的,爬取的网站为链家租房网。
在这个过程中会涉及到大量的计算和操作,例如:
对链接进行分词处理、统计各节点上的用户数以及分析各个节点间的关联关系等等。
这里介绍一点爬虫基本步骤:
获取选定城市的所有父母网址,获取网址HTML,然后解析,找出其中的文本,排除一些区域,例如“不限”,初始化最终的父母网址列表。
找出区域网址,获取区域网址html,解析html获取信息条数,对每一页网址进行循环,得到该区域每一页的网址,并添加至父母网址列表中。
forloop对每一个网址进行爬取操作,循环中注意使用try...except...方法防止循环中途出错退出。
图3.2爬虫部分代码
为了方便以后再次对数据整合分析以及避免重复爬取数据,本系统利用MySQL建立了一个储存数据的表格如图3.3所示。
图3.3数据库展示
通过使用这个表来实现用户可以直接从数据库中查询需要的数据信息并将其保存在自己指定的文件夹里。
同时,数据库的建立对于后续系统的延展性开发具有重要意义,在一定程度上可以降低后期软件更新的成本。
3.3探索性分析和可视化
要对爬取到的数据有一个更为直观的认知,我们需要运用统计学的知识,将数据整理归纳,再通过图的方式展示出来。
图3.4各区房源分布状况
观察上图,不难发现长沙市链家出租的房子集中分布在长沙县、雨花区、岳麓区、望城区、开福区,天心区、芙蓉区和宁乡县房源较少。
图3.5各种价位的房源数量直方图
根据上图价位直方图,我们可以得出结论长沙链家出租房房源价格大多分布在2000元到3000元之间,其中2500元附近分布最多。
这说明了目前市场对该价格区域的需求较大;其次,通过对比分析,得出在不同时间段内,长沙链家出租屋房源的均价变化不大。
为了能更加客观地分析长沙市各因素对租金价格的影响,做了一些分析如图3.6所示。
图3.6区域对房价影响
可以看到对于整租而言,房屋租金与地区有强烈的显著相关性,岳麓区,天心区等这些靠近市中心和市开发区域的房屋租金会普遍高于其他地区。
还能看见房租价格差距最大的区域是岳麓区,最小的是宁乡县。
这里估计应该
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 本科毕业 论文 基于 机器 学习 房租 价格 预测 分析