02 特征工程 - 數(shù)據(jù)不平衡

01 特征工程 - 概念

數(shù)據(jù)清洗過程:

PS:工作中可能遇到的最大的問題是數(shù)據(jù)不均衡。
怎么去解決的涮阔? 上采樣猜绣、下采樣、SMOTE算法敬特。
解決的效果如何掰邢? 有一點點改進,但不是很大伟阔。
事實上確實如此辣之,很多時候即使用了上述算法對采樣的數(shù)據(jù)進行改進,但是結(jié)果反而可能更差皱炉。在業(yè)界中怀估,對數(shù)據(jù)不均衡問題的處理確實是一件比較頭疼的問題。最好的處理方法還是:盡可能去獲得更多的那些類別比較少的數(shù)據(jù)合搅。


數(shù)據(jù)不平衡概念

在實際應(yīng)用中多搀,數(shù)據(jù)往往分布得非常不均勻,也就是會出現(xiàn)“長尾現(xiàn)象”灾部,即:絕大多數(shù)的數(shù)據(jù)在一個范圍/屬于一個類別康铭,而在另外一個范圍或者另外一個類別中,只有很少的一部分?jǐn)?shù)據(jù)赌髓。那么這個時候直接使用機器學(xué)習(xí)可能效果會不太少从藤,所以這個時候需要我們進行一系列的轉(zhuǎn)換操作。

而在采樣過程中修改樣本的權(quán)重锁蠕,一般做的比較少夷野。

數(shù)據(jù)不平衡解決方案一

設(shè)置損失函數(shù)的權(quán)重,使得少數(shù)類別數(shù)據(jù)判斷錯誤的損失大于多數(shù)類別數(shù)據(jù)判斷錯誤的損失匿沛,即當(dāng)我們的少數(shù)類別數(shù)據(jù)預(yù)測錯誤的時候扫责,會產(chǎn)生一個比較大的損失值,從而導(dǎo)致模型參數(shù)往讓少數(shù)類別數(shù)據(jù)預(yù)測準(zhǔn)確的方向偏逃呼”罟拢可以通過scikit-learn中的class_weight參數(shù)來設(shè)置權(quán)重。

數(shù)據(jù)不平衡解決方案二

下采樣/欠采樣(under sampling):從多數(shù)類中隨機抽取樣本從而減少多數(shù)類別樣本數(shù)據(jù)抡笼,使數(shù)據(jù)達到平衡的方式苏揣。

PS:比如本來樣本正負(fù)例的比例是100:1,一般使用下采樣將數(shù)據(jù)比例控制到4:1就是極限了推姻。如果強行將正負(fù)例的比例控制到1:1平匈,會損失很多樣本的特性,使得模型效果還不如100:1的訓(xùn)練結(jié)果。

集成下采樣/欠采樣:采用普通的下采樣方式會導(dǎo)致信息丟失增炭,所以一般采用集成學(xué)習(xí)和下采樣結(jié)合的方式來解決這個問題忍燥;主要有兩種方式:

1、EasyEnsemble
采用不放回的數(shù)據(jù)抽取方式抽取多數(shù)類別樣本數(shù)據(jù)隙姿,然后將抽取出來的數(shù)據(jù)和少數(shù)類別數(shù)據(jù)組合訓(xùn)練一個模型梅垄;多次進行這樣的操作,從而構(gòu)建多個模型输玷,然后使用多個模型共同決策/預(yù)測队丝。

2、BalanceCascade
利用Boosting這種增量思想來訓(xùn)練模型欲鹏;先通過下采樣產(chǎn)生訓(xùn)練集机久,然后使用Adaboost算法訓(xùn)練一個分類器;然后使用該分類器多對所有的大眾樣本數(shù)據(jù)進行預(yù)測赔嚎,并將預(yù)測正確的樣本從大眾樣本數(shù)據(jù)中刪除膘盖;重復(fù)迭代上述兩個操作,直到大眾樣本數(shù)據(jù)量等于小眾樣本數(shù)據(jù)量尽狠。


擴展一個技巧:
如果參加一個比賽衔憨,我們會在模型訓(xùn)練的時候?qū)?shù)據(jù)分成訓(xùn)練集開發(fā)集。模型提交后袄膏,比賽方會提供測試集對結(jié)果進行預(yù)測践图。
一般來說我們訓(xùn)練集上的模型評分會在86 ~ 88%左右,開發(fā)集上的評分為82 ~ 84%沉馆,但是到了實際的測試集上码党,模型評分可能只有72%左右。
技巧來了:
1斥黑、一般來說測試集的數(shù)據(jù)是不帶標(biāo)簽的揖盘,但是測試集依然有特征X。
2锌奴、我們都不考慮訓(xùn)練集和測試集的目標(biāo)Y兽狭,人為創(chuàng)建一列目標(biāo)值Z,將訓(xùn)練集中的Z都設(shè)為0鹿蜀,將測試集的目標(biāo)Z都設(shè)為1箕慧。
3、尋找測試集的X和Z之間的映射茴恰。
4颠焦、根據(jù)這個X和Z之間的映射,使用訓(xùn)練集中的X預(yù)測Z往枣,結(jié)果肯定是組0,1向量伐庭。
5粉渠、將預(yù)測值為1的數(shù)據(jù)提出來,作為我的開發(fā)集(用來驗證我們模型的數(shù)據(jù)集合)圾另,剩下預(yù)測為0的數(shù)據(jù)作為訓(xùn)練集霸株。在這個基礎(chǔ)上對我的訓(xùn)練數(shù)據(jù)進行調(diào)優(yōu)。

這是一個在不做任何特征的情況下對模型調(diào)優(yōu)的一個技巧集乔,一般可以將模型在真實環(huán)境中的評分提高一點點淳衙。大概72%提高到74%左右。

為什么饺著?實際上我們做訓(xùn)練的目的是為了找一找比賽中人家提供給我們的訓(xùn)練數(shù)據(jù)和真實數(shù)據(jù),哪些長得比較像肠牲。將更像真實測試數(shù)據(jù)的樣本放到開發(fā)集中作為調(diào)參的標(biāo)準(zhǔn)幼衰,從而能夠提高最終的評分。雖然沒有什么科學(xué)依據(jù)缀雳,但是確實比較有效渡嚣,不登大雅之堂。


數(shù)據(jù)不平衡解決方案三

Edited Nearest Neighbor(ENN): 對于多數(shù)類別樣本數(shù)據(jù)而言肥印,如果這個樣本的大部分k近鄰樣本都和自身類別不一樣识椰,那我們就將其刪除,然后使用刪除后的數(shù)據(jù)訓(xùn)練模型深碱。

數(shù)據(jù)不平衡解決方案四

Repeated Edited Nearest Neighbor(RENN): 對于多數(shù)類別樣本數(shù)據(jù)而言腹鹉,如果這個樣本的大部分k近鄰樣本都和自身類別不一樣,那我們就將其刪除敷硅;重復(fù)性的進行上述的刪除操作功咒,直到數(shù)據(jù)集無法再被刪除后,使用此時的數(shù)據(jù)集據(jù)訓(xùn)練模型绞蹦。

數(shù)據(jù)不平衡解決方案五

Tomek Link Removal: 如果兩個不同類別的樣本力奋,它們的最近鄰都是對方,也就是A的最近鄰是B幽七,B的最近鄰也是A景殷,那么A、B就是Tomek Link澡屡。將所有Tomek Link中多數(shù)類別的樣本刪除猿挚。然后使用刪除后的樣本來訓(xùn)練模型。

\color{red}{以上是對多數(shù)類別的樣本進行刪除}


\color{red}{下面是對少數(shù)類別的樣本進行擴充}

數(shù)據(jù)不平衡解決方案六

過采樣/上采樣(Over Sampling):和欠采樣采用同樣的原理挪蹭,通過抽樣來增加少數(shù)樣本的數(shù)目亭饵,從而達到數(shù)據(jù)平衡的目的。一種簡單的方式就是通過有放回抽樣梁厉,不斷的從少數(shù)類別樣本數(shù)據(jù)中抽取樣本辜羊,然后使用抽取樣本+原始數(shù)據(jù)組成訓(xùn)練數(shù)據(jù)集來訓(xùn)練模型踏兜;不過該方式比較容易導(dǎo)致過擬合一般抽樣樣本不要超過50%。

過采樣/上采樣(Over Sampling):因為在上采樣過程中八秃,是進行是隨機有放回的抽樣碱妆,所以最終模型中,數(shù)據(jù)其實是相當(dāng)于存在一定的重復(fù)數(shù)據(jù)昔驱,為了防止這個重復(fù)數(shù)據(jù)導(dǎo)致的問題疹尾,我們可以加入一定的隨機性,也就是說:在抽取數(shù)據(jù)后骤肛,對數(shù)據(jù)的各個維度可以進行隨機的小范圍變動纳本,eg: (1,2,3) --> (1.01, 1.99, 3);通過該方式可以相對比較容易的降低上采樣導(dǎo)致的過擬合問題腋颠。

數(shù)據(jù)不平衡解決方案七

采用數(shù)據(jù)合成的方式生成更多的樣本繁成,該方式在小數(shù)據(jù)集場景下具有比較成功的案例。常見算法是SMOTE算法淑玫,該算法利用小眾樣本在特征空間的相似性來生成新樣本巾腕。

比如:給少數(shù)樣本編號,1~100絮蒿;將1尊搬、2樣本連起來,取他們的中點(期望)土涝,作為一個新的樣本佛寿。以此類推,最后可以新生成50個樣本但壮。用這種算法一次可以提高50%的樣本量狗准。

數(shù)據(jù)不平衡解決方案八

對于正負(fù)樣本極不平衡的情況下,其實可以換一種思路/角度來看待這個問題:可以將其看成一分類(One Class Learning)或者異常檢測(Novelty Detection)問題茵肃,在這類算法應(yīng)用中主要就是對于其中一個類別進行建模腔长,然后對所有不屬于這個類別特征的數(shù)據(jù)就認(rèn)為是異常數(shù)據(jù),經(jīng)典算法包括:One Class SVM验残、IsolationForest等捞附。

03 特征工程 - 特征轉(zhuǎn)換 - 分詞、Jieba分詞

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末您没,一起剝皮案震驚了整個濱河市鸟召,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌氨鹏,老刑警劉巖欧募,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異仆抵,居然都是意外死亡跟继,警方通過查閱死者的電腦和手機种冬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舔糖,“玉大人娱两,你說我怎么就攤上這事〗鹇穑” “怎么了十兢?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長摇庙。 經(jīng)常有香客問我旱物,道長,這世上最難降的妖魔是什么卫袒? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任异袄,我火速辦了婚禮,結(jié)果婚禮上玛臂,老公的妹妹穿的比我還像新娘。我一直安慰自己封孙,他們只是感情好迹冤,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虎忌,像睡著了一般泡徙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上膜蠢,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天堪藐,我揣著相機與錄音,去河邊找鬼挑围。 笑死礁竞,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的杉辙。 我是一名探鬼主播模捂,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜘矢!你這毒婦竟也來了狂男?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤品腹,失蹤者是張志新(化名)和其女友劉穎岖食,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舞吭,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡泡垃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年析珊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兔毙。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡唾琼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出澎剥,到底是詐尸還是另有隱情锡溯,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布哑姚,位于F島的核電站祭饭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏叙量。R本人自食惡果不足惜倡蝙,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绞佩。 院中可真熱鬧寺鸥,春花似錦、人聲如沸品山。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肘交。三九已至笆载,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間涯呻,已是汗流浹背凉驻。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留复罐,地道東北人涝登。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像效诅,于是被迫代替她去往敵國和親缀拭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容