數據挖掘競賽之後處理

最近開始入坑數據挖掘比賽,總是聽圈內大佬們提到後處理漲分。我就一直很疑惑,一直都是數據預處理,怎麼又冒出來一個後處理。在網上學習了之後,決定寫一篇文章總結一下。

就我目前學習到的數據挖掘的流程來說,一般拿到數據之後

先進行數據的分析,清洗工作,比如去除離羣點,填充缺失的數據。
然後對數據進行處理,比如將object轉成categorical類型,把房子的x室y廳z衛分成xyz三個屬性…
做特徵
寫模型,選參數
看特徵重要性,融模型
出結果
那麼直接上我的定義:

後處理,就是對模型預測的結果進行處理。

也就是在56步之間加一步:後處理。

預處理是在模型預測之前對訓練集測試集數據進行處理,預處理+特徵工程=模型可以逼近對上限。

後處理則是在模型預測之後對預測結果的數據進行處理,這種方法相對少見,網上相關的博客只有一篇。

舉一個最笨的方法,逐個數據修改你的模型預測的結果,手動漲分。

這個方法很low,但是在數據量很小的情況下確實可以提一點點分,而且也算是後處理的一種。

後處理的主要操作步驟是:

1.畫出預測數據與實際數據的關係圖,這樣可以清楚的看到預測數據的誤差主要在哪裏,以便進行後處理。

2.參照圖上誤差大的地方,對預測的結果進行處理,讓預測結果擬合實際數據。在這個過程中,注意尋找實際數據的規律,按規則進行處理。比如說實際數據在某個區間內都會趨近某個值,那麼就可以設置判斷語句來對預測的結果進行處理,再比如說分類問題,可以調節決策界限,來達到改變預測結果,擬合實際數據的目的。

在博客

https://blog.csdn.net/xieyan0811/article/details/80549001
中提到了一個例子:

糖尿病預測的初賽,大家都使用GBDT類模型,很多人都預測不出血糖大於10的,幾乎所有結果都在5-8之間。這是由於這種迭代模型,追求的是整體誤差最小化,爲了保證絕大多數預測正確,就犧牲了人少但血糖高的部分。但實際場景中,如果不能預測高血糖,模型就沒用了。

這時用到的後處理方法是:

把偏離正常範圍值的乘一個係數,手動拉寬預測範圍

完。

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