机器学习系列(5)_从白富美相亲名单看特征选择与预处理(上)
作者:龍心塵?&&寒小陽?
時間:2016年1月。?
出處:?
http://blog.csdn.net/longxinchen_ml/article/details/50471682
聲明:版權(quán)所有,轉(zhuǎn)載請聯(lián)系作者并注明出處
1. 引言
再過一個月就是春節(jié),相信有很多碼農(nóng)就要準(zhǔn)備歡天喜地地回家過(xiang)年(qin)了。我們今天也打算講一個相親的故事。
講機(jī)器學(xué)習(xí)為什么要講相親?被討論群里的小伙伴催著相親,哦不,催著講特征工程緊啊。只是我們不太敢講這么復(fù)雜高深的東西,畢竟工程實(shí)踐的經(jīng)驗(yàn)太復(fù)雜了,沒有統(tǒng)一的好解釋的理論,一般的教材講這方面的內(nèi)容不多。我們就打算以一個相親的故事為例,串一些特征工程的內(nèi)容。
2. 故事背景
事先聲明:本故事純屬虛構(gòu),如有雷同,純屬巧合!
海歸白富美韓梅梅剛回國,還沒適應(yīng)工作,母親就催著相親。以父母的關(guān)系,他們了解到的適齡單身男青年有100個。要從100個男生中找到1個理想的女婿,可謂百里挑一。韓梅梅母親也擔(dān)心女兒相親多了會反感,打算草擬一個相親名單,人數(shù)不多。怎么從中挑出優(yōu)秀男青年就是一個首要的問題。
3. 用機(jī)器學(xué)習(xí)的框架去分析
我們用機(jī)器學(xué)習(xí)的框架分析,在父母眼中,這100個男生最終將會分成兩類:“女婿”(1人)和“非女婿”(99人)。“女婿”和“非女婿”就叫做“標(biāo)簽”。
而選擇相親名單的標(biāo)準(zhǔn)——如“是否高富帥”、“是否海歸”等等——就叫作“特征”。最好能有一個特征能夠精確定位理想女婿。但這太過理想了。比較現(xiàn)實(shí)的方法是從這些“特征”中選擇、拆分、組合出最合適的特征,逐漸逼近我們的標(biāo)簽,以形成一個精簡的相親名單。而這個過程,就可以理解成特征處理、特征工程的過程。
但是,現(xiàn)實(shí)中的特征有千千萬,拆分重組之后特征又是幾何級數(shù)地增加,可能永遠(yuǎn)也窮舉不完。因此需要有統(tǒng)一客觀的指標(biāo)來衡量這些特征對標(biāo)簽的識別能力,以便進(jìn)一步地深入分析。而評估這些“特征”對我們的“標(biāo)簽”的有效程度的過程就叫作“特征有效性分析”。
4. 劇情一:韓媽媽的“如意算盤”
為人父母嘛,總是希望女兒嫁得好。韓媽媽的第一反應(yīng)的就是要找“高富帥”。先她先從這100個男生中挑了挑,符合高富帥這個標(biāo)準(zhǔn)的有5個人。
韓媽媽的如意算盤是這樣的:女婿就從這5個人中挑,概率就是20%,比之前的1%整整提高了20倍,嘿嘿嘿。。。
5. 特征有效性分析
其實(shí),這就韓媽媽不知不覺就走了一個特征有效性分析的過程。我們用圖表演示一下:?
?
考慮到各方面的概率,用下圖表示更加直觀:?
?
為了表述方便,我們以隨機(jī)挑女婿而不考慮任何特征的概率叫做“ 先驗(yàn)概率” (1%)。而中間的箭頭中的概率則表示 在已經(jīng)知道樣本所屬特征前提下 ,屬于女婿還是不屬于女婿的概率,也可以叫作 “標(biāo)簽相對于某個特征的后驗(yàn)概率” (20%)。而母親的如意算盤就是 考慮了上圖中紅圈部分的先驗(yàn)概率與后驗(yàn)概率(也可以叫條件概率) 。這其實(shí)是一種很樸素的特征有效性分析的方法。而且她還做了個更加精確的數(shù)量化描述:
后驗(yàn)概率先驗(yàn)概率=20%1%=20(倍)。?
只是在工程上做除法可能運(yùn)算會麻煩些,而兩邊同時取對數(shù)轉(zhuǎn)換成減法則更方便: log(后驗(yàn)概率先驗(yàn)概率)=log(后驗(yàn)概率)?log(先驗(yàn)概率)
概率表示著選女婿的可能性或者確定性。在本例中,后驗(yàn)概率的確定性比先驗(yàn)概率的確定性更高。可見,“確定性的增加”可以作為特征有效性分析的一個指標(biāo)。
我們進(jìn)一步分析,無論先驗(yàn)概率還是后驗(yàn)概率,其本身是0-1之間的一個數(shù),取完對數(shù)之后是一個負(fù)數(shù),這在現(xiàn)實(shí)中不太方便找到其對應(yīng)的現(xiàn)象解釋。但是概率的倒數(shù)一定大于1,取完對數(shù)之后就是一個正數(shù),就好找現(xiàn)實(shí)解釋了。我們可以把這個“概率倒數(shù)的對數(shù)”理解成不確定性的指標(biāo)。于是上式就變成:
log(后驗(yàn)概率先驗(yàn)概率)=log(1先驗(yàn)概率)?log(1后驗(yàn)概率)這里面的log(后驗(yàn)概率先驗(yàn)概率)我們叫做互信息。
因此,“不確定性的減少”可以作為特征有效性分析的一個指標(biāo)。這個結(jié)論我們接下來將會反復(fù)用到。
6. 劇情二:白富美巧勸慈母
韓媽媽半開玩笑地問韓梅梅:“我們家閨女只挑高富帥的怎么樣?”女兒想了想,說:“如果人家看不上我們怎么辦?”母親笑著說:“我們的家境哪里差了?何況我們的女兒這么優(yōu)秀,我們還看不上他們呢。”
女兒說:“這就是說明我們雙方不合適了。我們家條件雖然還不錯,但是比下有余、比上不足,跟真正條件好的家庭比較起來我們根本不算事兒。如果一味挑高富帥,他們可能覺得我們只是看中他們的錢,反倒把我們家看低了。相反,要是真要有個真正對我好的男生,比什么都幸福,而他不一定必須是高富帥。畢竟跟我一起相處一輩子的是一個活生生的人,而不是他背后的東西嘛。”
母親很有感慨地說:“嗯,你能這樣想我就放心了。梅梅真是長大了。那么,你打算怎么辦?”女兒說道:“高富帥也得分人,踏實(shí)人品好的也可以接觸一下,但是玩心太重不會照顧人的我就不喜歡。估計高富帥里面這兩種人一半一半吧。很多男生并不是高富帥,其中沒準(zhǔn)也有合適的人呢。”
7. 特征有效性分析
現(xiàn)在特征的分布發(fā)生了新變化。按韓梅梅的分析,高富帥中可能有一半她就不會喜歡,而不是高富帥的男生中沒準(zhǔn)有合適的人。我們可以簡單假設(shè)高富帥中與非高富帥中各有0.5個合適的人。則分析圖表如下:?
現(xiàn)在的情況是,“是不是女婿”的可能性同時分布在“是高富帥”和“不是高富帥”中,單獨(dú)衡量“高富帥”本身的后驗(yàn)概率已經(jīng)不夠描述特征的整體效果了。我們可以有一個考慮特征整體情況的指標(biāo)。
還是回到之前的那句話:
“不確定性的減少”可以作為特征有效性分析的一個指標(biāo)。
我們之前考慮了“是女婿”的不確定性是log(11%),相應(yīng)的“不是女婿”的不確定性是log(199%),那么標(biāo)簽“是否女婿”作為整體的平均不確定性則可以理解為這兩個狀態(tài)的加權(quán)平均:
H(Y)=1%×log(11%)+99%×log(199%)=0.08079。(全文假定對數(shù)log的底數(shù)取為2)
這就是傳說中的信息熵。我們用Y表示標(biāo)簽,用H(Y)表示“是否女婿”的信息熵,也就是其整體的平均不確定性。
那么考慮特征(“是否高帥富”)后的標(biāo)簽(“是否女婿”)的平均不確定性怎么衡量?我們用X:{“是高富帥”,“不是高富帥”}來表示特征。其實(shí),與上面的思路類似,我們在已知特征為“是高富帥”的前提下,“是否女婿”這個標(biāo)簽的整體平均不確定性可以用相對“是高富帥”的后驗(yàn)概率來求出:
H(Y|X=“是高富帥”)=(0.5/5)×log(1(0.5/5))+(4.5/5)×log(1(4.5/5))=0.46900
在已知特征為“不是高富帥”的前提下,“是否女婿”這個標(biāo)簽的整體平均不確定性可以用相對“不是高富帥”的后驗(yàn)概率來求出:
H(Y|X=“不是高富帥”)=(0.5/95)×log(1(0.5/95))+(94.5/95)×log(1(94.5/95))=0.04741。
因此,已知特征(無論具體是“是高富帥”還是“不是高富帥”)情況下的標(biāo)簽平均不確定性為前面兩種情況的加權(quán)平均:
H(Y|X)?
=P(X=“是高富帥”)×H(Y|X=“是高富帥”)+P(X=“不是高富帥”)×H(Y|X=“不是高富帥”)
=5/100×0.46900+95/100×0.04741=0.06849?
這就是傳說中的條件熵。
所以,考慮特征后,標(biāo)簽的“不確定性的減少”為:
I(Y,X)=H(Y)?H(Y|X)=0.01230?
這個I(Y,X)就叫做平均互信息。
我們用同樣的方法去評價之前母親設(shè)想的女婿只在高富帥中的理想情況(也就是女婿只在高富帥中產(chǎn)生的情況)的互信息I(Y,X′)=0.04470
平均互信息從理想情況的0.04470下降到0.01230,也就是說原以為特征“是否高富帥”與標(biāo)簽“是否女婿”的相關(guān)性很高,后來發(fā)現(xiàn)相關(guān)性其實(shí)是比較低的。可見理想很豐滿,現(xiàn)實(shí)很骨感。
8. 劇情三:白富美重定名單
其實(shí),韓梅梅沒有說出來的話是她有一個青梅竹馬的碼農(nóng)叫李雷。她出國之前的對他的印象還不錯。如果按母親的標(biāo)準(zhǔn)李雷肯定排除在相親名單外了,而她想給他一個機(jī)會。
這時母親說話了:“我們家女兒考慮得挺好,那相親名單你來定吧。”女兒說:“不是高富帥的男生也該好好區(qū)分一下,那些品行端正、氣度不凡、踏實(shí)肯干的潛力股的男生我也比較欣賞,其他的就暫且不考慮了。”母親說:“就是說可以從高富帥中挑出部分品德好的,還有從不是高帥富的男生中挑出部分潛力股,共同組成一個新的名單,我們的女婿就在這里面了?”女兒不好意思地說:“媽媽您真著急,八字還沒一撇呢。”
接著,韓梅梅母女倆從高富帥中挑了2個口碑不錯的,又從不是高富帥的男生中條了10個很不錯的。最終組成了12人的相親名單。李雷的名字在其中。
9. 拆分重組成為新特征
其實(shí)以上韓梅梅母女倆完成了一次特征的拆分與重組過程。具體圖示如下:?
這里用“潛帥德”表示韓梅梅對“品行端正、氣度不凡、踏實(shí)肯干的潛力股”的特征的描述。
特征進(jìn)行拆分與重組的過程在特征工程中經(jīng)常出現(xiàn)。因?yàn)楫?dāng)你對特征與標(biāo)簽的相關(guān)性有定量的評估方法后,會篩選出那些不那么顯著的特征(如本例中的“是否高富帥”),然后去分析考核指標(biāo)這么低的原因,啟發(fā)你引入新的特征(如本例中的“是否品德良好”、“是否有潛力”)將原有特征拆分重組,可能會有更好的效果。而這些生成的新特征,又要經(jīng)過特征有效性分析來最終評估。如此反復(fù)迭代。
10. 特征有效性分析
我們用X2來表示新特征,與上面的思路類似,我們計算X2的平均互信息:
I(Y,X2)=H(Y)?H(Y|X2)=0.03114與之前的平均互信息I(Y,X)=0.01230比起來,有了顯著提高。可見新特征X2比之前的特征X更有效。
11. 劇情四:韓媽媽給名單分級
在跟韓梅梅聊完之后,韓媽媽轉(zhuǎn)念一想:“為什么非要有一份相親名單?可以把這12個人再分成兩類,第一類是高富帥的,先相親。這些覺得不合適后再考慮剩下的10個人啊。”
12. 特征有效性分析
我們繼續(xù)分析,用X3來表示新特征,與上面的思路類似,我們計算X3的平均互信息:
I(Y,X3)=H(Y)?H(Y|X3)=0.03593與之前的平均互信息I(Y,X2)=0.03114比起來,又有了一定的提高。可見新特征X3比之前的特征X2更有效。
韓媽媽真是為女兒的相親操碎了心。
13. 劇情五:韓媽媽問計趙媒婆
韓媽媽思索完之后抑制不住內(nèi)心的興奮,想找人傾訴。這時她正好在路上碰見了趙媒婆。趙媒婆在韓媽媽的老閨蜜圈中享有盛譽(yù),相親非常有經(jīng)驗(yàn)。
趙媒婆聽了韓媽媽的訴說后,微微一笑,說:“你這個名單不夠?qū)I(yè)。”韓媽媽大為詫異。趙媒婆繼續(xù)說:“高、富、帥三個特征本來就是相互獨(dú)立的三個特征,你硬生生地綁在一起,多少大好青年被你給甩掉了。后面的潛力股啊、人品端正啊什么的都類似。”韓媽媽恍然大悟:“真是這樣啊。”
趙媒婆說:“其實(shí)你這里最大的問題是這些特征的評估都是拍腦袋決定,沒有充分的現(xiàn)實(shí)數(shù)據(jù)做支撐,很可能會犯錯誤的。”韓媽媽暗暗點(diǎn)頭,心生佩服。
趙媒婆接著說:“還有一個問題,你準(zhǔn)備了兩份名單,也就是把人群分成了三份,你算平均互信息只能評價整體的,具體到每一份人群你怎么對他們評價?”韓媽媽想了想,說:“我們可以直接用相對于某個具體條件的信息熵啊。”趙媒婆說:“何苦這么麻煩呢?”
韓媽媽聽她話里有話,打算繼續(xù)問下去。
14. 評價特征選項(xiàng)的兩個方法
在趙媒婆最后一個問題中,韓媽媽所說的其實(shí)是可以計算以下三個值來評估具體的特征選項(xiàng):
- H(Y|X3=“高富帥德”)
- H(Y|X3=“潛帥德”)
- H(Y|X3=“不是高富帥德且不是潛帥德”)
而這三個值在之前計算條件熵H(Y|X3)的過程中就已經(jīng)計算出來了。所以比較起來應(yīng)該很方便。
但其實(shí)更簡單的方法用他們相對于所需要標(biāo)簽的后驗(yàn)概率評價。如下圖紅色的部分,比較大小就可以找出評價較好的特征。?
顯然“高富帥德”的評分最高(0.25),“潛帥德”的評分次之(0.05),“不是高富帥德且不是潛帥德”評分最差(0)。符合韓媽媽的預(yù)期。
然而,趙媒婆的想說的并不是這種方法,而是邏輯回歸……
15. 劇情六:趙媒婆的數(shù)據(jù)庫
趙媒婆不等韓媽媽說話,就直接拿出了自己的神器:一個平板電腦。然后打開她的相親數(shù)據(jù)庫,點(diǎn)了點(diǎn)鼠標(biāo),一張巨大的表展現(xiàn)出來。韓媽媽目瞪口呆:“現(xiàn)在媒婆都用高科技了?”趙媒婆傲嬌地說:“那是。”
這張大表是她這么多年來全國各地相親介紹的所有男生信息,分別標(biāo)注了每個男生的升高、年齡、年薪、長相特點(diǎn)、教育經(jīng)歷、工作經(jīng)歷、是否海歸、工作年限、工作公司、工作地點(diǎn)、出身地、是否有戶口、是否公務(wù)員、具體職業(yè)、行業(yè)、性格傾向等等信息。
她還有一張女生信息表,另外一張男生女生相親情況表(相親成功、相親不成、繼續(xù)發(fā)展、未接觸)。媒婆一一給韓媽媽解釋這些信息。韓媽媽連連驚呼。
趙媒婆接著說道:“我們可以從里面找出跟你女兒情況相近的一些女生信息,再把跟她們相過親的男生找出來,把其中相親成功的歸為一類,剩下的歸為另一類。然后假設(shè)男生的每個特征對相親成功都有貢獻(xiàn),貢獻(xiàn)的權(quán)重為wi。我們用邏輯回歸的方法可以求出這些權(quán)重,把這些權(quán)重大的特征挑出來,你再用它們來找女婿就方便了。”
韓媽媽說:“邏~輯~什么?”趙媒婆說:“高科技了,你不懂的。不過給我干兒子寫了個博客來介紹,你可以看看。”
16. 特征篩選與特征工程工作流
呃,我們什么時候成趙媒婆的干兒子了?先不管這些。邏輯回歸并不是什么高科技,在前面的文章里已有簡單的解釋。我們在這里就補(bǔ)充說明一下為什么可以用權(quán)重來衡量特征的貢獻(xiàn)。以下是一個典型的邏輯回歸過程:?
我們期望P(z)的概率越大越好,sigmoid函數(shù)是個單調(diào)遞增函數(shù),所以z越大越好,在所有特征都?xì)w一化的前提下,顯然是權(quán)重wi越大越好。因此與wi對應(yīng)的特征就是我們要尋找的顯著特征。而那些權(quán)重小的特征就可以先不考慮了。這就完成了一個最簡單的特征篩選的過程。
當(dāng)然,這里所說的權(quán)重大可以指的是權(quán)重的絕對值很大,比如特征“富”的權(quán)重是-100,是一個很小的數(shù),但這也就意味著“不富”的權(quán)重會很大,以至于顯著影響我們的z的結(jié)果。所以這也是一個顯著特征。
需要補(bǔ)充一下的是,在工程實(shí)踐中,權(quán)重的幅度和正則化也有關(guān)系。L1正則化會把特征拉稀疏,會產(chǎn)出一部分0特征。而不是0的那些特征,是有作用的特征。所以L1正則化其實(shí)具備一定的特征選擇(feature selection)的作用。尤其是很高維空間的feature,用L1正則化,其實(shí)能幫助做一下feature selection的。而L2正則化,則會把各個維度的權(quán)重拉平均一些,抑制住各個維度權(quán)重幅度的方差。但是抑制歸抑制,最后的權(quán)重還是會有大小差異,就像上文說的,絕對值大的權(quán)重,對應(yīng)的特征區(qū)分度好一些。
對于那些不夠顯著的特征,我們需要分析一下這個特征的具體情況是怎樣,是否需要對其進(jìn)行重新拆分與重組,拆分重組后新的特征又可以進(jìn)行特征有效性分析。如此不斷迭代反復(fù),就可以挑選出比較理想的特征了。
我們用以下整個工作流大致展現(xiàn)這個過程。由于很多內(nèi)容沒有展開,我們先把名字寫進(jìn)去,在后續(xù)的文章中繼續(xù)擴(kuò)展。?
17. 劇情七:韓媽媽新名單塵埃落定
在韓媽媽與趙媒婆的盡心鼓搗下,最終生成了一個只有4個人的相親名單。其中只剩下一名高富帥,另外三人中有一人正是李雷。韓媽媽拿著新名單給女兒看,韓梅梅沉默半晌,心想李雷在四人名單中怎么也能存在,莫非這也是緣分?
18. 小結(jié)
本文中主要講了一些特征有效性分析的方法,包括用互信息,平均互信息,條件熵,后驗(yàn)概率,邏輯回歸權(quán)重等方法對特征與標(biāo)簽的相關(guān)性進(jìn)行了評估。有了這些評估做基礎(chǔ),可以篩選出顯著的特征,并對對不顯著的特征進(jìn)行分析、拆分和重組,最終形成新的特征并反復(fù)迭代。本文略過了一些特征預(yù)處理的方法,并對特征有效性評估的闡述不夠充分,我們將在接下來的文章中予以討論。
總結(jié)
以上是生活随笔為你收集整理的机器学习系列(5)_从白富美相亲名单看特征选择与预处理(上)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVM学习(四):为何需要核函数
- 下一篇: 回顾一些重要的CNN改进模型(你真的了解