代金輝,仲璇,王夢恩
(山東工商學(xué)院 統(tǒng)計學(xué)院,山東 煙臺 264005)
據(jù)二手車業(yè)內(nèi)人士分析,二手車的大眾接受度之所以逐漸得到提升,主要是因為受到芯片短缺、二手車增稅減少等利好政策和經(jīng)濟下行的影響,二手車低成本、高性價比的優(yōu)勢越來越得以凸顯.數(shù)據(jù)顯示,近年來,我國的二手車交易量持續(xù)增長,從2000 年的25.17 萬輛增長到2019 年的1 492.3 萬輛.在新冠疫情爆發(fā)后,雖然二手車的銷售量受到疫情的沖擊,但2021 年二手車銷量增幅仍創(chuàng)新高,相較于2020 年,二手車交易量增幅高達22.62%.二手車市場之所以呈現(xiàn)出如此迅猛發(fā)展的態(tài)勢,究其原因,一方面,人們受新冠肺炎疫情的影響,對私家車的需求有所增加;另一方面,由于疫情對經(jīng)濟發(fā)展產(chǎn)生了一定的影響,這使得人們降低消費預(yù)期轉(zhuǎn)而著眼于擁有更高性價比的二手車.
雖然二手車市場在疫情的沖擊中展現(xiàn)了其強大的韌性,并且在現(xiàn)在乃至將來存在著巨大的發(fā)展?jié)摿?,然而,二手車市場的問題也隨著其繁榮發(fā)展逐漸顯露.二手車“一車一況”的特性決定了其交易的復(fù)雜性,二手車品牌眾多,不同品牌車系復(fù)雜,損壞程度也不同,其價格受多方面因素的影響,價值難以準(zhǔn)確估計和設(shè)定.同時,在二手車交易市場中,買賣雙方的信息不對稱無疑增加了二手車價格評定的難度.再加上國家尚未出臺二手車評估的統(tǒng)一標(biāo)準(zhǔn),因此,亟需建立一套合理的估價體系,采用更科學(xué)準(zhǔn)確的估價模型來幫助規(guī)范二手車市場的定價業(yè)務(wù),完善二手車市場的信用體系,以保證二手車實現(xiàn)順利交易.
數(shù)據(jù)來源于2021 年MathorCup 高校數(shù)學(xué)建模挑戰(zhàn)賽大數(shù)據(jù)競賽賽道A[1],包含4 個附件:(1)附件1為估價訓(xùn)練數(shù)據(jù),給出了30 000 條數(shù)據(jù),主要數(shù)據(jù)有車輛id、展銷時間、品牌、車系id、車型id、里程、顏色、車輛所在城市id、國標(biāo)碼、過戶次數(shù)、載客人數(shù)、注冊日期、上牌日期、國別、廠商類型、年款、排量、變速箱、燃油類型、新車價、匿名特征1~15、二手車交易價格等,共計36 列;(2)附件2 為估價驗證數(shù)據(jù),給出了5 000 條數(shù)據(jù),與附件1 數(shù)據(jù)相同,但缺少二手車交易價格數(shù)據(jù);(3)附件3 存放估價模型結(jié)果;(4)附件4 為門店交易訓(xùn)練數(shù)據(jù),給出了10 000 條數(shù)據(jù),包括6 個字段,分別為車輛id、上架時間、上架價格、價格調(diào)整時間及調(diào)整后價格、下架時間、成交時間.
1.2.1 LightGBM算法 GBDT(Gradient Boosting Decision Tree)是一種基于決策樹的集成算法,其主要思想是利用弱分類器(決策樹)迭代訓(xùn)練以得到最優(yōu)模型.LightGBM(Light Gradient Boosting Machine)是實現(xiàn)GBDT算法的框架,該算法有高效的訓(xùn)練效果,并具有更快的訓(xùn)練速度、更高的精確度、更好的準(zhǔn)確率,具有高效處理海量數(shù)據(jù)等優(yōu)點.相對于XGBoost算法,LightGBM主要對特征數(shù)量、分裂點的數(shù)量和樣本的數(shù)量3個因素分別優(yōu)化[2].
1.2.2 隨機森林算法 隨機森林是以決策樹為基學(xué)習(xí)器的集成學(xué)習(xí)算法,可以處理多類型的變量[3],在對特征重要性評估上有較好的表現(xiàn).隨機森林算法是由多個決策樹加權(quán)集合構(gòu)成的,采用多個決策樹的投票機制來改善決策樹容易過擬合的特點.隨機森林對特征重要性評估的思想就是看每個特征在隨機森林中做了多大的貢獻,特征選擇的準(zhǔn)則主要有信息增益、信息增益率和基尼指數(shù)[4].
為簡便起見,假設(shè):(1)樣本缺失值較多的數(shù)據(jù)能為有效預(yù)測提供的必要信息較少;(2)二手車未來年限內(nèi)能夠正常使用;(3)二手車交易市場車源充足,信息公開;(4)影響二手車價格變動的宏觀因素相同.文中相關(guān)符號及含義見表1.
表1 符號說明
在軟件處理中,由于相關(guān)軟件只識別英文字母,故采用英文字母進行相關(guān)數(shù)據(jù)分析,即carid(車輛id)、tradeTime(展銷時間)、brand(品牌)、serial(車系id)、model(車型id)、mileage(里程)、color(顏色)、cityId(車輛所在城市id)、carCode(國標(biāo)碼)、transferCount(過戶次數(shù))、seatings(載客人數(shù))、registerDate(注冊日期)、licenseDate(上牌日期)、country(國別)、maketype(廠商類型)、modelyear(年款)、displacement(排量)、gearbox(變速箱)、oiltype(燃油類型)、newprice(新車價)、anonymousFeature1~15(匿名特征1~15)、price(二手車交易價格).
由于二手車交易樣本數(shù)量過多、變量過多等因素,導(dǎo)致估價訓(xùn)練數(shù)據(jù)和估價驗證數(shù)據(jù)存在缺失值或重復(fù)值,無法直接對數(shù)據(jù)進行分析.為了改善上述情況,提高后續(xù)模型預(yù)測結(jié)果的精確度和可靠性,因而對二手車數(shù)據(jù)集進行預(yù)處理.數(shù)據(jù)預(yù)處理的步驟分為數(shù)據(jù)清洗(包括去除重復(fù)值、填補缺失值)、數(shù)據(jù)轉(zhuǎn)換和特征處理3部分.
3.1.1 數(shù)據(jù)清洗 數(shù)據(jù)清洗的基本步驟為:
Step1查看和填補缺失值.運用Python 中pandas庫對附件1和附件2 中的數(shù)據(jù)進行讀取,判斷數(shù)據(jù)缺失和異常.通過可視化查詢?nèi)笔е担Y(jié)果見圖1.
圖1 訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)缺失值分布
由圖1可以看出,數(shù)據(jù)集包含連續(xù)數(shù)據(jù)集和非連續(xù)數(shù)據(jù)集,若將含有缺失值的非連續(xù)數(shù)據(jù)集全部去除,則會造成數(shù)據(jù)的浪費,為了有效地利用數(shù)據(jù)集進行研究分析,需要采取缺失值填補的方法,使用fillna()函數(shù)將含有較少缺失值的數(shù)據(jù)采用眾數(shù)填補,從而為下一步研究提供足夠大的數(shù)據(jù)量,以增強后續(xù)算法模型的準(zhǔn)確率和泛化性能.其中carCode(國標(biāo)碼)、modelyear(年款)、country(國別)、maketype(廠商類型)、anonymousFeature1,11(匿名特征1,11)缺失值較少,采用眾數(shù)填充;anonymousFeature4,7,8,9,10,13,15(匿名特征4,7,8,9,10,13,15)缺失值較多,選擇刪除該字段所在列,最終訓(xùn)練數(shù)據(jù)中保留29列變量信息,測試數(shù)據(jù)中保留28列變量信息.
Step2去除重復(fù)值.運用Python 中duplicated()函數(shù)判斷數(shù)據(jù)是否存在重復(fù),drop_duplicates()將重復(fù)的數(shù)據(jù)行進行刪除.去除重復(fù)值是為了防止在數(shù)據(jù)集中出現(xiàn)相同的數(shù)據(jù),導(dǎo)致異常結(jié)果以至于影響最后的算法精確度.
3.1.2 數(shù)據(jù)轉(zhuǎn)換 附件1數(shù)據(jù)集中給出的日期格式是xxxx-xx-xx,不利于進行數(shù)據(jù)處理,對tradeTime(展銷時間),registerDate(注冊日期)和licenseDate(上牌日期),提取時間信息并轉(zhuǎn)換為xxxx 年xx 月xx 日形式,同時刪除原數(shù)據(jù),便于后續(xù)算法識別.對附件4 中的updatePriceTimeJson進行處理,以“,”作為分隔符將其分為12 個數(shù)據(jù),統(tǒng)計每一列調(diào)價記錄次數(shù)、調(diào)價幅度以及與新車的價差比.
3.1.3 特征處理 為了讓數(shù)據(jù)更具有可讀性和方便算法識別,避免數(shù)據(jù)影響算法,對數(shù)據(jù)進行特征處理.采用字典對附件1中匿名特征11進行處理,將對應(yīng)的值變?yōu)樘囟〝?shù)值,以方便算法處理;對匿名特征12 的處理,采用將三維特征值轉(zhuǎn)變?yōu)?個一維特征值的方法,同時去掉原有的三維特征值;對附件4 中的成交時間與上架時間做函數(shù)運算,得到交易時間,進而可算得交易周期.
3.2.1 異常值查看 為了確保后續(xù)預(yù)測結(jié)果的準(zhǔn)確性,必須對訓(xùn)練數(shù)據(jù)集進行異常值查看,如出現(xiàn)較為明顯的數(shù)據(jù)異常情況,需要對異常值進行適當(dāng)?shù)恼{(diào)整.在處理訓(xùn)練數(shù)據(jù)缺失值后剩余的29個變量基礎(chǔ)上進行異常值的查看,其中,日期類型數(shù)據(jù)如展銷日期、注冊日期和上牌日期以及車輛id、經(jīng)過特征處理的匿名特征11和匿名特征12 均不需要進行異常值查看,故此處僅查看23個變量的異常值情況,數(shù)據(jù)分析結(jié)果見圖2(限于篇幅,僅展示8個特征的異常數(shù)據(jù)分布情況,分別為品牌、車系id、車型id、里程、顏色、車輛所在城市id、國標(biāo)碼、過戶次數(shù)).圖2中8個特征均不存在異常值,經(jīng)檢驗,載客人數(shù)、國別、廠商類型、年款、排量、變速箱、燃油類型、新車價、匿名特征1、匿名特征2、匿名特征3、匿名特征5、匿名特征6、匿名特征14、二手車交易價格數(shù)據(jù)同樣沒有異常值.綜上,23個變量數(shù)據(jù)均在正常范圍內(nèi).
圖2 異常數(shù)據(jù)分布
3.2.2 數(shù)據(jù)分布 由于所有字段的數(shù)據(jù)分布影響到最后的分析結(jié)果,因此需要查看附件1和附件2的具體數(shù)據(jù)分布情況,通過了解數(shù)據(jù)的分布情況,以便后面進行特征相關(guān)性分析.訓(xùn)練數(shù)據(jù)中包含36列變量,測試數(shù)據(jù)中包含35列變量,缺少“二手車交易價格”這一列.由于二手車交易價格數(shù)據(jù)僅在訓(xùn)練數(shù)據(jù)中,故在此不進行展示.于是在查看異常值的23個變量基礎(chǔ)上去掉二手車交易價格這一變量查看數(shù)據(jù)分布,得到22個特征字段的數(shù)據(jù)分布見圖3(其中:紅色區(qū)域為訓(xùn)練集的數(shù)據(jù)分布,藍色區(qū)域為測試集的數(shù)據(jù)分布).
圖3 特征字段數(shù)據(jù)分布
由圖3可以看出,紅色區(qū)域和藍色區(qū)域大體重合,這說明訓(xùn)練集和測試集的數(shù)據(jù)分布情況幾乎相同.
3.2.3 相關(guān)性查看 二手車交易價格的影響因素包括但不限于車況條件、里程、品牌、過戶次數(shù)、使用時間等.由于影響因素過多,需要對其進行相關(guān)性查看和數(shù)據(jù)處理,以便對后續(xù)定價與調(diào)價有更理想的作用,更快地促成成交.
計算特征變量的相關(guān)矩陣(見圖4,其中第1~23 行分別為二手車交易價格、新車價、排量、匿名特征2、年款、廠商類型、變速箱、匿名特征5、車型id、載客人數(shù)、車系id、過戶次數(shù)、品牌、匿名特征6、燃油類型、匿名特征1、匿名特征3、國別、匿名特征14、國標(biāo)碼、顏色、車輛所在城市id、里程,對應(yīng)的列相同).此處仍然是在處理訓(xùn)練數(shù)據(jù)缺失值后剩余的29 個變量基礎(chǔ)上進行相關(guān)性的查看,由于車輛id、展銷日期、注冊日期、上牌日期、匿名特征11、匿名特征12 與二手車交易價格的相關(guān)系數(shù)均小于0.001,可忽略不計,故在相關(guān)矩陣圖中予以剔除.
圖4 特征變量相關(guān)矩陣
由圖4可以看出,匿名特征5和排量相關(guān)系數(shù)高達0.76,存在顯著性正相關(guān);排量與新車價相關(guān)系數(shù)為0.75,說明它們之間存在較強的相關(guān)性.此外,新車價、排量、匿名特征2、年款、廠商類型均與二手車交易價格存在不同程度的正相關(guān)性,且相關(guān)性呈現(xiàn)遞減的趨勢;國別、國標(biāo)碼、顏色、車輛所在城市id以及里程均與二手車交易價格存在負相關(guān)性,且相關(guān)性遞減.
對預(yù)處理后的數(shù)據(jù)進行描述統(tǒng)計,部分數(shù)據(jù)見表2.
表2 樣本數(shù)據(jù)描述統(tǒng)計
使用Python中的log1p對數(shù)的右偏變換函數(shù),將數(shù)據(jù)分布轉(zhuǎn)變?yōu)榻普龖B(tài)分布.而后篩選數(shù)據(jù)并歸一化,對大于75的異常值予以舍棄.模型評測標(biāo)準(zhǔn)為 0.2(1-Mape)+0.8Accuracy5,式中:Mape為平均相對誤差,計算公式為,m為需要預(yù)測交易價格的二手車數(shù)量,即測試數(shù)據(jù)總條數(shù),取值為5 000,Apei為第i輛二手車交易價格預(yù)測值的相對誤差,計算公式為為第i輛二手車交易價格的預(yù)測值,yi為第i輛二手車交易價格的實際值;Accuracy5為5%誤差準(zhǔn)確率,計算公式為Accuracy5=為相對誤差A(yù)pei在5%以內(nèi)的樣本數(shù)量,count(total)為樣本總數(shù)量.
考慮到模型評測標(biāo)準(zhǔn),使用LightGBM 算法,采用6 折劃分訓(xùn)練[5-7],訓(xùn)練次數(shù)從10 000 次到500 000 次,其中訓(xùn)練10 000 次可以達到模型評估結(jié)果84.8%的效果;訓(xùn)練500 000 次,可以達到模型評估結(jié)果86.7%的效果.部分預(yù)測結(jié)果見表3.
表3 估價模型結(jié)果 萬元
影響二手車成交周期的因素多種多樣.基于附件1 中剔除車輛id 和缺失值較多變量后剩余的28 個變量以及附件4 中剔除車輛id 后經(jīng)過分解得到的6 個變量的數(shù)據(jù),加之包含調(diào)價次數(shù)、最后售賣價格、價差比以及成交周期在內(nèi)的4 個自定義變量,最終確定選擇包括品牌、里程、車型等在內(nèi)的38 個特征變量,使用隨機森林算法選擇影響二手車成交周期的關(guān)鍵特征[8-9].
本文選擇基尼指數(shù)來評估特征變量的重要性.基尼指數(shù)反映樣本集合中一個隨機選中的樣本被分錯的概率.基尼指數(shù)越小,表示集合中被選中的樣本被分錯的概率越小,集合的純度越高;反之,集合越不純.
使用隨機森林算法對二手車成交周期特征的重要性進行計算,篩選出重要性大于0.2 的特征并進行排序(見圖5).
圖5 二手車成交周期特征重要性排序
由圖5 可以看出,二手車的里程是影響成交周期最重要的因素,根據(jù)里程數(shù)可以判斷車輛的使用頻率、使用強度,從側(cè)面反映了具體車況,是購車者考慮的重要指標(biāo).影響在庫車輛銷售速度的關(guān)鍵因素還有二手車最終的出售價與新車價格差的比值、二手車的車型、上架時間以及上架價格,反映了購買者主要從車況和價格2個方面考慮是否購買二手車.
根據(jù)已有的數(shù)據(jù)分析,已成交二手車大部分集中在車輛上架的0~14 d 之內(nèi)賣出(見圖6).本文結(jié)合成交周期對二手車的部分特征進行更深入的分析,已成交二手車的里程以及價差與新車價格的比值(價差比)分別見圖7~8.
圖6 已成交二手車的成交周期
圖7 已成交二手車的里程與成交周期
由圖7 可以看出,里程在6~8 萬km 的二手車更容易賣出,里程在4~6 萬km 的二手車賣出的速度相較于6~8 萬km 的車售出的速度較慢.銷量小且成交速度更慢的二手車?yán)锍谭植疾▌哟?一般來說,二手車跑的里程數(shù)越少,其損害程度越小,成交周期應(yīng)相對較短.但是從分析的結(jié)果可知,里程在6~8 萬km范圍內(nèi)更受客戶的青睞,說明客戶購車意愿受價格、車型等其他因素的影響,也從側(cè)面反映了大部分客戶對于二手車?yán)锍虜?shù)的需求低于8 萬km.
由圖8 可以看出,成交周期在0~20 d 的二手車,其價差比主要在0.4~0.6 之間,成交周期長的二手車其價差比隨著成交周期的延長波動幅度增大.這說明價差比在0.4~0.6 之間的二手車更受客戶青睞,極少數(shù)客戶會選擇購買價差比低于0.4 或高于0.8 的二手車.這一指標(biāo)也反映了二手車的保值率,說明了雖然保值率高的二手車其質(zhì)量會相對好一些,但是它的價格也相對較高,違背了人們追求用盡可能低的成本去享受更好品質(zhì)的心理.一些保值率相對較低的二手車,反而性價比相對較高.
圖8 已成交二手車的價差比與成交周期
本文在數(shù)據(jù)處理的基礎(chǔ)上,通過查看異常值、數(shù)據(jù)分布情況以及各特征變量之間的相關(guān)性,對數(shù)據(jù)進行分析,并對部分數(shù)據(jù)進行描述統(tǒng)計.而后通過構(gòu)建基于LightGBM 算法的二手車估價模型,對二手車價格進行預(yù)測,最后使用隨機森林算法對影響成交周期的各因素的重要程度進行探究.得到如下結(jié)論:
(1)采用6 折劃分訓(xùn)練進行預(yù)測,通過不斷增加訓(xùn)練次數(shù),使得預(yù)測準(zhǔn)確率不斷提高,當(dāng)訓(xùn)練次數(shù)達到500 000 次時,算法預(yù)測準(zhǔn)確率達到最高,為86.7%,預(yù)測效果較為理想.
(2)在影響二手車成交周期的諸多因素中,里程、價差比為關(guān)鍵影響因素.其中,里程在6~8 萬km的二手車更容易暢銷,這從一定程度上反映了大部分客戶對于二手車?yán)锍虜?shù)的需求小于8 萬km.價差比在0.4~0.6 范圍內(nèi)的二手車成交周期較短,更受客戶青睞,同時還說明保值率相對較低的二手車其性價比反而相對較高.
截至目前,精準(zhǔn)評估二手車的價格仍是一項十分困難的工作,但是基于機器學(xué)習(xí)建立模型實現(xiàn)預(yù)測具有極為廣闊的應(yīng)用空間.本文在一定程度上可以為二手車市場提供一個簡單的定價思路,同時為縮短交易周期提供一系列建議.
基于對部分特征的分析,結(jié)合實際的銷售場景,為加快門店在庫車輛的銷售速度提出建議:
5.2.1 建立品質(zhì)評價體系 在分析車況時,要關(guān)注二手車的里程等影響因素,以此來判斷車輛的等級.購買者只有了解了二手車的具體車況并結(jié)合價格來判斷二手車的性價比,才能最終決定是否購買二手車.針對這一情況,二手車市場可以建立二手車品質(zhì)鑒定體系[10-14],對二手車進行質(zhì)量檢測,根據(jù)車輛識別代碼的唯一性為每輛二手車建立檔案,編寫品質(zhì)情況與使用情況報告,方便銷售人員以及購買者對二手車的真實狀況做出合理的判斷.
5.2.2 建立二手車價格以及降價體系 應(yīng)當(dāng)密切關(guān)注新車的價格、二手車上架的時間以及每次調(diào)價引起的銷售速度的變化.新車型上市時,對應(yīng)的二手車應(yīng)進行相應(yīng)的降價.二手車市場有淡旺季之分,據(jù)分析,二手車的成交大多集中在3~7 月份,8 月份之后較前幾個月有所減少,但較為平穩(wěn).針對這種情況,在銷售淡季時,應(yīng)加大二手車的優(yōu)惠力度,銷售旺季時可以減小降價的幅度.此外,銷售人員應(yīng)重視二手車調(diào)價前后銷售數(shù)量、銷售額以及銷售利潤等的變化.根據(jù)調(diào)價之后的銷售狀況對價格進行調(diào)整或為下一次調(diào)價提供參考,以確定下一次的調(diào)價幅度.
在門店的實際銷售場景中,要在不同的時間段及時了解客戶的需求,并結(jié)合當(dāng)前的銷售市場,不斷調(diào)整銷售策略.門店根據(jù)所做的綜合分析,可利用隨機森林回歸算法和BP 神經(jīng)網(wǎng)絡(luò)對二手車的售出價格、降價幅度進行及時的調(diào)整.最終門店不僅能提高自己的銷售速率、節(jié)省資源,還能促使整個二手車行業(yè)保持穩(wěn)定發(fā)展.