二手車交易價格預測----:模型結果融合

二手車交易價格預測 ——模型結果融合

通過對賽題的分析,我們可以看出此類問題是對價格進行迴歸預測,那我們對於數據需要事先做預處理分析,這裏我們採用EDA探索性數據分析來進行。
探索性數據分析是對調查,觀測所得到的一些初步的雜亂無章的數據,在儘可能量少的先驗假定下進行處理。通過作圖,製表等形式和方程擬合計算某些特徵量等手段,探索數據的結構和規律的一種數據分析方法。
對於此類問題我們可以從以下五個方面去描述分析:變量是否有缺失,變量是否有異常值,變量是否有冗餘,樣本是否存在不平衡問題,以及基於目標price進行分析查看各變量的分佈情況。
ps:本賽題中數據鏈接:二手車交易數據
提取碼:wqld
參考鏈接:https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.12586969.1002.12.1cd8593aw4bbL5&postId=95457

本文基於Python3.7進行分析

彙總:
在這裏插入圖片描述

重點介紹:
Bagging和boosting

Bagging即套袋法,其算法過程如下:

從原始樣本集中抽取訓練集。每輪從原始樣本集中使用Bootstraping有放回的方法抽取n個訓練樣本(在訓練集中,有些樣本可能被多次抽取到,而有些樣本可能一次都沒有被抽中)。共進行k輪抽取,得到k個訓練集。(k個訓練集之間是相互獨立的)
每次使用一個訓練集得到一個模型,k個訓練集共得到k個模型。(注:這裏並沒有具體的分類算法或迴歸方法,我們可以根據具體問題採用不同的分類或迴歸方法,如決策樹、感知器等)
對分類問題:將上步得到的k個模型採用投票的方式得到分類結果;
對迴歸問題,計算上述模型的均值作爲最後的結果。(所有模型的重要性相同)
AdaBoosting方式每次使用的是全部的樣本,每輪訓練改變樣本的權重。下一輪訓練的目標是找到一個函數f 來擬合上一輪的殘差。當殘差足夠小或者達到設置的最大迭代次數則停止。Boosting會減小在上一輪訓練正確的樣本的權重,增大錯誤樣本的權重。(對的殘差小,錯的殘差大)

梯度提升的Boosting方式是使用代價函數對上一輪訓練出的模型函數f的偏導來擬合殘差。

Bagging,Boosting二者之間的區別
1)樣本選擇上:
Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的。
Boosting:每一輪的訓練集不變,只是訓練集中每個樣例在分類器中的權重發生變化。而權值是根據上一輪的分類結果進行調整。

2)樣例權重:
Bagging:使用均勻取樣,每個樣例的權重相等
Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大。

3)預測函數:
Bagging:所有預測函數的權重相等。
Boosting:每個弱分類器都有相應的權重,對於分類誤差小的分類器會有更大的權重。

4)並行計算:
Bagging:各個預測函數可以並行生成
Boosting:各個預測函數只能順序生成,因爲後一個模型參數需要前一輪模型的結果

5)爲什麼說bagging是減少variance,而boosting是減少bias?
Bagging對樣本重採樣,對每一重採樣得到的子樣本集訓練一個模型,最後取平均。由於子樣本集的相似性以及使用的是同種模型,因此各模型有近似相等的bias和variance(事實上,各模型的分佈也近似相同,但不獨立),由於bagging後的錯誤是幾個模型的均值,所以bagging後的bias和單個子模型的接近,一般來說不能顯著降低bias,boosting從優化角度來看,是用forward-stagewise這種貪心法去最小化損失函數

其他後期補充。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章