鄭 列, 穆新宇
(湖北工業(yè)大學(xué)理學(xué)院, 湖北 武漢 430068)
在線短租房得到了空前的發(fā)展,并催生了途家、小豬、榛果民宿等知名短租平臺[1]。從公開信息出發(fā),建立在線短租房的價格預(yù)測模型,有助于在線短租產(chǎn)業(yè)的發(fā)展。XGBoost模型自提出以來備受關(guān)注,不僅眾多學(xué)者對其展開深入研究與改進(jìn)[2-3],而且在工業(yè)界取得了不錯的成果[4-5]。相較于傳統(tǒng)統(tǒng)計模型,XGBoost無論在分類還是回歸問題中均能取得較好效果,但是其解釋性相對較差,不利于實際問題的具體分析。為解決這一弊端,本文在使用XGBoost預(yù)測短租房價格時,考慮先使用傳統(tǒng)統(tǒng)計模型對問題做出較好的解釋,再挑選表現(xiàn)較佳的變量構(gòu)建預(yù)測模型。該模型能夠為新加入短租平臺的房源提供具有參考價值的定價范圍,也能夠幫助短租平臺監(jiān)管房源價格的異常情況,并及時做出調(diào)整,營造出公平合理的短租商業(yè)氛圍。
本文的研究數(shù)據(jù)來源于阿里云天池大數(shù)據(jù)競賽[6],該數(shù)據(jù)是Airbnb公司于2019年4月17日公開的北京地區(qū)房源數(shù)據(jù)集。Airbnb是全球知名的民宿短租平臺,其房源范圍覆蓋191個國家和地區(qū),以Airbnb平臺的數(shù)據(jù)研究相關(guān)問題具有重要的參考價值。目前,在線短租業(yè)務(wù)主要分布在一線和省會城市,北京作為首都具有代表性,以其房源信息作為研究對象相對合理。
原始數(shù)據(jù)集包含28452個樣本和106個屬性,每一個樣本對應(yīng)一個房源,而每一個屬性代表房源的一個特征,不過該數(shù)據(jù)集并未指定哪一個屬性作為研究目標(biāo),因此為相關(guān)問題的研究提供了更多的可能性。本文擬研究在線短租房的價格影響因素及其預(yù)測模型,故將price屬性作為目標(biāo)變量,其原始值為數(shù)值型,表示房源的價格,而將其它屬性作為房源的固有特征,其中包括數(shù)值型、分類型和文本型,主要涉及房源基本情況、房主情況和房客評價等方面。
在原始數(shù)據(jù)集中,存在缺失值和異常值,需要進(jìn)行適當(dāng)?shù)臄?shù)據(jù)清洗,對于缺失值一般采用樣本填充法或?qū)傩詣h除法,如果某一屬性的缺失值比例不大,那么會選擇對有缺失值的樣本進(jìn)行填充,數(shù)值型數(shù)據(jù)采用均值填充,分類型數(shù)據(jù)采用眾數(shù)填充,文本型數(shù)據(jù)暫不填充,而如果某一屬性的缺失值比例較大,那么會選擇刪除該屬性對應(yīng)的所有數(shù)值。對于異常值的處理一般采用樣本刪除法,異常值會對后續(xù)分析產(chǎn)生很大干擾,可以根據(jù)3σ原則進(jìn)行識別,進(jìn)而刪除存在異常值的樣本。本文數(shù)據(jù)預(yù)處理的最終樣本量為23364,保留屬性有82個。
在線短租房是一種新興產(chǎn)業(yè),其發(fā)展模式介于傳統(tǒng)酒店與傳統(tǒng)租房之間,所以在研究短租房價格的影響因素時,既要借鑒對傳統(tǒng)酒店價格的研究,又要考慮短租房自身的特點。
本文查閱多篇有關(guān)短租房價格的文獻(xiàn)[7-9],綜合多個方面對短租房價格的影響因素構(gòu)建了合理的特征體系。特征體系包括5個類別,分別為房源的基礎(chǔ)設(shè)施、房源的基本屬性、房主的基本情況、在線預(yù)定規(guī)則和房客的評論情況,共計23個變量,其詳細(xì)的名稱和含義見表1。
表1 短租房價格及其影響因素的描述
從表1可以看出,5類特征涵蓋了房源、房主和房客三個方面的信息,考慮的影響因素比較全面,而且23個變量中有11個數(shù)值型變量,12個二分類型變量。二分類型變量主要通過短租平臺的在線信息獲取,體現(xiàn)了短租產(chǎn)業(yè)以互聯(lián)網(wǎng)為重要媒介的特點。
在線短租房的價格會受很多因素的影響,為了清楚地了解各影響因素對價格的影響程度和方向,需要建立合適的模型進(jìn)行分析,本文主要采用傳統(tǒng)統(tǒng)計模型中的OLS回歸與分位數(shù)回歸,其中OLS回歸可以分析各因素對房源價格的綜合影響情況,分位數(shù)回歸可以分析各因素對不同價位房源的影響情況。
OLS回歸,即最小二乘回歸,它會將誤差的平方和最小化,以此確定目標(biāo)變量與影響因素之間的最佳線性關(guān)系,是各個學(xué)科研究中普遍使用的標(biāo)準(zhǔn)統(tǒng)計模型,其模型表達(dá)式為
yi=β0+β1xi+εi
(1)
其中:yi被稱作因變量;xi被稱作自變量;β0,β1是需要用最小二乘法確定的參數(shù),也被稱作回歸系數(shù);εi被稱作隨機誤差項。
使用OLS回歸要求數(shù)據(jù)必須滿足以下統(tǒng)計假設(shè):①正態(tài)性,即對于固定的自變量值,因變量值成正態(tài)分布;②獨立性,即個體之間相互獨立;③線性相關(guān),即因變量和自變量之間是線性相關(guān)的;④同方差性,即因變量的方差不隨自變量的水平不同而變化,也就是說因變量的方差是恒定的。
OLS回歸因其思路簡單、方便實現(xiàn)等特點,在各個學(xué)科廣泛應(yīng)用,不過它主要關(guān)注各影響因素與目標(biāo)變量的條件均值之間的關(guān)系,沒有充分考慮目標(biāo)變量條件分布的整體性。
為了彌補OLS回歸的局限性,18世紀(jì)中期Boscovich首次提出中位數(shù)回歸,在此基礎(chǔ)上,Roger Koenker與Gilbert Bassett在1978年提出更具一般性的分位數(shù)回歸,其模型表達(dá)式為
yi=β0(p)+β1(p)xi+εi(p)
(2)
其中,0
yi在特定值xi下的第p條件分位數(shù)為Q(p)(yi|xi)=β0(p)+β1(p)xi,由此可知該模型要求誤差項的第p分位數(shù)等于0[10]。
分位數(shù)回歸一般用來研究自變量與因變量的條件分位數(shù)之間的關(guān)系,得到的模型可以用前者來估計后者。它不是僅分析因變量的條件期望,而是比較全面地解釋因變量的條件分布。
和OLS回歸相比,分位數(shù)回歸的使用條件更加寬泛,所獲得的信息量更多,能夠捕捉到條件分布形狀對因變量的影響,可以全面地表現(xiàn)分布的情況,而且回歸系數(shù)的估計更加穩(wěn)健。
Python是一門簡潔易懂的編程語言,其中有專門用于統(tǒng)計分析的封裝庫,對于統(tǒng)計分析非常方便,通過輸入相關(guān)數(shù)據(jù)可以對在線短租房的價格及其影響因素做OLS回歸與分位數(shù)回歸,其中所選分位數(shù)依次為0.1、0.25、0.5、0.75和0.9,兩種結(jié)果的對比情況如表2所示。
表2 OLS回歸與分位數(shù)回歸結(jié)果對比
由表2可見,所有因素在OLS回歸中均顯著,但在分位數(shù)回歸中有個別因素不顯著。通過這些結(jié)果不僅可以分析每個因素對于房源價格的影響情況,還可以針對不同價位的房源給出不同的解釋。
從房源的基礎(chǔ)設(shè)施來看,浴室數(shù)、臥室數(shù)、床數(shù)和可容納人數(shù)無論在OLS回歸中還是分位數(shù)回歸中均較為顯著,并且在分位數(shù)回歸中,分位數(shù)越大各因素對價格的影響程度越大。浴室數(shù)、臥室數(shù)和可容納人數(shù)對價格的回歸系數(shù)是正值,所以這些因素的值越大,房源的價格越高,而床數(shù)對價格的回歸系數(shù)是負(fù)值,說明房源的床數(shù)越多價格反而越低,這很可能是房主為吸引對價格敏感的房客而采用的營銷策略,試圖通過提供更多的入住機會來降低價格。
從房源的基本屬性來看,是否精確定位和房產(chǎn)是否為公寓在低分位數(shù)回歸時沒有通過顯著性檢驗,說明這兩個特征對低價房源的價格并無顯著影響,不過在高分位數(shù)回歸中隨著分位數(shù)的增大對價格的影響程度遞增,且均為負(fù)向影響。其它因素在OLS回歸與分位數(shù)回歸中均較為顯著,且為正向影響,其中經(jīng)營時間越長價格會越高,說明房主在經(jīng)營經(jīng)驗的基礎(chǔ)上可以打造出更有特色、更可靠的房源,另外,房源是否為整租對中等價位房源的價格影響程度最大,而是否在市區(qū)對高價房源的影響程度最大。
從房主的基本情況來看,房主的身份是否通過驗證在低分位數(shù)回歸時沒有通過顯著性檢驗,說明它對低價房源的價格并無顯著影響,因為低價房源的安全性要稍微低一些,房客不會過于關(guān)注房主的身份情況。房主擁有的房源數(shù)越多價格越高,說明此類房源的房主可能是從事短租產(chǎn)業(yè)的專業(yè)房主,可以給房客提供更好的服務(wù)。另外,超贊房主擁有和專業(yè)房主同樣的經(jīng)營優(yōu)勢,房源價格自然會較高。
從在線預(yù)定規(guī)則來看,是否有入住規(guī)則和是否可以隨時預(yù)定對中等價格房源的影響較為明顯,而是否需要清潔費則對中等價位房源的價格無明顯影響。另外,需要押金的房源價格更高,說明此類房源的設(shè)施和服務(wù)應(yīng)該較好,價格自然攀升,而額外加人需要另收費的房源價格較低,說明此類房源更傾向于按人數(shù)收費。房源的最少入住天數(shù)越多價格越低,說明房主傾向于將房源租給長期房客,可以減少服務(wù)和溝通成本。
從房客的評論情況來看,評論天數(shù)對于低價房源的價格影響不顯著,最近一年的評論數(shù)對于房源價格的整體影響均比較顯著。不過兩者對于房源價格的影響都是負(fù)向的,當(dāng)評論數(shù)和評論天數(shù)增加時房源價格會下降,評論數(shù)在一定程度上能夠反映房源的預(yù)定量,說明房主傾向于采用薄利多銷的經(jīng)營方式。
房屋的價格預(yù)測有很多經(jīng)典的預(yù)測模型,但是在線短租房與傳統(tǒng)房屋在價格預(yù)測方面存在諸多不同,其中最主要的不同在于影響因素,模型的選擇也會產(chǎn)生差異。隨著機器學(xué)習(xí)技術(shù)的不斷發(fā)展,目前傾向于選擇新穎的模型來解決問題。
本文挑選出OLS回歸和分位數(shù)回歸中均有較強顯著性的因素來構(gòu)建價格預(yù)測模型,最終選取的是除is_location_exact、property_type_is_apart、host_identity_verified、instant_bookable和review_days5個之外的18個因素,主要采用XGBoost模型預(yù)測房源價格,并與線性回歸模型的效果作比較,可以突出XGBoost在未調(diào)參與調(diào)參后的預(yù)測精度,最后通過XGBoost算法給出所有特征的重要性排序。
XGBoost算法是對GBDT算法的改進(jìn)。原始的GBDT只利用了一階的導(dǎo)數(shù)信息,而XGBoost則是對損失函數(shù)進(jìn)行二階泰勒展開,并在損失函數(shù)之外加入了正則項,可以針對整體計算最優(yōu)解,用來衡量損失函數(shù)的下降以及模型的復(fù)雜度,避免過擬合,提高了模型的求解效率。XGBoost算法的基本原理如下。
(3)
由于在第t輪迭代時t-1輪的預(yù)測結(jié)果固定,模型目標(biāo)函數(shù)的設(shè)定僅需考慮預(yù)測函數(shù)ft(xi),求解模型參數(shù)時最小化為如下目標(biāo)函數(shù):
S(t)(β)=L(β)+D(ft)+C
(4)
其中,
(5)
(6)
式(4)-(6)中:L(β)是測度模型擬合程度的損失函數(shù),D(ft)是測度模型復(fù)雜程度的正則化項,C是常數(shù)項;l(·)是測度樣本預(yù)測準(zhǔn)確性的損失函數(shù);T是決策樹葉子節(jié)點數(shù),ωj是葉子節(jié)點對應(yīng)的預(yù)測結(jié)果,γ和λ是對應(yīng)的調(diào)整系數(shù)。將損失函數(shù)泰勒展開至二次項,利用貪婪算法或其它算法可以求解模型的參數(shù)[11]。
XGBoost能夠獲得青睞,取決于其優(yōu)越性:1)支持二階泰勒展開式,不僅能夠增加精度,而且方便自定義損失函數(shù);2)損失函數(shù)中添加正則項,能夠控制模型的復(fù)雜度,防止發(fā)生過擬合現(xiàn)象,使訓(xùn)練出來的模型相對簡潔;3)允許列抽樣,既能夠防止過擬合,又能夠簡化計算;4)支持并行計算,靈活性很強。
本文使用Python語言實現(xiàn)XGBoost算法。首先將預(yù)處理后的數(shù)據(jù)集23364個樣本以7∶3的比例隨機劃分為訓(xùn)練集和驗證集,接著構(gòu)建XGBoost模型,然后使用網(wǎng)格搜索法對模型進(jìn)行調(diào)參,最后根據(jù)評價指標(biāo)選擇較優(yōu)的模型。
建模過程中的調(diào)參環(huán)節(jié)本質(zhì)上是一個優(yōu)化過程,可以使用隨機搜索法、網(wǎng)格搜索法、遺傳算法等。本文選擇的網(wǎng)格搜索法需要給定參數(shù)的若干個值,然后將各參數(shù)的可能值進(jìn)行排列組合,并將各組參數(shù)用來訓(xùn)練模型,同時采用交叉驗證的方式評估各種組合的表現(xiàn),選取效果最好的組合作為最優(yōu)參數(shù)。
XGBoost算法建模時共有三類參數(shù):常規(guī)參數(shù)、基礎(chǔ)模型參數(shù)和學(xué)習(xí)任務(wù)參數(shù)[12],本文研究過程中對常規(guī)參數(shù)全部選擇默認(rèn)。由于研究目標(biāo)最終可以歸結(jié)為一個回歸問題,所以學(xué)習(xí)任務(wù)參數(shù)里的objective參數(shù)需要設(shè)置為“reg:linear”,其他選擇默認(rèn)即可,而基礎(chǔ)模型參數(shù)是對模型效果影響較大的部分,也是調(diào)參的重點。本文根據(jù)各參數(shù)在模型中的重要性依次調(diào)節(jié),結(jié)果見表3。
表3 XGBoost建模調(diào)參結(jié)果
模型的好壞需要根據(jù)評價指標(biāo)來評判,對于任何問題而言都沒有最優(yōu)的模型,但是可以在已有的模型中選擇較優(yōu)的那一個。在回歸預(yù)測問題中有一些常用的評價指標(biāo),比如:平均絕對誤差(MAE)、均方誤差(MSE)和擬合優(yōu)度(R2),它們的計算公式分別如下:
(7)
(8)
(9)
本文為了清楚地表現(xiàn)XGBoost模型的預(yù)測精度,與線性回歸模型進(jìn)行了對比,驗證集上各指標(biāo)對比結(jié)果(表4)。
表4 各回歸模型的預(yù)測精度對比
由表4可知,利用線性回歸模型對在線短租房的價格進(jìn)行預(yù)測時精度較低,其R2值僅為0.38,而XGBoost模型在未調(diào)參時R2值可以達(dá)到0.50,通過網(wǎng)格搜索法調(diào)參可以達(dá)到0.60,而且MAE和MSE的值在XGBoost模型中也明顯下降,可見XGBoost模型相較于線性回歸模型來說,擬合效果得到了較大提升。圖1展示了XGBoost模型中各特征的重要性排序。
通過圖1可以看出,在眾多影響因素中,浴室數(shù)和是否在市區(qū)對房源的價格影響最大,是否為整租、可容納人數(shù)和臥室數(shù)對房源的價格影響也比較大,可見房源的基礎(chǔ)設(shè)施和基本屬性對房源價格起著決定性作用。房東的基本情況、在線預(yù)訂規(guī)則和房客的評價信息雖然對房源價格有影響,但不會構(gòu)成主導(dǎo)因素,不過在擁有同等房源的情況下,房主提高這些軟實力必然會取得較好的收益。
圖 1 XGBoost模型中各特征的重要性排名
本文通過OLS回歸和分位數(shù)回歸對短租房價格的影響因素展開研究,借鑒了傳統(tǒng)的分析手段,解釋性比較好,接著使用相比于線性回歸模型精確度更高、更優(yōu)越的XGBoost構(gòu)建價格預(yù)測模型,當(dāng)然還有其他機器學(xué)習(xí)算法值得探索。另外,在模型調(diào)參這個環(huán)節(jié)也有繼續(xù)研究的必要。本文使用的網(wǎng)格搜索法比較費時,得到的是局部最優(yōu)值,可以考慮使用其他優(yōu)化算法進(jìn)行調(diào)參,提高建模效率。