《基于XGBoost算法的租房價(jià)格預(yù)測實(shí)證探究》14000字(論文)_第1頁
《基于XGBoost算法的租房價(jià)格預(yù)測實(shí)證探究》14000字(論文)_第2頁
《基于XGBoost算法的租房價(jià)格預(yù)測實(shí)證探究》14000字(論文)_第3頁
《基于XGBoost算法的租房價(jià)格預(yù)測實(shí)證探究》14000字(論文)_第4頁
《基于XGBoost算法的租房價(jià)格預(yù)測實(shí)證探究》14000字(論文)_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1緒論研究背景自改革開放以來,我國中西部地區(qū)形成了一股向北上廣深等經(jīng)濟(jì)高速發(fā)展區(qū)域?qū)ふ夜ぷ鞯睦顺薄=刂褂?020年,我國每年都有數(shù)億人背井離鄉(xiāng)選擇到大城市去尋找工作。因?yàn)檫h(yuǎn)離家鄉(xiāng),所以衣食住行是他們每天必須要考慮的事情。對于剛到大城市的人來說,租房就成了他們的首要選擇。城市的租房價(jià)格差異巨大,房子價(jià)格因區(qū)域,交通,環(huán)境等因素而大受影響。樓房會因?yàn)榭拷^(qū)或是緊鄰地鐵線而價(jià)格上漲,同一區(qū)域的住房也會因?yàn)槟硹潣欠康牟晒夂屯L(fēng)好而價(jià)格上漲,這些因素都影響著房屋的價(jià)格。未經(jīng)過改造的老舊小區(qū)即使是環(huán)境破舊也會因?yàn)榈乩砦恢玫膬?yōu)勢而導(dǎo)致價(jià)格高于環(huán)境良好、地理位置不佳的新建小區(qū)。隨著社會的發(fā)展,北上廣等地區(qū)為了改變城市面貌,開始拆除“城中村”區(qū)域,改造老舊小區(qū)。這樣的改變導(dǎo)致大量可供出租的房屋被拆除,給長期租房的打工者們帶來了巨大的生活壓力。另一方面,隨著城市的不斷擴(kuò)建,大量的新樓房被建成,但由于商圈沒有形成、人文環(huán)境差等因素,許多擁有多處房產(chǎn)的戶主也選擇出租房子。出于房價(jià)和工作變更的考慮,租房就成為了就業(yè)者最具性價(jià)比的選擇。本文便是在這一時(shí)代熱點(diǎn)下,通過租房的價(jià)格數(shù)據(jù)建立模型來完成對租房價(jià)格的分析與預(yù)測。1.2研究的目的和意義1.2.1研究的目的房子是一個(gè)人的安生立命之所,不管是為了組建家庭還是為了事業(yè)而拼搏,有房可居始終是一個(gè)前提。隨著社會經(jīng)濟(jì)的發(fā)展,老百姓的生活水平有了顯著的提高。在基本上已經(jīng)解決溫飽問題的今天,人們開始追求更高層次的精神生活,也開始越來越注重子女的教育?!皩W(xué)區(qū)房”、“獨(dú)棟別墅”等新型住房概念層出不窮。房子不再僅僅被賦予簡單的居住意義,而帶來了更多的商業(yè)價(jià)值。過去幾年中出現(xiàn)的“炒房熱”更是讓房價(jià)一飛沖天。盡管政府已經(jīng)出臺大量住房相關(guān)的政策,為了控制房價(jià)更是提出了“房子是用來住的,不是用來炒的”的口號,但現(xiàn)如今的房子價(jià)格依舊讓不少人望而興嘆。對于即將踏入社會的大學(xué)畢業(yè)生群體,租房會是他們的第一選擇。但是,還是有不少人利用租房價(jià)格的信息差來賺取利益。2017年,“深圳女二手房東擁有400多套出租房,年收入過百萬”一事火遍全國。一個(gè)低價(jià)的房子經(jīng)過二次轉(zhuǎn)手出租便可從中攫取利益,可見租房現(xiàn)狀中存在信息不透明導(dǎo)致的價(jià)格差異問題。在實(shí)際生活當(dāng)中,研究租房的相關(guān)問題有利于解決當(dāng)?shù)氐木蜆I(yè)問題。研究各個(gè)特征同租房價(jià)格的關(guān)系能夠幫我們找到其中影響租房價(jià)格的主要因素。通過分析這些因素的影響能夠幫助有租房需求的人提供更多的現(xiàn)實(shí)考慮。1.2.2研究的意義對于剛參加工作的年輕人來說,租房是一個(gè)占比非常大的開支。但是房租的價(jià)格又是同城市的生活水平息息相關(guān)。為了吸引更多的大學(xué)生在當(dāng)?shù)剡M(jìn)行就業(yè),解決他們的住房問題就能夠?yàn)楫?dāng)?shù)匚嗟娜瞬?。根?jù)生活的經(jīng)驗(yàn)來看,人們在租房的時(shí)候會根據(jù)自己的實(shí)際需求去選擇租房。本文通過建立模型的方式能夠找到與房租價(jià)格相關(guān)的特征,幫助當(dāng)?shù)卣盐兆夥渴袌龅膬r(jià)格調(diào)動(dòng)風(fēng)向。同時(shí)也能夠幫助租房市場中的銷售人員提供合理的租房房價(jià)指導(dǎo)。在研究各個(gè)因素同租房價(jià)格的關(guān)聯(lián)關(guān)系時(shí)需要用到大量的數(shù)據(jù),研究人員需要通過復(fù)雜的處理步驟來進(jìn)行數(shù)據(jù)處理,在數(shù)據(jù)處理這一過程當(dāng)中,從租房數(shù)據(jù)的采集到數(shù)據(jù)清洗,把清洗后的數(shù)據(jù)進(jìn)行分析,每一個(gè)步驟都有可能產(chǎn)生錯(cuò)誤。因此我們需要理論結(jié)合實(shí)際,對于那些無關(guān)緊要的數(shù)據(jù)可以進(jìn)行刪除操作,然后對數(shù)據(jù)進(jìn)行進(jìn)一步的特征處理。國內(nèi)外關(guān)于價(jià)格預(yù)測相關(guān)的研究項(xiàng)目非常之多,其中研究房價(jià)的預(yù)測是主流問題。但是影響房價(jià)的因素眾多,從不同的角度去研究房價(jià)問題,即使是運(yùn)用了相同的模型,這樣也會導(dǎo)致結(jié)果產(chǎn)生非常大的差異。模型的泛化能力差,模型參數(shù)不能更新也會導(dǎo)致價(jià)格預(yù)測的結(jié)果不準(zhǔn)確。正是出于這樣的考慮,房價(jià)預(yù)測的相關(guān)研究一直是一個(gè)值得被關(guān)注的題目。當(dāng)?shù)卣谘芯亢椭付ㄒ粋€(gè)與房價(jià)相關(guān)的政策時(shí),往往會聽取專家的意見,但如果專家進(jìn)行預(yù)測的模型不能準(zhǔn)確地預(yù)測未來租房市場地走向,這樣會使得與租房相關(guān)的政策不能很好地落實(shí)。因此必須要運(yùn)用租房價(jià)格預(yù)測模型從多角度進(jìn)行分析,選擇不同地參數(shù)對模型進(jìn)行調(diào)優(yōu),使模型能都預(yù)測更加準(zhǔn)確地結(jié)果。本文正是通過建立xgboost模型對租房價(jià)格進(jìn)行預(yù)測,為租房價(jià)格預(yù)測問題提供了一種角度進(jìn)行分析。1.3國內(nèi)外研究現(xiàn)狀1.3.1國內(nèi)研究現(xiàn)狀徐富強(qiáng)等人利用線性組合預(yù)測模型對合肥房地產(chǎn)地房價(jià)進(jìn)行預(yù)測,他們對模型的改進(jìn)方法是利用誤差的絕對值并且使這些誤差達(dá)到最小。通過計(jì)算樹增益的方法,計(jì)算單個(gè)模型的預(yù)測值在整個(gè)模型中的權(quán)重來建立能預(yù)測的模型。該模型的優(yōu)勢是利用了神經(jīng)網(wǎng)絡(luò)和支持向量機(jī)在多種影響變量的環(huán)境中能夠良好地訓(xùn)練的優(yōu)勢,顯著地提高了模型對預(yù)測結(jié)果地準(zhǔn)確度。羅黨等人在傳統(tǒng)的GM(1,1)模型上做出改進(jìn),在原有的模型上加入BP神經(jīng)網(wǎng)絡(luò)模型,建立了一個(gè)基于灰色BP神經(jīng)網(wǎng)絡(luò)的組合模型,并利用該模型對鄭州市的商品房價(jià)格進(jìn)行預(yù)測。他們采用兩種模型分別進(jìn)行對比,將GM(1,1)模型對鄭州市的商品房價(jià)格預(yù)測結(jié)果與灰色BP神經(jīng)網(wǎng)絡(luò)的組合模型對鄭州市的商品房價(jià)格預(yù)測結(jié)果進(jìn)行對比。結(jié)果顯示,灰色BP神經(jīng)網(wǎng)絡(luò)的組合模型相比于傳統(tǒng)的GM(1,1)模型在預(yù)測的結(jié)果方面有更高的精確度,對實(shí)際問題的適應(yīng)性更強(qiáng)。郭小娟同樣是使用對比的方法對灰色殘差修正模型進(jìn)行改進(jìn)。一種是基于BP神經(jīng)網(wǎng)絡(luò)的灰色殘差修正模型,一種是基于UGM模型的灰色殘差修正模型。實(shí)驗(yàn)首先建立了灰色殘差修正模型,得到模型的預(yù)測結(jié)果。再分別通過BP神經(jīng)網(wǎng)絡(luò)和UGM模型對灰色殘差模型加以改進(jìn),得到改進(jìn)后的模型預(yù)測結(jié)果。結(jié)果顯示,改進(jìn)后的模型更能反應(yīng)房價(jià)市場的變化趨勢。魏云云等人利用灰色關(guān)聯(lián)分析的方法對西安市近幾年房價(jià)的統(tǒng)計(jì)數(shù)據(jù)進(jìn)行數(shù)據(jù)處理。他們得到影響房價(jià)的主要特征。再利用BP神經(jīng)網(wǎng)絡(luò)模型對房價(jià)進(jìn)行預(yù)測。這種處理的思路是在模型進(jìn)行預(yù)測之前,利用灰色關(guān)聯(lián)分析的方法獲得主要的特征。這樣能夠提高模型的訓(xùn)練速度,得到的預(yù)測結(jié)果也會更好。張志峰抓取南京市二手房的數(shù)據(jù)集,通過對數(shù)據(jù)進(jìn)行簡單的數(shù)據(jù)處理,再對數(shù)據(jù)進(jìn)行可視化分析。經(jīng)過簡單的分析之后,對數(shù)據(jù)集進(jìn)行特征提取。最后建立xgboost模型使用處理后的數(shù)據(jù)進(jìn)行訓(xùn)練,并對預(yù)測的結(jié)果同線性回歸和lasso回歸得出的結(jié)果進(jìn)行比較。最后得出的結(jié)論是xgboost相比與回歸模型具有更好的預(yù)測效果,應(yīng)用性更強(qiáng)。1.3.2國外研究現(xiàn)狀Kotakinabalu等人通過比較的方法,將反向傳播人工神經(jīng)網(wǎng)絡(luò)的預(yù)測誤差和模糊回歸的預(yù)測誤差相比較。反向傳播人工神經(jīng)網(wǎng)絡(luò)的預(yù)測結(jié)果比模糊回歸的預(yù)測結(jié)果要好。Bla等人通過建立非結(jié)構(gòu)化的協(xié)方差矩陣混合模型對舊金山地區(qū)的短租房銷售業(yè)績進(jìn)行分析。分析結(jié)果顯示短租房的收入業(yè)績與供給等特征無關(guān)。這一結(jié)果為Airbnb短租房公司提供了建設(shè)性的幫助。1.4本文組織結(jié)構(gòu)本文主要研究的是短租房的租房價(jià)格分析與價(jià)格預(yù)測的問題,從現(xiàn)時(shí)情況出發(fā),選取正規(guī)租房網(wǎng)站的短租數(shù)據(jù)集。首先對數(shù)據(jù)的結(jié)構(gòu)進(jìn)行了簡單的分析,然后刪除重復(fù)的數(shù)據(jù),經(jīng)過對數(shù)據(jù)集進(jìn)行特征提取,運(yùn)用決策樹模型進(jìn)行特征選擇,然后根據(jù)xgboost算法進(jìn)行建模,把特征數(shù)據(jù)輸入進(jìn)行訓(xùn)練。根據(jù)網(wǎng)格搜索的方法對模型的參數(shù)進(jìn)行調(diào)優(yōu),最后畫出模型預(yù)測值和真實(shí)值之間的對比圖并以此來判斷模型預(yù)測的結(jié)果。本文的結(jié)構(gòu)為如下五章:第一章的緒論部分介紹了本文的研究背景,研究問題的目的和意義。同時(shí)闡述了國內(nèi)外有關(guān)房價(jià)數(shù)據(jù)分析與價(jià)格預(yù)測的研究內(nèi)容。第二章相關(guān)理論與技術(shù)部分介紹了項(xiàng)目開發(fā)所需要用到的開發(fā)環(huán)境,與數(shù)據(jù)處理有關(guān)的技術(shù),用于進(jìn)行特征選擇的決策樹模型以及xgboost算法。第三章數(shù)據(jù)特征處理與可視化部分介紹的是對數(shù)據(jù)基本的數(shù)據(jù)清洗操作、對數(shù)據(jù)進(jìn)行特征提取以及提取完特征后數(shù)據(jù)的可視化。第四章基于xgboost模型的租房價(jià)格預(yù)測部分介紹的是介紹的模型的構(gòu)建過程,這其中包括模型相關(guān)的參數(shù)介紹以及利用網(wǎng)格搜索進(jìn)行調(diào)參,最后是模型預(yù)測結(jié)果的對比圖。第五章總結(jié)與不足部分介紹的是對項(xiàng)目設(shè)計(jì)和所遇到的問題的總結(jié),包括技術(shù)和溝通等方面。不足是對設(shè)計(jì)完成后項(xiàng)目還可以改進(jìn)的總結(jié)。1.5本章小結(jié)本章主要介紹了研究租房數(shù)據(jù)分析與價(jià)格預(yù)測的研究背景。討論了自改革開放以來我國出現(xiàn)的外地打工熱潮。并隨著社會經(jīng)濟(jì)的快速發(fā)展,當(dāng)人們的工資上漲速度跟不上房價(jià)上漲速度時(shí),相比于買房,租房就成為了大多數(shù)人的選擇。這種租房選擇的原因是多方面的,舊城改造與城中村的拆毀給長期租房的人帶來了巨大的生活壓力。而另一方面利用租房信息差二次出租房屋也成為了一種賺錢的手段。這一章還對研究的目的和意義進(jìn)行了討論。房子是一個(gè)人安家立命之本,但是房子不再僅僅只擁有的居住功能,還附帶了更多的商業(yè)價(jià)值。希望通過本文的研究,可以對那些真正有租房需求的人提供一點(diǎn)現(xiàn)實(shí)的考量。本章的第三部分是對國內(nèi)外有關(guān)租房價(jià)格預(yù)測研究的一個(gè)概括。通過研究可以發(fā)現(xiàn),國內(nèi)對于房價(jià)預(yù)測的研究主要是運(yùn)用的神經(jīng)網(wǎng)絡(luò)模型和XGBboost模型,并通過參數(shù)調(diào)優(yōu)的方式和多模型的融合來增強(qiáng)模型的預(yù)測精度。國外的研究方式也是通過人工神經(jīng)網(wǎng)絡(luò)或者是混合模型的方法來對與房價(jià)有關(guān)的問題進(jìn)行研究。本章的第四個(gè)部分討論了項(xiàng)目的主要設(shè)計(jì)流程,以及論文撰寫的結(jié)構(gòu)設(shè)計(jì)。主要是從現(xiàn)時(shí)情況出發(fā),通過選取正規(guī)租房網(wǎng)站的短租數(shù)據(jù)集。首先對數(shù)據(jù)的結(jié)構(gòu)進(jìn)行了簡單的分析,然后刪除重復(fù)的數(shù)據(jù),經(jīng)過對數(shù)據(jù)集進(jìn)行特征提取,運(yùn)用決策樹模型進(jìn)行特征選擇,然后根據(jù)XGBoost算法進(jìn)行建模,把特征數(shù)據(jù)輸入進(jìn)行訓(xùn)練。根據(jù)網(wǎng)格搜索的方法對模型的參數(shù)進(jìn)行調(diào)優(yōu),最后畫出模型預(yù)測值和真實(shí)值之間的對比圖并以此來判斷模型預(yù)測的結(jié)果。論文撰寫的主體思路是依照項(xiàng)目設(shè)計(jì)的功能模塊進(jìn)行撰寫的,詳細(xì)地闡述了各個(gè)部分的設(shè)計(jì)內(nèi)容。2相關(guān)理論與技術(shù)2.1項(xiàng)目開發(fā)環(huán)境本次項(xiàng)目開發(fā)所用的開發(fā)工具是pycharm,這是一款由Jetbrains開發(fā)的Python的IDE編輯工具。Pycharm開發(fā)工具具有根據(jù)已編寫的代碼對剩下的代碼進(jìn)行填補(bǔ),能夠自動(dòng)檢查代碼中的錯(cuò)誤并用紅線提示,能對項(xiàng)目中缺失的模塊進(jìn)行報(bào)錯(cuò)處理,還同時(shí)具有強(qiáng)大的導(dǎo)航界面等一系列特色功能。此外,因?yàn)閜ycharm擁有豐富的web框架,所以在pycharm中還可以進(jìn)行web項(xiàng)目的開發(fā)。最為重要的是pycharm能夠從互聯(lián)網(wǎng)中下載各種數(shù)學(xué)和科學(xué)包,這些操作都可以通過pycharm中包含的控制臺上輕松完成。本次項(xiàng)目開發(fā)所用的編程語言是python。Python編程開發(fā)語言發(fā)展至今已經(jīng)形成了多個(gè)版本,本次項(xiàng)目所使用的python版本是3.7版本,這是目前主流的項(xiàng)目開發(fā)版本。Python具有許多強(qiáng)大豐富的功能,例如資源眾多的函數(shù)庫。Python的優(yōu)點(diǎn)有如下5個(gè)方面。一是相比于c語言或是java語言,python的語法更加容易讓人理解。對于沒有其它編程語言基礎(chǔ)的人來說,python語言的易讀性會讓新手更加快速學(xué)會這門編程語言。通過了解程序的業(yè)務(wù)邏輯能夠更加容易設(shè)計(jì)出想要的應(yīng)用程序。二是python代碼的開源性使得python的程序代碼能夠不斷地被優(yōu)化。程序中的漏洞能夠被找到且成為開發(fā)者學(xué)習(xí)的案例,其他人也能夠通過設(shè)計(jì)新的功能或者利用算法來對程序進(jìn)行優(yōu)化。三是在編寫python代碼的過程中,用戶能夠直接在運(yùn)行窗口進(jìn)行編寫。編寫的程序不需要編譯器,這是因?yàn)閜ython自帶的解釋器能夠獨(dú)立對代碼進(jìn)行編譯。用戶也可以在未寫完整個(gè)程序的情況下進(jìn)行運(yùn)行和測試。四是python擁有許多內(nèi)置的類和模塊,在編寫程序的時(shí)候只需要將類或者是模塊直接進(jìn)行調(diào)用就可以完成想要的功能。如果python中沒有想要調(diào)用的包,用戶可以通過python指令在互聯(lián)網(wǎng)上下載安裝。用戶還可以自己編寫模塊,然后直接調(diào)用。五是python代碼有很強(qiáng)的平臺移植性。用戶可以在不同的操作系統(tǒng),不同的接口中對程序的代碼進(jìn)行測試和運(yùn)行。程序項(xiàng)目中的虛擬環(huán)境能夠使程序在不同設(shè)備上調(diào)試時(shí)無需重新安裝包。2.2標(biāo)簽編碼本次項(xiàng)目對數(shù)據(jù)進(jìn)行特征處理所需要用到的技術(shù)為labelencoder,也就是標(biāo)簽編碼,也叫標(biāo)準(zhǔn)化標(biāo)簽。該技術(shù)對數(shù)據(jù)進(jìn)行處理的手段通常將數(shù)據(jù)集中單個(gè)標(biāo)簽的全部離散數(shù)據(jù)進(jìn)行數(shù)值化。如果數(shù)據(jù)包含8個(gè)數(shù)據(jù),則標(biāo)簽編碼就將數(shù)據(jù)轉(zhuǎn)換成0到7之間的數(shù)。標(biāo)準(zhǔn)化標(biāo)簽技術(shù)通常用于處理含有大小關(guān)系的數(shù)據(jù)。在數(shù)據(jù)處理中還有一種技術(shù)通常也會被用到。這種技術(shù)叫獨(dú)熱編碼,在國外的學(xué)術(shù)期刊中通常把該技術(shù)稱之為one-hotcode。對于包含多個(gè)特征的數(shù)據(jù),獨(dú)熱編碼用1來表示單個(gè)特征,用0來表示其他特征。這種獨(dú)特的編碼方式解決了含有多個(gè)特征的復(fù)雜數(shù)據(jù)處理問題,同時(shí)也為數(shù)據(jù)處理的過程提供了更多的特征。但是這種方式處理有多個(gè)屬性多個(gè)狀態(tài)的數(shù)據(jù)時(shí)會使得處理結(jié)果更加復(fù)雜。所以在一般情況下,在使用這種編碼方式的同時(shí)還需要使用pca主成分分析法來對數(shù)據(jù)的多個(gè)特征進(jìn)行降維處理。在分析實(shí)際問題的過程中,一些數(shù)據(jù)間大小關(guān)系本身具有實(shí)際意義,不能直接將其簡單地?cái)?shù)值化。再加上有一些模型對數(shù)據(jù)的大小關(guān)系比較敏感,直接將特征數(shù)值化會影響模型訓(xùn)練的結(jié)果,比如邏輯回歸模型的預(yù)測結(jié)果就能被數(shù)據(jù)的特征處理過程所影響。還有其他一些對數(shù)據(jù)不太敏感的模型,比如說樹模型。所以在使用labelencoder進(jìn)行標(biāo)簽編碼的時(shí)候要考慮使用范圍。對于在哪種場景下使用標(biāo)簽編碼,在哪種場景下使用獨(dú)熱編碼,可以做一個(gè)大致的分類。對于那些不考慮數(shù)據(jù)間的邏輯關(guān)系且數(shù)據(jù)的特征不眾多復(fù)雜,數(shù)據(jù)的標(biāo)簽可以直接進(jìn)行數(shù)值化的情況下可以是使用獨(dú)熱編碼。比如對性別,地球七大洲名稱等數(shù)據(jù)特征少且不存在邏輯關(guān)系的特征進(jìn)行特征處理就可以使用獨(dú)熱編碼。在編碼的過程中,對男性特征標(biāo)記為1,女性則標(biāo)記為0,這樣便實(shí)現(xiàn)了對標(biāo)簽的編碼過程。對于那些需要考慮邏輯關(guān)系的數(shù)據(jù),需要使用標(biāo)簽編碼。邏輯關(guān)系包含順序邏輯關(guān)系。比如成績的排名,家庭不同成員的輩份。這些數(shù)據(jù)的特征間都一個(gè)固定的排序關(guān)系。使用標(biāo)簽編碼便可以在不破壞數(shù)據(jù)原有的邏輯關(guān)系的同時(shí)對數(shù)據(jù)進(jìn)行編碼。選用那種模型還可以通過所使用的模型來進(jìn)行判斷。對于數(shù)值間的邏輯關(guān)系不敏感的模型,比如說樹模型,就可以使用標(biāo)簽編碼。因?yàn)橐恍淠P驮谟?xùn)練的過程中,它的最大深度被限制。如果使用獨(dú)熱編碼產(chǎn)生非常多的特征,但是樹模型又無法繼續(xù)分裂而不得不將一些多余的特征舍棄。對于數(shù)值間邏輯關(guān)系比較敏感的模型則需要使用獨(dú)熱編碼。例如邏輯回歸模型,對特征進(jìn)行簡單的編碼處理會使得模型的訓(xùn)練效果下降。如果要考慮特征間的邏輯關(guān)系則需要使用獨(dú)熱編碼。2.3決策樹決策樹是樹模型的一種。其樹模型是由根節(jié)點(diǎn)、父親節(jié)點(diǎn)、子節(jié)點(diǎn)和葉子結(jié)點(diǎn)組成。每個(gè)數(shù)據(jù)的樣本特征會從根節(jié)點(diǎn)輸入。經(jīng)過不同的分裂路徑,最終的葉圖2-3決策樹子節(jié)點(diǎn)便是最終的決策結(jié)果。(2-3)一個(gè)好的決策樹模型是要對數(shù)據(jù)的屬性進(jìn)行最優(yōu)的劃分,盡量把相同的屬性樣本劃分到同一范圍。我們可以使用純度對劃分的準(zhǔn)確度來進(jìn)行描述,劃分的準(zhǔn)確度越高則屬性的純度越高,劃分的準(zhǔn)確度越低則屬性的純度越低。屬性的純度可以通過計(jì)算的方式來進(jìn)行描述。計(jì)算的結(jié)果稱為信息熵?,F(xiàn)在假設(shè)數(shù)據(jù)集的樣本為D,則樣本集的信息熵為:通過計(jì)算出來的值越小,則樣本的純度越高。決策樹模型的另一個(gè)特點(diǎn)就是節(jié)點(diǎn)分裂。在節(jié)點(diǎn)分裂的過程中決策樹魔心會使用信息增益比來選擇如何去分裂。通常情況下,決策樹會選擇分支較多的屬性進(jìn)行分裂。通過類似求平均數(shù)的過程去用信息增益率來除以節(jié)點(diǎn)個(gè)數(shù)得到信息增益率,這樣的分裂效果比較合理。其計(jì)算公式如下:(2-3)其中Info_Ratio

表示信息增益,

InstrinsicInfo表示分裂子節(jié)點(diǎn)數(shù)據(jù)量的信息增益,其計(jì)算公式為:(2-3)其中instrinsicinfo是分裂節(jié)點(diǎn)的熵,如果子節(jié)點(diǎn)個(gè)數(shù)越大,分裂節(jié)點(diǎn)的熵值越大,由此得到的信息增益比就會越小,就會導(dǎo)致決策樹模型在分裂的過程中的效果變差。通過增加決策樹分裂時(shí)的信息增益率能夠使得節(jié)點(diǎn)在分裂時(shí)選擇多屬性的結(jié)點(diǎn)進(jìn)行分裂的概率變低。通過公式可以看出,如果決策樹模型的信息增益率越高,表明分裂時(shí)的效果越好。2.4XGBoost算法XGBoost模型是由在國外進(jìn)行學(xué)習(xí)研究的陳天奇等人提出。XGBoost模型的相關(guān)論文一經(jīng)發(fā)表便在學(xué)術(shù)領(lǐng)域產(chǎn)生了巨大的反響?,F(xiàn)如今,XGBoost模型被廣泛地應(yīng)用于機(jī)器學(xué)習(xí)競賽以及國內(nèi)的一些深度學(xué)習(xí)網(wǎng)站中。XGBoost模型在原有的提升樹模型基礎(chǔ)上作出改進(jìn),并取得了很好的效果。XGBoost的主要算法思想是:不斷地添加子樹模型,通過樹模型的節(jié)點(diǎn)進(jìn)行特征分裂。每次生成的新的樹模型便相當(dāng)于一個(gè)新的函數(shù),用于計(jì)算之前預(yù)測的差值。如果我們要預(yù)測一個(gè)樣本,就可以把這個(gè)樣本的特征輸入到子樹模型中。子樹模型就對應(yīng)這一個(gè)葉子節(jié)點(diǎn),葉子節(jié)點(diǎn)得到的數(shù)值是子樹模型的預(yù)測分?jǐn)?shù),將每個(gè)葉子節(jié)點(diǎn)的數(shù)值相加即可得到該樣本特征的最終預(yù)測結(jié)果。XGBoost算法的目標(biāo)函數(shù):(2-4)XGBoost模型的目標(biāo)函數(shù)由兩部分組成。觀察值與預(yù)測值之間的殘差以及目標(biāo)函數(shù)的正則化項(xiàng)。我們通過調(diào)試觀測值與預(yù)測值之間的殘差來優(yōu)化目標(biāo)函數(shù)。通過不斷地生成決策樹來擬合之前預(yù)測地殘差,使得殘差越來越小以達(dá)到優(yōu)化目標(biāo)函數(shù)的目的。之前我們介紹了如何通過計(jì)算葉子節(jié)點(diǎn)的分?jǐn)?shù)以及如何用這寫葉子節(jié)點(diǎn)的分?jǐn)?shù)相加得到最終XGBoost模型預(yù)測的結(jié)果。我們還需要知道增強(qiáng)樹模型結(jié)構(gòu)是如何生成的。決策樹的生成必須要考慮節(jié)點(diǎn)的分裂方式。在增強(qiáng)樹模型中去尋找最佳分裂點(diǎn)和最佳特征是該模型的分裂方式。XGBoost利用貪心算法即通過遍歷每一個(gè)特征的分裂點(diǎn),并且利用XGBoost模型的目標(biāo)函數(shù)值來對特征分裂點(diǎn)進(jìn)行評價(jià)。通過判斷分裂后的函數(shù)值與葉子節(jié)點(diǎn)的目標(biāo)函數(shù)值之間的信息增益比,如果增益比較高則進(jìn)行分裂;否則不分裂。同時(shí)XGBoost還設(shè)置了閾值來限制樹分裂的最大深度。2.5網(wǎng)格搜索GridSearchCV的通俗說法是網(wǎng)格搜索法。網(wǎng)格搜索包含兩個(gè)部分,第一部分是網(wǎng)格搜索(GridSearch),第二部分是交叉驗(yàn)證(CV)。網(wǎng)格搜索是指在指定的參數(shù)范圍內(nèi),按照指定的步驟對參數(shù)依次進(jìn)行調(diào)整,通過對不同參數(shù)組合進(jìn)行訓(xùn)練和比較,找到最優(yōu)的參數(shù)組合。網(wǎng)格搜索這種調(diào)優(yōu)手段是通過遍歷范圍內(nèi)的全部的參數(shù),有點(diǎn)類似于貪心算法,直到最終找到模型訓(xùn)練的最優(yōu)組合參數(shù)。第二部分交叉驗(yàn)證,在進(jìn)行交叉驗(yàn)證的過程中通常是指定一個(gè)參數(shù)值,通過實(shí)驗(yàn)經(jīng)驗(yàn)選擇的交叉驗(yàn)證參數(shù)為10的參數(shù)值?;蛘呤鞘褂媒徊骝?yàn)證參數(shù)為n的參數(shù)值,這種交叉驗(yàn)證方法稱為留一法。在進(jìn)行機(jī)器學(xué)習(xí)模型訓(xùn)練的時(shí)候,一些參數(shù)的調(diào)優(yōu)往往需要人工去調(diào)整,這種參數(shù)被稱之為超參。最常見的超參有人工神經(jīng)網(wǎng)絡(luò)模型中的隱藏層的個(gè)數(shù)、樹模型中樹分裂的最大深度等參數(shù)。參數(shù)的調(diào)優(yōu)出現(xiàn)問題會導(dǎo)致模型的預(yù)測結(jié)果出現(xiàn)問題。一般情況下有兩種調(diào)優(yōu)方式。一種是通過實(shí)驗(yàn)經(jīng)驗(yàn)得到的參數(shù)調(diào)優(yōu)方法;一種是通過一定的方法對各個(gè)參數(shù)進(jìn)行調(diào)優(yōu)。本項(xiàng)目中使用到的網(wǎng)格搜索法便是這一種。網(wǎng)格搜索的缺點(diǎn)是只能調(diào)優(yōu)模型中的幾個(gè)參數(shù),當(dāng)需要調(diào)優(yōu)的參數(shù)個(gè)數(shù)很大時(shí),調(diào)優(yōu)的復(fù)雜度增大,調(diào)優(yōu)的時(shí)間也會變得很長。2.6r2評分標(biāo)準(zhǔn)r2評分標(biāo)準(zhǔn)即為決定系數(shù)。決定系數(shù)表示的是因變量被自變量所影響的程度。通過該決定系數(shù)模型對數(shù)據(jù)的預(yù)測準(zhǔn)確度。如果決定系數(shù)越大,則模型的預(yù)測準(zhǔn)確度越高;如果決定系數(shù)越小則模型的預(yù)測準(zhǔn)確度越低。其表達(dá)式為:(2-6)公式中SSR是總體離差平方和,SST是回歸平方和。從公式中我們可以知道,r2評分標(biāo)準(zhǔn)即決定系數(shù)是總體離差平方和與回歸平方和之比。決定系數(shù)的最終取值在0到1之間,決定系數(shù)越接近1,說明模型的解釋程度越好。通過該系數(shù)我們能判斷出模型對預(yù)測結(jié)果的解釋程度。判斷模型預(yù)測的優(yōu)劣程度通常使用的是r2評分標(biāo)準(zhǔn)。2.7本章小結(jié)本章主要介紹了項(xiàng)目設(shè)計(jì)過程中涉及到的相關(guān)理論與技術(shù)。主要介紹了項(xiàng)目的運(yùn)行環(huán)境,項(xiàng)目開發(fā)語言與使用的模型和調(diào)參技術(shù)。Pycharm開發(fā)工具具有根據(jù)已編寫的代碼對剩下的代碼進(jìn)行填補(bǔ),能夠自動(dòng)檢查代碼中的錯(cuò)誤并用紅線提示,能對項(xiàng)目中缺失的模塊進(jìn)行報(bào)錯(cuò)處理的優(yōu)點(diǎn)。項(xiàng)目使用的編程開發(fā)語言Python的優(yōu)點(diǎn)有相比于c語言或是java語言,python的語法更加容易讓人理解。對于沒有其它編程語言基礎(chǔ)的人來說,python語言的易讀性會讓新手更加快速學(xué)會這門編程語言。python代碼的開源性使得python的程序代碼能夠不斷地被優(yōu)化。python自帶的解釋器能夠獨(dú)立對代碼進(jìn)行編譯。本章還介紹了標(biāo)簽編碼技術(shù),并于數(shù)據(jù)處理中常用的獨(dú)熱編碼作為對比,從數(shù)值類型,模型選擇等方面對兩種技術(shù)進(jìn)行了類比。比如說在哪種場景下使用標(biāo)簽編碼,在哪種場景下使用獨(dú)熱編碼,做了一個(gè)大致的分類。對于那些不考慮數(shù)據(jù)間的邏輯關(guān)系且數(shù)據(jù)的特征不眾多復(fù)雜,數(shù)據(jù)的標(biāo)簽可以直接進(jìn)行數(shù)值化的情況下可以是使用獨(dú)熱編碼。對于那些需要考慮邏輯關(guān)系的數(shù)據(jù),需要使用標(biāo)簽編碼。本章提及了兩種樹模型,一種是決策樹,一種是增強(qiáng)樹模型即XGBoost模型。決策樹模型是由根節(jié)點(diǎn)、父親節(jié)點(diǎn)、子節(jié)點(diǎn)和葉子結(jié)點(diǎn)組成。決策樹模型通過對數(shù)據(jù)的屬性進(jìn)行最優(yōu)劃分,盡量把相同的屬性樣本劃分到同一范圍。通過類似求平均數(shù)的過程去用信息增益率來除以節(jié)點(diǎn)個(gè)數(shù)得到信息增益率,如果決策樹模型的信息增益率越高,表明分裂時(shí)的效果越好。這便是決策樹的構(gòu)建關(guān)鍵步驟。XGBoost算法的主要算法思想是通過不斷地添加子樹模型,通過樹模型的節(jié)點(diǎn)進(jìn)行特征分裂。把每次生成的新的樹模型當(dāng)成一個(gè)新的函數(shù),用來計(jì)算之前預(yù)測的差值。子樹模型對應(yīng)這一個(gè)葉子節(jié)點(diǎn),葉子節(jié)點(diǎn)得到的數(shù)值是子樹模型的預(yù)測分?jǐn)?shù),將每個(gè)葉子節(jié)點(diǎn)的數(shù)值相加即可得到該樣本特征的最終預(yù)測結(jié)果。最后還介紹了調(diào)參方法-網(wǎng)格搜索法。網(wǎng)格搜索是指在指定的參數(shù)范圍內(nèi),按照指定的步驟對參數(shù)依次進(jìn)行調(diào)整,通過對不同參數(shù)組合進(jìn)行訓(xùn)練和比較,找到最優(yōu)的參數(shù)組合。通過對這些技術(shù)的概括使我對python技術(shù)以及機(jī)器學(xué)習(xí)模型特別是樹模型有了更加全面的了解。3數(shù)據(jù)特征處理與可視化3.1數(shù)據(jù)來源本次項(xiàng)目的實(shí)驗(yàn)數(shù)據(jù)來源于網(wǎng)絡(luò)博主通過爬蟲技術(shù)爬取的2020年4月份鏈家網(wǎng)站北京市各個(gè)區(qū)域的租房數(shù)據(jù)。數(shù)據(jù)的屬性包括單條數(shù)據(jù)的url,房源區(qū)域,房源維護(hù)時(shí)間,房源編號,租賃方式,房屋類型,房屋類型廳室,房屋類型面積,房屋類型精裝修,經(jīng)紀(jì)人,面積,朝向,維護(hù),入住,樓層,電梯,車位,用水,用電,燃?xì)猓膳?,租期,看房,付款方式,租金,押金,服?wù)費(fèi),中介費(fèi)。url是單個(gè)租房網(wǎng)頁的網(wǎng)址。通過訪問這個(gè)url可以找到房屋出租信息的頁面。房源區(qū)域是出租房屋所處在的北京市的地址,其中包含行政區(qū),所屬街道,所屬小區(qū)。房源維護(hù)時(shí)間是上一次維護(hù)該出租房屋的時(shí)間,房子的維護(hù)時(shí)間以年月日的形式顯示,其它未標(biāo)注維護(hù)時(shí)間的房屋以井號形式顯示。房源編號是鏈家網(wǎng)站給每個(gè)出租房屋的編號,通過房源編號也能夠找到該出租房屋的房源信息。租賃方式是出租房屋的方式,通過觀察鏈家租房數(shù)據(jù)集中的數(shù)據(jù)可以發(fā)現(xiàn),租賃方式屬性中包含的數(shù)據(jù)都為整租的租賃方式,對后面數(shù)據(jù)的分析和特征的提取沒有幫助,所以將該屬性剔除。房屋類型是出租房屋的結(jié)構(gòu)類型,其中包括房屋的室、廳、衛(wèi)的數(shù)量和房屋面積。房屋類型廳室的數(shù)據(jù)與房屋類型的數(shù)據(jù)相同??赡苁窃谂廊〉倪^程中對頁面數(shù)據(jù)的范圍選取有問題,導(dǎo)致不同名稱的屬性包含的數(shù)據(jù)相同。對于重復(fù)的屬性,在開始的數(shù)據(jù)處理中采用刪除操作。房屋類型面積是出租房屋的總面積,房屋類型屬性的數(shù)據(jù)與后面面積屬性的數(shù)據(jù)相同。所以在開始的數(shù)據(jù)處理中對面積屬性進(jìn)行刪除。房屋類型精裝修表示出租房屋經(jīng)過精裝修,未經(jīng)過精裝修或其它的數(shù)據(jù)用井號顯示。經(jīng)紀(jì)人是出租房屋所屬經(jīng)紀(jì)人,該屬性包含的數(shù)據(jù)較多,并且還含有缺失值。朝向是出租房屋的面朝方向,包含東、南、西、北和它們的組合朝向。維護(hù)是距離上一次維護(hù)房屋的時(shí)間,數(shù)據(jù)用今天,幾天前或者幾周前顯示。入住是可入住的時(shí)間,房屋的入住顯示三種可入住時(shí)間,分別是隨時(shí)入住,可以入住的時(shí)間以及用井號顯示未標(biāo)注的入住時(shí)間。樓層表示出租房屋的所在樓層。分別用高中低樓層和樓層數(shù)顯示房屋的樓層。電梯表示出租房屋是否可以搭乘電梯。用有和無表示。車位表示出租房屋附帶車位的情況,分別用免費(fèi)使用,租用車位和暫無數(shù)據(jù)顯示。用水、用電表示出租房屋的用水、用電方式,用水方式使用民水,商水,暫無數(shù)據(jù)顯示;用電方式使用民電、商電、暫無數(shù)據(jù)顯示。燃?xì)獗硎境鲎夥课莞綆細(xì)獾那闆r,用有、無、暫無數(shù)據(jù)表示。采暖表示出租房屋的采暖方式。用集中供暖,自供暖,暫無數(shù)據(jù)顯示。租期表示出租房屋約定的租期,用幾年以內(nèi),幾個(gè)月以內(nèi),和暫無數(shù)據(jù)表示。看房表示出租房屋約定的看房時(shí)間,通過表示需要提前預(yù)約和一般下班后表示。付款方式表示出租房屋付款的方式,用季付和需咨詢表示。租金表示出租房屋的月付金額。該數(shù)據(jù)集爬取的租房信息包含多個(gè)屬性,但是其中一部分屬性雖然名稱不同但是數(shù)據(jù)相同,如房屋類型廳室、面積、押金、服務(wù)費(fèi)、中介費(fèi)等屬性,對于數(shù)據(jù)的分析過程沒有幫助,屬于重復(fù)數(shù)據(jù),所以剔除這些屬性。還有部分屬性如url、房源編號、租賃方式,這部分屬性雖然不是重復(fù)數(shù)據(jù),但是對房價(jià)數(shù)據(jù)分析無實(shí)際意義,所以同樣需要剔除。原數(shù)據(jù)集沒有行索引,所以還要給該數(shù)據(jù)集添加行索引。3.2數(shù)據(jù)特征處理3.2.1區(qū)域拆分轉(zhuǎn)化首先對區(qū)域?qū)傩赃M(jìn)行特征處理,該屬性數(shù)據(jù)包含的是三個(gè)區(qū)域的字符串,所以要首先對字符做一個(gè)拆分,將一個(gè)區(qū)域字符串拆分成三個(gè)區(qū)域,分別是區(qū)域1、區(qū)域2和區(qū)域3。再分別對三個(gè)區(qū)域特征進(jìn)行標(biāo)簽化。圖3-2區(qū)域拆分轉(zhuǎn)化流程圖在進(jìn)行字符串拆分的過程中采用的是split函數(shù)對以空格為分隔符的字符串進(jìn)行分割,并利用lambd函數(shù)把值傳遞給apply函數(shù),最后通過apply函數(shù)把把值存儲到區(qū)域_1列表中。利用labelencoder函數(shù)對列表中的所有離散型數(shù)據(jù)轉(zhuǎn)換成數(shù)值,再對數(shù)值特征進(jìn)行標(biāo)準(zhǔn)化處理。最后得到數(shù)值型的區(qū)域特征。區(qū)域_2和區(qū)域_3的數(shù)據(jù)存儲過程和數(shù)值化以及標(biāo)準(zhǔn)化過程也是如此。3.2.2日期提取通過datetime.datetime構(gòu)造函數(shù)對房源維護(hù)時(shí)間數(shù)據(jù)進(jìn)行提取,并利用lambd函數(shù)把值傳遞給apply函數(shù),最后通過apply函數(shù)把值存儲到新構(gòu)建地列表號中。3.2.3房屋類型處理首先建立三個(gè)空列表用于存儲房屋類型中室、廳、衛(wèi)三個(gè)特征的數(shù)值。構(gòu)建一個(gè)名為fw(房屋)的函數(shù),re.findall正則表達(dá)式來獲取室、廳、衛(wèi)中三個(gè)特征的數(shù)值。通過append方法把數(shù)值存儲到三個(gè)列表中。圖3-2房屋類型處理流程圖3.2.4房屋類型精裝修處理房屋精裝修屬性只包含#和精裝修兩個(gè)標(biāo)簽,所以在replace方法中使用0和1來代替#和精裝修。并最終存儲到房屋類型精裝修列表中。3.2.5維護(hù)時(shí)間提取構(gòu)建一個(gè)名為wh(維護(hù))的函數(shù),把維護(hù)屬性中為“今天”的數(shù)據(jù)作為0返回。其他包含數(shù)值的字符串用正則表達(dá)式提取數(shù)字。把結(jié)果最終村春到一個(gè)名為維護(hù)的列表中。圖3-2維護(hù)時(shí)間提取流程圖3.2.6入住時(shí)間提取先分別構(gòu)建兩個(gè)用來存儲入住月份和入住日的列表。建立一個(gè)名為rz(入?。┑暮瘮?shù),把入住時(shí)間屬性中“隨時(shí)入住”標(biāo)簽不存入列表中。再利用strptime方法分別提取入住月份和入住日。最后將值存儲到新的列表中。圖3-2入住時(shí)間流程圖3.2.7樓層特征處理先構(gòu)建一個(gè)列表,再構(gòu)建一個(gè)名為lc(樓層)的函數(shù),在函數(shù)中使用split方法對字符串進(jìn)行切片,再返回樓層中高、中、低三個(gè)標(biāo)簽。最后利用labelencoder進(jìn)行標(biāo)簽編碼。把編碼后的數(shù)值存儲到列表中。3.2.8其他特征處理在對數(shù)據(jù)集進(jìn)行特征處理的過程中,有一些標(biāo)簽的數(shù)據(jù)結(jié)構(gòu)比較簡單,只需要通過labelencoder方法對這些離散的數(shù)據(jù)進(jìn)行數(shù)值化處理,并將最終的數(shù)據(jù)存儲到列表中便完成了特征處理工作。對于一些含有重復(fù)數(shù)據(jù)的標(biāo)簽或者是與租金特征無關(guān)的一些標(biāo)簽未被存儲到新的列表中,相當(dāng)于對這些數(shù)據(jù)實(shí)現(xiàn)了刪除操作。3.3特征重要性可視化在對初始的數(shù)據(jù)集進(jìn)行特征處理后,得到了一個(gè)新的數(shù)據(jù)集。該數(shù)據(jù)集中的數(shù)據(jù)全部經(jīng)過標(biāo)簽編碼化處理,這樣能夠提升模型的訓(xùn)練效果。通過1:3的比例把數(shù)據(jù)集拆分成測試集和訓(xùn)練集。通過調(diào)用決策樹模型,并經(jīng)過決策樹模型對數(shù)據(jù)的訓(xùn)練。通過來觀察出數(shù)據(jù)中每個(gè)特征的重要性程度。 圖3.3特征重要性從上面特征重要性一圖中可以看到,區(qū)域_1、區(qū)域_2、區(qū)域_3、房屋類型面積以及樓層等特征的重要性相比于其他特征較高,說明這幾個(gè)特征是影響租房價(jià)格的主要因素。3.4相關(guān)熱力圖通過觀察特征重要性圖,我們選擇特征重要性在0.01以上的特征。這樣得到了區(qū)域_1、區(qū)域_2、區(qū)域_3、房屋類型面積、經(jīng)紀(jì)人、朝向、樓層、號等特征。 圖3.4相關(guān)性熱力圖在圖中可以看到,與租金相關(guān)性較大的特征為區(qū)域_1、區(qū)域_2、區(qū)域_3。表示區(qū)域特征對于租金價(jià)格的變化影響較大。3.5本章小結(jié) 本章介紹了數(shù)據(jù)的來源、數(shù)據(jù)結(jié)構(gòu)和對數(shù)據(jù)的一些特征處理方法以及對特征的可視化過程。實(shí)驗(yàn)數(shù)據(jù)來源于網(wǎng)絡(luò)博主通過爬蟲技術(shù)爬取的2020年4月份鏈家網(wǎng)站北京市各個(gè)區(qū)域的租房數(shù)據(jù)。數(shù)據(jù)的屬性包括單條數(shù)據(jù)的url,房源區(qū)域,房源維護(hù)時(shí)間,房源編號,租賃方式等。介紹了數(shù)據(jù)集中數(shù)據(jù)的結(jié)構(gòu)。比如租賃方式是出租房屋的方式,通過觀察鏈家租房數(shù)據(jù)集中的數(shù)據(jù)可以發(fā)現(xiàn),租賃方式屬性中包含的數(shù)據(jù)都為整租的租賃方式,對后面數(shù)據(jù)的分析和特征的提取沒有幫助,所以將該屬性剔除。房屋類型是出租房屋的結(jié)構(gòu)類型,其中包括房屋的室、廳、衛(wèi)的數(shù)量和房屋面積。房屋類型廳室的數(shù)據(jù)與房屋類型的數(shù)據(jù)相同??赡苁窃谂廊〉倪^程中對頁面數(shù)據(jù)的范圍選取有問題,導(dǎo)致不同名稱的屬性包含的數(shù)據(jù)相同。對于重復(fù)的屬性,在開始的數(shù)據(jù)處理中采用刪除操作。該數(shù)據(jù)集爬取的租房信息包含多個(gè)屬性,但是其中一部分屬性雖然名稱不同但是數(shù)據(jù)相同,如房屋類型廳室、面積、押金、服務(wù)費(fèi)、中介費(fèi)等屬性,對于數(shù)據(jù)的分析過程沒有幫助,屬于重復(fù)數(shù)據(jù),所以剔除這些屬性。還有部分屬性如url、房源編號、租賃方式,這部分屬性雖然不是重復(fù)數(shù)據(jù),但是對房價(jià)數(shù)據(jù)分析無實(shí)際意義,所以同樣需要剔除。原數(shù)據(jù)集沒有行索引,所以還要給該數(shù)據(jù)集添加行索引。接下來是對數(shù)據(jù)特征提取操作。代碼的展示通過流程圖加文字介紹的形式進(jìn)行演示。以區(qū)域劃分特征提取為例。在進(jìn)行字符串拆分的過程中采用的是split函數(shù)對以空格為分隔符的字符串進(jìn)行分割,并利用lambd函數(shù)把值傳遞給apply函數(shù),最后通過apply函數(shù)把把值存儲到區(qū)域_1列表中。利用labelencoder函數(shù)對列表中的所有離散型數(shù)據(jù)轉(zhuǎn)換成數(shù)值,再對數(shù)值特征進(jìn)行標(biāo)準(zhǔn)化處理。最后得到數(shù)值型的區(qū)域特征。最后通過化特征重要性圖來表示提取特征對租金特征的重要程度。相關(guān)性熱力圖表示的是各個(gè)特征之間的相關(guān)程度,相關(guān)系數(shù)越高,表示特征的關(guān)聯(lián)程度越高。4基于XGBoost模型的租房價(jià)格預(yù)測4.1XGBoost模型通過引入XGBRegressor函數(shù)來完成XGBoost模型的建立。根據(jù)實(shí)驗(yàn)的經(jīng)驗(yàn)總結(jié),我設(shè)定了一些模型初始的參數(shù)。如:1.learning_rate=[0.01,0.05,0.1]2.n_estimators=[300,500,700,900]3.max_depth=[3,6,10,15]這些值是通過前人的經(jīng)驗(yàn)總結(jié)給出的,這些值以字典的格式儲存在param_grid中。4.2網(wǎng)格搜索調(diào)優(yōu)我采用網(wǎng)格搜索的方法對模型中的參數(shù)進(jìn)行調(diào)優(yōu)。使用這種調(diào)優(yōu)方式是因?yàn)檫@是目前最為廣泛的對XGBoost模型進(jìn)行參數(shù)調(diào)優(yōu)的方式。網(wǎng)格搜索調(diào)優(yōu)法的大致思路是通過給定的參數(shù)范圍和評分標(biāo)準(zhǔn)。網(wǎng)格搜索對模型在給定參數(shù)范圍的所有排列組合進(jìn)行評分,選出最優(yōu)的參數(shù)組合。評分的方式是通過網(wǎng)格搜索中包含的交叉驗(yàn)證方式實(shí)現(xiàn)的,交叉驗(yàn)證的參數(shù)通?;厝∫粋€(gè)特定的值。本次項(xiàng)目所選用的評分標(biāo)準(zhǔn)是r2評分標(biāo)準(zhǔn),交叉驗(yàn)證參數(shù)是10。使用網(wǎng)格搜索方法按順序依次對learning_rate(學(xué)習(xí)率)、n_estimators(優(yōu)化樹個(gè)數(shù))、max_depth(樹最大深度)的參數(shù)進(jìn)行調(diào)節(jié)。最終得到的最優(yōu)參數(shù)組合為:1.learning_rate=0.052.n_estimators=5003.max_depth=6r2評估指標(biāo)的評估分?jǐn)?shù)為0.8545,這表明經(jīng)過調(diào)優(yōu)后的該模型預(yù)測效果較好。4.3房租價(jià)格對比圖這是房租價(jià)格對比圖,橫軸表示的是樣本數(shù)量,縱軸表示的是租金價(jià)格。藍(lán)色折線表示的是真實(shí)租金,黃色折線表示的預(yù)測租金。通過觀察兩段折線的擬合程度,可以看到兩段折線的擬合程度較高,說明模型預(yù)測租金的結(jié)果比較準(zhǔn)確。 圖4-3預(yù)測對比圖4.4本章小結(jié)本章介紹了XGBoost模型的參數(shù)選擇,利用網(wǎng)格搜索法對模型參數(shù)進(jìn)行調(diào)優(yōu)。根據(jù)實(shí)驗(yàn)的經(jīng)驗(yàn)總結(jié),我設(shè)定了一些模型初始的參數(shù)。如學(xué)習(xí)率設(shè)置在0.01到0.1之間;優(yōu)化樹個(gè)數(shù)設(shè)置在300到900之間;樹的最大深度設(shè)置在3到15之間。通過網(wǎng)格搜索的方法找到最優(yōu)的參數(shù)組合模型。使用這種調(diào)優(yōu)方式是因?yàn)檫@是目前最為廣泛的對XGBoost模型進(jìn)行參數(shù)調(diào)優(yōu)的方式。網(wǎng)格搜索調(diào)優(yōu)法的大致思路是通過給定的參數(shù)范圍和評分標(biāo)準(zhǔn)。網(wǎng)格搜索對模型在給定參數(shù)范圍的所有排列組合進(jìn)行評分,選出最優(yōu)的參數(shù)組合。評分的方式是通過網(wǎng)格搜索中包含的交叉驗(yàn)證方式實(shí)現(xiàn)的,交叉驗(yàn)證的參數(shù)為10。最終得到的最優(yōu)參數(shù)組合為學(xué)習(xí)率0.05;優(yōu)化樹個(gè)數(shù)500;樹最大深度6;最終r2評估指標(biāo)的評估分?jǐn)?shù)為0.8545,這表明經(jīng)過調(diào)優(yōu)后的該模型預(yù)測效果較好。最終畫出一個(gè)房租價(jià)格對比圖,用橫軸表示的是樣本數(shù)量,縱軸表示的是租金價(jià)格。藍(lán)色折線表示的是真實(shí)租金,黃色折線表示的預(yù)測租金。通過觀察兩段折線

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論