1. 程式人生 > >處理資料極度不均衡的資料集2

處理資料極度不均衡的資料集2

實現過程個人覺得很坎坷。

下午找到了sklearn庫中有個 imblearn包,可以無腦運算,基於完成任務考慮,看了之後確實有很多收貨。

更加熟悉了模型的原理,資料處理的過程和結果優化的一些理論。

排除樸素隨機抽樣之外的其他方法,在增加小樣本和刪除大樣本的時候,時間消耗過於巨大,對於講求效率的我而言,理論的優越並不能是我信服imblearn的優越性。

在面對幾十萬條資料的時候,確實感到了個人計算機的無力。

既然是大資料,還是要想大資料框架來靠攏的。

接下來說具體思路:

參考著巨人的理論,是否可以通過人為製造隨機資料和隨機取樣來進行演算法的優化。

基本的正樣本個數為:706610,負樣本個數為:3293

看到這麼感人的比例,我還能多說什麼呢,還是自己操作吧。

首先隨機抽取訓練集(axis=0)按行來抽取。並將正負樣本集分開。

然後隨機選擇正樣本的數量,並將負樣本連結到對應的正樣本之後

然後進行訓練和除錯,終於擺脫了召回率和F2值為0的尷尬情況。

然後按照基本的邏輯斯諦迴歸,嶺迴歸,lgm模型進行了測試。

結果依次是:邏輯斯的迴歸F2值在0.50-0.65之間;

                    嶺迴歸在0.55-0.72之間,但是資料波動範圍比邏輯斯的迴歸大一些;

                    接下來就是我信賴的lgm模型了,不出我所料範圍在0.75-0.85之間,但是在樣本3W,迴圈迭代次數多的情況下穩定在0.79這個範圍。

最後,就是漫長的等待生成結果了,17W的測試資料還是挺噁心的,現在等了40分鐘了還沒結束,繼續等吧

最後推薦兩篇部落格:

https://blog.csdn.net/u011094454/article/details/77618604

用Python進行資料探勘(資料預處理)

https://blog.csdn.net/zutsoft/article/details/51498026

【pandas】[3] DataFrame 資料合併,連線(merge,join,concat)