李原吉,李丹,唐淇
(四川大學(xué)錦城學(xué)院,四川成都,611731)
二手車被認(rèn)為是汽車完整產(chǎn)業(yè)鏈上最薄弱也是最后的一片藍(lán)海,伴隨著居民可支配收入的增加與我國(guó)汽車保有量的提升,二手車市場(chǎng)的規(guī)模也隨之變的龐大。在這股發(fā)展的浪潮中,也吸引了許多資本投資入駐二手車行業(yè)。但是與之而來(lái)的問(wèn)題就是中國(guó)的二手車平臺(tái)線上估價(jià)過(guò)程比較主觀,估價(jià)的標(biāo)準(zhǔn)比較模糊,不夠細(xì)致和具體,更多的內(nèi)容缺少一個(gè)可以量化的參考標(biāo)準(zhǔn),不利于消費(fèi)者的選購(gòu)與資本的大范圍采購(gòu),因此,本文從解決實(shí)際問(wèn)題出發(fā),構(gòu)建一個(gè)基于XGBoost算法的價(jià)格預(yù)測(cè)模型,通過(guò)對(duì)不同車輛情況屬性的訓(xùn)練,對(duì)其最終成交價(jià)格進(jìn)行預(yù)估,以用于解決實(shí)際生活中對(duì)二手車成交價(jià)格量化困難,并且并不公開透明等問(wèn)題,具有重要的研究意義和實(shí)用價(jià)值。
依據(jù)現(xiàn)有文獻(xiàn)的指導(dǎo)與查閱相關(guān)資料,本文得知影響二手車成交價(jià)格包括車輛基礎(chǔ)屬性,保值率,與車況條件。在本文的模型特征選取中,選擇了傳統(tǒng)常規(guī)的車況條件等特征,添加的其他特征為過(guò)戶情況,動(dòng)力源與座位數(shù)量作為特征,用以預(yù)測(cè)最后價(jià)格。
本文通過(guò)調(diào)查二手車的交易價(jià)格與網(wǎng)絡(luò)銷售平臺(tái)的二手車價(jià)格評(píng)估,發(fā)現(xiàn)現(xiàn)如今二手車價(jià)格僅有三項(xiàng)屬性作為評(píng)估依據(jù):車型,上牌時(shí)間與行駛里程。因此本文發(fā)現(xiàn),國(guó)內(nèi)二手車交易價(jià)格缺失一個(gè)量化標(biāo)準(zhǔn),不夠公開透明,可能會(huì)對(duì)消費(fèi)者權(quán)益產(chǎn)生一定侵害。若能夠通過(guò)輸入一定參數(shù)來(lái)預(yù)測(cè)車輛價(jià)格,建立相關(guān)的預(yù)測(cè)模型,將有利于二手車的交易與保障消費(fèi)者權(quán)益。總之,該預(yù)測(cè)模型的建立,是為了解決實(shí)際生活中對(duì)二手車成交價(jià)格量化困難,并且并不公開透明等問(wèn)題,提供一個(gè)參考性,有實(shí)際意義的研究思路。
隨著移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,與python爬蟲技術(shù)的日益成熟,越來(lái)越多的具有實(shí)際價(jià)值的數(shù)據(jù)可以通過(guò)日常用戶使用互聯(lián)網(wǎng)時(shí)產(chǎn)生,本文使用的大量數(shù)據(jù),是通過(guò)網(wǎng)絡(luò)爬蟲技術(shù)爬取某知名二手車交易網(wǎng)站獲得的車輛數(shù)據(jù),并以此為基礎(chǔ),將車型作為正則化關(guān)鍵詞,獲取其他知名二手車網(wǎng)站的數(shù)據(jù),最后綜合考量,取平均值得到最終結(jié)果。因此該數(shù)據(jù)具有一定的代表性。例如:現(xiàn)代1.6 CRDI SX小轎車;成交時(shí)期:2015;公里數(shù):41000公里;動(dòng)力類型:汽油;操作類型:手動(dòng)檔;出售次數(shù):一次;里程數(shù):19.67KMP;排量:1582cc;馬力:126.2bgp;座位數(shù)量:5座;成交價(jià)格:12.5W。
2.2.1 特征信息的選擇
特征信息的提取的目的是將原始數(shù)據(jù)中,存在的過(guò)于復(fù)雜的文字信息,或者文字信息與數(shù)字信息同時(shí)出現(xiàn)的復(fù)雜情況下,解決這些特征過(guò)于復(fù)雜而導(dǎo)致的無(wú)法在建模時(shí)有效分類的問(wèn)題。在研究過(guò)程中,本文發(fā)現(xiàn),由于爬蟲程序問(wèn)題或網(wǎng)站數(shù)據(jù)缺失等問(wèn)題與部分?jǐn)?shù)據(jù)對(duì)售價(jià)影響過(guò)小,因此我們選擇的特征有:1.型號(hào);2.動(dòng)力類型;3.操作類型;4.出售次數(shù);5.里程數(shù);6.排量;7.馬力;8.座位數(shù)量;9成交價(jià)格:12.5W。
2.2.2 缺失值處理
在研究過(guò)程中,因?yàn)閿?shù)據(jù)標(biāo)準(zhǔn)化大多需要連續(xù)型數(shù)據(jù),而在我們通過(guò)爬蟲獲得的原始數(shù)據(jù)可能會(huì)因?yàn)槌绦蛉毕莼蛘邤?shù)據(jù)缺失,而導(dǎo)致我們獲得的汽車數(shù)據(jù)有一定的缺失值。進(jìn)行調(diào)研后,對(duì)于這些缺失值,我們?cè)O(shè)定,如果缺失數(shù)據(jù)為型號(hào)與成交價(jià)格,則廢棄該條數(shù)據(jù);如果缺失數(shù)據(jù)為操作類型,出售次數(shù),座位數(shù)量,則使用眾數(shù)對(duì)該數(shù)據(jù)進(jìn)行填充;如果缺失值為馬力,排量,則使用中位數(shù)進(jìn)行填充;剩余缺失部分,統(tǒng)一使用眾數(shù)進(jìn)行填充。經(jīng)過(guò)數(shù)據(jù)的初步處理,我們獲得了7250輛二手汽車補(bǔ)充缺失值后的交易信息,包括成交價(jià)格,車輛屬性等基礎(chǔ)信息的數(shù)據(jù)集。
2.2.3 數(shù)據(jù)標(biāo)準(zhǔn)化
日前,主流的標(biāo)準(zhǔn)化方法有三種,分別為直線型方法,折線性方法,曲線型方法。不同的方法對(duì)最后的預(yù)測(cè)結(jié)果會(huì)產(chǎn)生不同的影響。在本研究中,我們涉及的數(shù)據(jù)特征,大多為連續(xù)型數(shù)據(jù),因此我們對(duì)這幾個(gè)變量使用z-score標(biāo)準(zhǔn)化(zero-meannormalization),,即計(jì)算特征矩陣中列的均值及方差,將所得結(jié)果帶入式(1)
集成學(xué)習(xí)模型通過(guò)將多個(gè)單個(gè)弱分類器集成/組合在一起,使它們共同完成分類任務(wù)。而集成學(xué)習(xí)模型,可以擬合多種弱分類器,通過(guò)比重調(diào)整最終分類結(jié)果,使結(jié)果更精確。
XGBoost是一個(gè)隸屬于集成學(xué)習(xí)模型的Boosting算法,在分類、回歸和排名等監(jiān)督學(xué)習(xí)任務(wù)上擁有最高效的性能,該算法已成為機(jī)器學(xué)習(xí)一個(gè)首選工具,其原因首當(dāng)其沖的就是其出色的預(yù)測(cè)性能,高度優(yōu)化的多核處理和分布式的機(jī)器實(shí)現(xiàn),以及處理稀疏數(shù)據(jù)的能力。它本質(zhì)上是一類提升樹模型,集成許多弱分類器,以迭代的方式形成一個(gè)強(qiáng)分類器。其中XGBoost的決策樹訓(xùn)練過(guò)程如圖1所示。
圖1 XGBoost的決策樹訓(xùn)練過(guò)程
該算法的核心思想是在一棵樹上不斷的添加樹與進(jìn)行特征分裂來(lái)使這棵樹生長(zhǎng)。每個(gè)樹被添加上去,就對(duì)應(yīng)著該模型在學(xué)習(xí)一個(gè)新函數(shù),從而用以擬合上一次預(yù)測(cè)的殘差。當(dāng)我們完成N棵樹的訓(xùn)練后,對(duì)于我們要預(yù)測(cè)的值,其本質(zhì)就是每棵樹對(duì)應(yīng)分?jǐn)?shù)乘以對(duì)應(yīng)對(duì)應(yīng)比重之和,這就是其樣本的預(yù)測(cè)值。對(duì)于目標(biāo)函數(shù),我們應(yīng)當(dāng)使用二階泰勒展開式來(lái)優(yōu)化,目標(biāo)函數(shù)如式(2)所示。
將清理后的數(shù)據(jù)導(dǎo)入我們編輯好的XGBoost模塊,將編譯后的數(shù)據(jù)導(dǎo)入模型進(jìn)行初步分析,然后進(jìn)行建模。但是建模后,精度需要我們進(jìn)行自行的調(diào)整,因?yàn)樗鶡o(wú)法一次得到我們想要的預(yù)測(cè)結(jié)果,因此要對(duì)模型的超參進(jìn)行微調(diào),以求得到較為準(zhǔn)確的結(jié)果。XGBoost模型中的超參數(shù)主要包括學(xué)習(xí)率、最大深度、子模型的數(shù)量、Gamma值等。在網(wǎng)格中搜索,比較各參數(shù)變化后模型的平均方差,選擇最佳參數(shù)。平均方差越小,參數(shù)越佳。在本文模型中,學(xué)習(xí)率learning_rate調(diào)整為0.01,樹的深度 max_depth調(diào)整為5,決策樹剪枝力度調(diào)整為0.5,樣本采樣率調(diào)整為0.9,最小葉子權(quán)重min_child_weight 調(diào)整為 1,其余參數(shù)都設(shè)置為默認(rèn)參數(shù)。
首先,我們將我們提取到的7250個(gè)數(shù)據(jù)作為研究對(duì)象,依據(jù)該數(shù)據(jù)二手車型,車輛屬性與二手車成交價(jià)等基礎(chǔ)信息,利用隨機(jī)函數(shù),將該堆數(shù)據(jù)隨機(jī)按照7:3的比例劃分為訓(xùn)練集與實(shí)驗(yàn)集,用以預(yù)測(cè)最終的二手車交易價(jià)格,通過(guò)計(jì)算模型的預(yù)測(cè)準(zhǔn)確率來(lái)驗(yàn)證模型的精度。GBoost有多個(gè)參數(shù),由于部分模型參數(shù)對(duì)結(jié)果影響較大,在優(yōu)化改進(jìn)模型時(shí)要對(duì)參數(shù)進(jìn)行優(yōu)化,結(jié)合網(wǎng)格搜索法對(duì)模型參數(shù)進(jìn)行尋優(yōu) 。其次使用平均絕對(duì)誤差MAE反應(yīng)出預(yù)測(cè)值的誤差,來(lái)展示模型精度,最后使用其他模型對(duì)其相同數(shù)據(jù)進(jìn)行訓(xùn)練,與XGBoost模型的訓(xùn)練結(jié)果比較,得出結(jié)果。
在預(yù)測(cè)前,將7250項(xiàng)交易進(jìn)行拆分訓(xùn)練與測(cè)試,計(jì)算模型的平均絕對(duì)誤差(MAE)與預(yù)測(cè)準(zhǔn)確率(Accuracy)。為了進(jìn)一步驗(yàn)證模型的性能,將測(cè)試集分組進(jìn)行測(cè)試,不斷調(diào)整模型參數(shù),圖2為平均絕對(duì)誤差的表現(xiàn)。
圖2 平均絕對(duì)誤差
其中,因?yàn)閿?shù)據(jù)量原因,僅僅展示了測(cè)試集233-332行的數(shù)據(jù)平均絕對(duì)誤差的表現(xiàn),因?yàn)镸AE能反映預(yù)測(cè)值誤差,MAE的值越小,則模型預(yù)測(cè)精度越高。其中紅色部分為為進(jìn)行數(shù)據(jù)清洗前的MAE值,藍(lán)色部分為清洗后的MAE值。由圖可得,經(jīng)過(guò)數(shù)據(jù)清洗后的預(yù)測(cè)值與實(shí)際值的擬合程度更高,預(yù)測(cè)準(zhǔn)確率更精確,平均精度提高了20%左右。進(jìn)一步表明數(shù)據(jù)清洗在XGBoost模型中的重要性。
緊接著,我們使用相同的訓(xùn)練集訓(xùn)練不同算法,再使用同一組測(cè)試集測(cè)試,來(lái)表現(xiàn)XGBoost模型的優(yōu)越性。本文的對(duì)比算法使用了ID3與C4.5,三種算法的對(duì)比圖如圖3所示。
圖3 ID3與C4.5與XGBoost算法準(zhǔn)確率比較
其中紅色部分為XGBoost算法預(yù)測(cè)準(zhǔn)確率,綠色部分為C4.5算法,藍(lán)色部分為ID3算法,三種算法均使用測(cè)試集23-522行的數(shù)據(jù),由圖可知,XGBoost模型有良好的預(yù)測(cè)能力,且證明了相較于ID3模型和C4.5模型,XGBoost模型具有更高的精確性和更好的穩(wěn)定性。
本文通過(guò)理論與對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,對(duì)模型進(jìn)行了總結(jié)認(rèn)為其優(yōu)點(diǎn)如下:(1)易與弱分類器級(jí)聯(lián)(2)可以將不同的分類算法當(dāng)做弱分類器(3)精度較高,實(shí)用性強(qiáng)。缺點(diǎn)是(1)弱分類器的權(quán)重與數(shù)目不易設(shè)定(2)數(shù)據(jù)不平衡會(huì)導(dǎo)致分類準(zhǔn)確率下降(3)訓(xùn)練非常耗時(shí)。本文認(rèn)為,在集成學(xué)習(xí)算法使用多數(shù)投票法時(shí),對(duì)多個(gè)弱學(xué)習(xí)器為樣本的實(shí)驗(yàn)時(shí),一般將數(shù)量最多的作為最終分類。但是如果多個(gè)類別獲得高票,則分類器會(huì)隨機(jī)選擇一個(gè)最高票作為最終分類,而這樣可能會(huì)引起學(xué)習(xí)誤差變大,使模型預(yù)測(cè)失真,因此本文認(rèn)為可以優(yōu)化弱學(xué)習(xí)器的連接方式,首先使用弱學(xué)習(xí)器預(yù)測(cè)一次數(shù)據(jù),得到我們XGBoost模型的強(qiáng)學(xué)習(xí)器的輸入數(shù)據(jù),最后得到最終結(jié)果,可以有效提高模型精度與準(zhǔn)確率。
為了解決實(shí)際生活中對(duì)二手車成交價(jià)格量化困難,并且并不公開透明等問(wèn)題。本文借助XGBoost算法,建議了一個(gè)二手車成交價(jià)格預(yù)測(cè)模型,通過(guò)輸入各項(xiàng)汽車相關(guān)參數(shù)來(lái)預(yù)測(cè)最終的成交價(jià)格,再與常見(jiàn)算法比較,得出該模型準(zhǔn)確率與精度尚優(yōu),并提出改進(jìn)方案,可為消費(fèi)者與企業(yè)購(gòu)買二手車時(shí)提供一定的數(shù)據(jù)與理論支持具有重要的研究意義和實(shí)用價(jià)值。