亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于隨機森林和XGBoost算法的二手車價格預(yù)測*

        2021-07-28 01:05:54鄭婕
        關(guān)鍵詞:二手車決策樹網(wǎng)格

        鄭婕

        (北方工業(yè)大學(xué),北京 100144)

        0 引言

        隨著機器學(xué)習(xí)的廣泛發(fā)展與應(yīng)用,簡單的學(xué)習(xí)器或模型已經(jīng)滿足不了需求,集成算法應(yīng)用而生。所謂集成算法,需要構(gòu)建多個學(xué)習(xí)器,然后用一些方法巧妙的將它們結(jié)合在一起,再來完成學(xué)習(xí)任務(wù)的,這樣可以獲得比單一學(xué)習(xí)效果更好的學(xué)習(xí)器。周志華[1]指出個體學(xué)習(xí)器的“準確性”和“多樣性”本身就存在沖突,一般準確性很高之后,要增加多樣性就需犧牲準確性。產(chǎn)生并結(jié)合‘好而不同’的個體學(xué)習(xí)器,正是集成學(xué)習(xí)研究的核心。按照個體學(xué)習(xí)器之間的關(guān)系,分為Bagging、Boosting、Stacking三大類。

        Bagging的原理首先是基于自助采樣法(bootstrap sampling)一些樣本被隨機的得到來訓(xùn)練出不同的基學(xué)習(xí)器,然后對這些不同的基學(xué)習(xí)器進行投票,得出分類結(jié)果,隨機森林就是這個算法的典型代表[2]。隨機森林具有廣泛的應(yīng)用,宋欠欠[3]在運用隨機森林對高維數(shù)據(jù)變量篩選的研究中指出利用隨機森林算法進行變量篩選結(jié)果穩(wěn)定,并能夠保證良好的預(yù)測效果。

        Boosting,提升算法,它通過反復(fù)學(xué)習(xí)得到一系列弱分類器,一個強分類器由這些弱分類器組合得到,此時,弱學(xué)習(xí)器是強學(xué)習(xí)器提升的過程[1]??傮w而言,Boosting的效果要比Bagging好,但是這個算法中新模型是在舊模型的基礎(chǔ)上生成的,就不能用并行的方法去訓(xùn)練,并且由于對錯誤樣本的關(guān)注,也可能造成過擬合。Boosting的算法族中有很多有名的算法,比如Adaboost、GBM、XGBoost[4]。陳天奇[5]在對XGBoost的算法研究中指出稀疏數(shù)據(jù)和加權(quán)分位數(shù)草圖提供了一種新的稀疏感知算法,用于近似數(shù)學(xué)習(xí)算法上的優(yōu)化使得在利用其進行預(yù)測計算時可以得到更加準確的結(jié)果。最后一類Stacking訓(xùn)練一個模型用于組合其他各個基模型。具體方法是把數(shù)據(jù)分成兩部分,用其中一部分訓(xùn)練幾個基模型A1,A2,A3,用另一部分數(shù)據(jù)測試這幾個基模型,把A1,A2,A3的輸出作為輸入,訓(xùn)練組合模型B,Stacking可以組織任何模型,實際中常使用單層logistic回歸作為模型[6]。

        在用算法進行預(yù)測時,常用到的算法有X GBoost、GBDT、LightGBM、神經(jīng)網(wǎng)絡(luò)算法等,魏長亮在對巖柱穩(wěn)定性的預(yù)測研究中使用了這三種算法進行對比,并使用五重交叉驗證尋求每個模型的最優(yōu)參數(shù)配置再進行預(yù)測[7]。謝勇對每月住房租金進行預(yù)測時使用了XGBoost和LightGBM兩種算法進行預(yù)測對比,發(fā)現(xiàn) XGBoost的表現(xiàn)更好[8]。所以通過文獻綜合本文在進行二手車價格預(yù)測上選擇了比較經(jīng)典的XGBoost算法,同時將它和GBDT、LightGBM兩個算法進行對比,得出XGBoost預(yù)測誤差最小,性能最好。

        我國有一個龐大的二手車需求市場,二手車的銷售對市場經(jīng)濟有很大的作用,市場潛力很大,但是目前它的潛力還沒有完全發(fā)揮出來。二手車的交易價格受許多因素的影響,車的型號,行駛里程,車的配置,實用年限,包括車的車系、顏色、品牌溢價這些因素都會影響二手車的交易價格。當然,對于不同的二手車交易市場,所處的地理位置的消費水平,人均可支配收入等,也影響著二手車的交易價格[9]。

        1 數(shù)據(jù)預(yù)處理

        二手車的數(shù)據(jù)來自于阿里云天池大賽,共有3個數(shù)據(jù)集,這里用到的是Car train數(shù)據(jù)集,由于原始數(shù)據(jù)集并非結(jié)構(gòu)化數(shù)據(jù),因此數(shù)據(jù)預(yù)處理首先對數(shù)據(jù)集進行結(jié)構(gòu)化處理。用眾數(shù)填充缺失值較多的樣本。原始數(shù)據(jù)包含31列變量信息,其中15列為匿名變量,共150000個樣本。本文運用scikit-learn中的train_test_split函數(shù)對數(shù)據(jù)集進行拆分,測試集的比例設(shè)為20%,最終訓(xùn)練集和測試集的劃分如表1。

        表1 數(shù)據(jù)集表Tab.1 Data set table

        在對特征變量進行觀測時發(fā)現(xiàn)變量“seller”和“offer Type”存在嚴重的偏態(tài)分布,特征傾斜嚴重的變量直接刪除。同時對預(yù)測變量的分布觀測發(fā)現(xiàn)不符合正態(tài)分布如圖1。

        圖1 Price分布圖Fig.1 Price distribution

        所以對預(yù)測變量price采取對數(shù)變換得到如圖2。

        圖2 對數(shù)變換后Price分布圖Fig.2 Price distribution graph after logarithmic transformation

        數(shù)據(jù)預(yù)處理這個過程運用了python中的numpy、pandas等模塊,結(jié)合excel等辦公軟件,大大提高了數(shù)據(jù)預(yù)處理的工作效率。

        2 變量選擇

        經(jīng)過數(shù)據(jù)預(yù)處理后對數(shù)據(jù)變量進行特征工程,對原有的變量進行特征構(gòu)建得到新變量,例如汽車使用時間為creatDate- regDate,城市信息從regionCode也就是郵編中提取,通過brand和price計算品牌的銷售額,構(gòu)造新的變量進行預(yù)測。

        二手車的數(shù)據(jù)集中有150000個樣本,每個樣本都有31個變量,1個觀測變量,30個特征變量,為找到可操作變量中的主要因素,更好地預(yù)測二手車的價格,找到影響二手車價格的最高因素,本文選擇使用隨機森林算法進行變量選擇。

        隨機森林是從數(shù)據(jù)表中隨機選擇K個特征建立決策樹,重復(fù)n次。這K個特征經(jīng)過不同隨機組合建立起n棵決策樹,對每個決策樹都傳遞隨機變量來預(yù)測結(jié)果,從n棵決策樹中得到n種結(jié)果。決策樹會預(yù)測輸出值,通過隨機森林中所有決策樹預(yù)測值的平均值計算得出最終預(yù)測值,最終得到篩選出的K個變量的重要度。在隨機森林中某個特征X的重要性的計算方法如下:

        (1)在隨機森林中的每一棵決策樹,都用它對應(yīng)的袋外數(shù)據(jù)即OOB,去計算它的袋外數(shù)據(jù)誤差即errOOB1。

        (2)在袋外數(shù)據(jù)OOB的每一個樣本的特征X加入噪聲干擾這樣可以隨機改變樣本在特征X處的值,然后再計算袋外數(shù)據(jù)誤差,記為errOOB2。

        (3)當我們假設(shè)隨機森林有N棵樹時,用∑(errOOB2-errOOB1)/N來表示X的重要性,特征被隨機加入噪聲后,如果袋外準確率下降很多,就表明此特征對樣本分類結(jié)果影響很大,這表明它的重要程度高[10]。

        通過隨機森林對變量重要度進行排序,變量包括汽車交易ID、汽車交易名稱、汽車注冊日期、車型編碼、汽車品牌、車身類型、燃油類型、變速箱、發(fā)動機功率、汽車已行駛公里、汽車有尚未修復(fù)的損壞、地區(qū)編碼、汽車上線時間、匿名特征,以及包含v0-14在內(nèi)15個匿名特征。本文選擇分數(shù)不為零的變量作為預(yù)測價格的特征變量,共9個變量,如表2所示。

        表2 變量名稱表Tab.2 Variable name table

        3 建立模型

        運用隨機森林篩選出9個變量后,用XGBoost進行回歸任務(wù),建立XGBoost模型對二手車的價格進行預(yù)測,使用訓(xùn)練集進行參數(shù)訓(xùn)練,測試集進行預(yù)測[11]。

        3.1 XGBoost原理

        其中K為分類器的總個數(shù),f(x)表示第k分類器,表示集成K個分類器后對樣本xi的預(yù)測結(jié)果,損失函數(shù)表示為:

        顯然無法直接通過計算得出f*(x)的解,所以我們要考慮優(yōu)化的方法,f(x)為決策樹模型,給出權(quán)重w和樹結(jié)構(gòu)q即可確定一棵決策樹,而樹結(jié)構(gòu)q實質(zhì)上就是劃分分裂節(jié)點的問題,所以f*(x)可以轉(zhuǎn)化為找最優(yōu)權(quán)重w和劃分分裂節(jié)點的問題[6]。

        此時利用泰勒展開式近似目標函數(shù):

        通過安全管理制度的應(yīng)用,可以有效的約束建筑施工過程中存在的不安全行為,減少安全事故的發(fā)生,保障建筑工程的順利開展。但是很多建筑工程的安全管理體制都存在不完善的情況,要么是從其他建筑項目“生搬硬套”而來,不符合企業(yè)本身特點,導(dǎo)致在應(yīng)用過程中很難有效執(zhí)行落地;要么安全管理制度形同虛設(shè),缺少執(zhí)行力,導(dǎo)致建筑施工項目的安全事故仍時有發(fā)生。

        此時令Gi=∑gi;Hj=∑hi,代入上式wj求偏導(dǎo),使其導(dǎo)函數(shù)等于0得到:

        3.2 網(wǎng)格搜索

        網(wǎng)格搜索法是一種尋找最優(yōu)參數(shù)的方法,它是將估計函數(shù)的參數(shù)用交叉驗證的方法得到的一種算法,將每個參數(shù)的可能取值進行排列組合,把所有可能的形式用“網(wǎng)格”的形式表示出來,再對它進行評估,在計算機上對每種可能的參數(shù)形式進行計算訓(xùn)練狗,得到一個最優(yōu)的參數(shù)組合。網(wǎng)格搜索雖然比較耗時,但是它有很廣泛的搜索范圍,有很大可能找到最優(yōu)參數(shù)組合[12]。使用GBDT、LightGBM和XGBoost模型建模分析時,參數(shù)的選擇對模型的預(yù)測結(jié)果有著較大的影響,故需要對若干參數(shù)進行調(diào)優(yōu)使用網(wǎng)格搜索對上述模型參數(shù)進行自動尋優(yōu), 首先確定學(xué)習(xí)率,把learning_rate設(shè)置成0.1,其他參數(shù)使用默認參數(shù),使用GridSearchCV函數(shù)進行網(wǎng)格搜索確定合適的迭代次數(shù),找到合適的迭代次數(shù)后使用GridSearchCV函數(shù)對模型的其他兩個主要參數(shù)進行網(wǎng)格搜索自動尋優(yōu),減小(增大)學(xué)習(xí)率,同時增大(減小)迭代次數(shù),找到合適的學(xué)習(xí)率是使得在誤差最小時迭代次數(shù)最少,找到最優(yōu)參數(shù)[13]。

        3.3 實證分析

        網(wǎng)格搜索的結(jié)果分別如表3所示。

        表3 XGBoost網(wǎng)格搜索結(jié)果Tab.3 XGBoost grid search results

        由網(wǎng)格搜索結(jié)果可以得出,max_depth=9,它表示樹的最大深度為9,main_child_weight=7,決定最小葉子節(jié)點樣本權(quán)重和,它是為了防止過擬合。n_estimators=300,是弱學(xué)習(xí)器的最大迭代次數(shù),或者說最大的弱學(xué)習(xí)器的個數(shù)。一般來說n_e s t i m a t o r s太小,容易欠擬合,n_estimators太大,計算量會太大,并且n_estimators到一定的數(shù)量后,再增大n_estimators獲得的模型提升會很小,該模型中選擇的值是300。Scores=0.9345858224796677這個參數(shù)狀態(tài)下的模型打分約為0.935,效果較好。

        由網(wǎng)格搜索結(jié)果表4可以得出,樹的深度為7,main_child_weight=1,n_estimators=95時Scores=0.9333038265 163888這個參數(shù)狀態(tài)下的模型打分約為0.933,效果較好。

        表4 LightGBM網(wǎng)格搜索結(jié)果Tab.4 LightGBM grid search results

        由網(wǎng)格搜索結(jié)果表5可以得出,樹的深度為7,main_samples_split=1,n_estimators=100時Scores=0.93492 00615330541這個參數(shù)狀態(tài)下的模型打分約為0.935,效果較好。

        表5 GBDT網(wǎng)格搜索結(jié)果Tab.5 GBDT grid search result

        將網(wǎng)格搜索出的最優(yōu)參數(shù)分別帶入到GBDT、Light GBM和XGBoost中進行預(yù)測,得到如表6所示結(jié)果。

        由表6對比結(jié)果所示,XGBoost模型在預(yù)測值與實際值的擬合度上表現(xiàn)較好。其預(yù)測性能高于GBDT模型的預(yù)測性能,與lightGBM模型進行比較也具有相對優(yōu)勢。表6顯示XGBoost模型在MSE具有出色的表現(xiàn)。

        表6 對比結(jié)果Tab.6 Compare results

        4 結(jié)論與建議

        本文使用3種機器學(xué)習(xí)模型對二手車價格進行預(yù)測,XGBoost和lightGBM作為機器學(xué)習(xí)近年提出的新方法,比傳統(tǒng)GBDT能達到更好的預(yù)測精度,同時XGBoost在模型擬合程度和均方誤差上的表現(xiàn)都遠超Light GBM和GBDT。本文的不足之處在于XGBoost雖然能夠得到較好的預(yù)測精度,但是XGBoost是基于啟發(fā)式算法,尋找的解為局部最優(yōu)并非全局最優(yōu)。

        猜你喜歡
        二手車決策樹網(wǎng)格
        用全等三角形破解網(wǎng)格題
        反射的橢圓隨機偏微分方程的網(wǎng)格逼近
        一種針對不均衡數(shù)據(jù)集的SVM決策樹算法
        決策樹和隨機森林方法在管理決策中的應(yīng)用
        電子制作(2018年16期)2018-09-26 03:27:06
        重疊網(wǎng)格裝配中的一種改進ADT搜索方法
        數(shù)據(jù)二手車
        汽車縱橫(2017年1期)2017-02-17 19:01:20
        數(shù)據(jù)—二手車
        汽車縱橫(2016年9期)2016-10-27 12:49:13
        數(shù)據(jù) 二手車
        汽車縱橫(2016年8期)2016-09-24 15:39:49
        基于決策樹的出租車乘客出行目的識別
        基于曲面展開的自由曲面網(wǎng)格劃分
        韩国三级中文字幕hd久久精品| 国产精品综合日韩精品第一页| 日韩欧美亚洲中字幕在线播放| 亚洲欧美日韩国产综合久| 久久精品亚洲国产成人av| 亚洲精品有码日本久久久| 日本道色综合久久影院| 国产精品久久久久久久妇| 真实国产老熟女粗口对白| 国产WW久久久久久久久久| 亚洲女同恋中文一区二区| 国产成人av三级在线观看韩国 | 男女后进式猛烈xx00动态图片| 久久麻豆精品国产99国产精| 超碰Av一区=区三区| 久久五月精品中文字幕| 亚洲综合色区一区二区三区| 久久夜色精品国产欧美乱| 欧美精品偷自拍另类在线观看| 亚洲精品乱码久久久久久按摩高清| 久久伊人精品中文字幕有| 免费人成在线观看网站| 国产成人精品一区二区不卡| 日本在线视频网站www色下载| 天天摸天天做天天爽天天舒服 | 亚洲欧洲日产国码无码av野外| 日韩一区二区三区熟女| 国产午夜福利精品一区二区三区| 免费观看激色视频网站| 国内无遮码无码| 麻豆国产精品伦理视频| 亚洲av无码一区二区一二区| 五十路丰满中年熟女中出| 91久久精品无码人妻系列 | 免费av日韩一区二区| 亚洲av无码乱码在线观看富二代 | 老熟女多次高潮露脸视频| av网址大全在线播放| 成人国产一区二区三区av| 色先锋av影音先锋在线| 欧洲综合色|