資料探勘之 後處理

2021-08-20 10:44:55 字數 1274 閱讀 9071

常常聽說資料預處理,後處理相對少見,本篇來說說何時需要後處理,以及後處理的一些簡單方法。

資料探勘的流程一般是:輸入資料->特徵工程->模型訓練/**->匯出結果。後處理是將模型**的結果進一步處理後,再匯出。

先看乙個例子:比如我們網購小包裝的咖啡,一般的購買習慣是,在少量購買時,需要多少買多少:一包,兩包,三包;買的較多的時候,可能是六包,八包,十包;買得更多的情況下,可能是十包,十五包,二十包;再往上是三十包,四十包,五十包,一百包……以此類推。

也就是說:數量大的時候,我們可能更傾向於取整,雙數,五的倍數,十的倍數等等。如果不是針對人數買的話,一般不會出現7, 19, 113這樣的購買數量。如下圖示意:橫軸代表購買數量,縱軸代表該數量出現的次數。藍色為實際購買資料,橙色為**資料。注意本圖是結果y的分布圖。

想在模型和**處理中優化比較困難,因為對於測試集,並不知道**的結果是多少,於是也無法將它是否靠近2,5,10的倍數作為特徵代入模型。

此時可使用後處理,讓橙線靠近藍線,最簡單的方法是手寫判斷語句,例如:如果大於12.5則**為15等等。但相對比較麻煩,很多邊界值需要手動調節,換了資料之後,還需要重新調節。

我想到一種自動處理的方法,還算簡單有效,在此分享一下。假設我們**出購買量是13.5紅色點(因為是回歸,有可能是非整數)。一般情況下我們會四取五入,得到結果14。下面來看看怎麼用演算法優化。

先找到它前後的兩個點13和14,確定它在圖中的位置,即紅色的點,然後再從該點到它前後的距離n以內的高點連線(黃色區域限定距離),取其中斜率最大的線所對應的高點,這樣兼顧了高度和距離。用此方法,我們將12.5取15。

有時候,我們還要考慮給紅點左右的線段分配不同的權重,比如說:如果一共37個人,人手乙個,可能會考慮破損,意外,留出餘量買到40個,而不會故意少買成35個,導致不夠分。在此情況下,只要比較斜率時給右側線多乘一些權重即可。

還有一種常見情況:有時候做回歸,**不出很大或很少值,所有數值都集中在中部區域,比如之前糖尿病**的初賽,大家都使用gbdt類模型,很多人都**不出血糖大於10的,幾乎所有結果都在5-8之間。這是由於這種迭代模型,追求的是整體誤差最小化,為了保證絕大多數**正確,就犧牲了人少但血糖高的部分。但實際場景中,如果不能**高血糖,模型就沒用了。後來也有人用了一些後處理方法,即把偏離正常範圍值的乘乙個係數,手動拉寬**範圍。其實也可以使用類似上述方法的思路解決。

螢幕後處理

void onrenderimage rendertexture src,rendertexture dest 螢幕後處理函式 graphics.blit src,dest,mat,pass 螢幕後處理 src當前螢幕紋理 graphics.drawmesh amesh,vector3.zero,q...

DEM軌跡後處理

2020.6.16更新 首先在輸出顆粒資訊的時候儲存global id 然後在par iew中匯入vtp資料 不要匯入pvd 並使用temporal particle to pathlines這個filter 可以直接ctrl space調出搜尋框搜尋 首先用problocation功能顯示顆粒資料...

航空遙感資料後處理流程

航空遙感資料採集後一般通過初步預處理,即得到用於後處理的資料有,資料 雷射資料 外方位元數。第一步 利用雷射點雲資料,製作dem 數字高程模型,使用microsation 的terra scan 第二步 正射 資料 外方位元數 dem。使用erdas 的lps 軟體模組。第三步 勻色 對 勻色處理,...