特徵選擇1:用貝葉斯方法挑西瓜
小紅是小明正在追求的女神。今天,小明好不容易把小紅約出來逛街,逛著逛著,女神小紅說口渴了,兩人來到西瓜攤前,這時,小紅抿嘴一笑,突然想考察一下小明的姿勢水平,說道:「小明你不是做機器學習的碼農嗎?如果要你用機器學習挑西瓜,你會怎麼做?」
小明會心一笑,這不是撞我槍口上嗎?看我的蒂花之秀~
是機器學習挑西瓜的基本思路是這樣滴,先盡量觀察西瓜的特徵,從特徵中找出和「好瓜」有關的特徵,這樣的特徵非常多,讓我們頭腦風暴一波:
- 直觀特徵:包括但不限於西瓜的顏色、根蒂的形狀、瓜皮的紋理、敲擊的聲音等等~
- 外部環境特徵:是不是本地瓜,瓜的品種,上市時間等等~
- 還可以有很多其他特徵: 如瓜店老闆的誠信度,這個西瓜的銷售情況等等~
小明呱啦呱啦一頓說得正起勁,小紅說:stop!你說這麼多我頭都大了,你怎麼知道那些特徵有用那些特徵沒用呢?
小明緩緩道來:哈,這個簡單,可以用貝葉斯方法!
用貝葉斯方法進行特徵分析:
我們先來規定一下符號, 表示是好瓜,相反 。 表示二元離散特徵,例如 , , 。那麼當我們知道了一個習慣的這些特徵,這個西瓜是」好瓜「的概率可以表示為如下公式:
再寫出西瓜「不是好瓜」的概率:
將兩個概率相除,得到:
這樣 時便可以說明,」是好瓜「的概率比」不是好瓜「的概率大~但是實際上除法並不好,容易產生過小的數值,發生underflow,所以我們兩邊同時取對數log函數,得到:
公式左邊是西瓜「是好瓜」的邏輯發生比,又稱作logit,邏輯發生比大於0就說明是好瓜的概率較大。
接下來,我們假設所有特徵之間是獨立的,可以用條件獨立假設:
將它們帶入邏輯發生比公式:
我們發現等式右邊變成了各個特徵 的求和~特徵的 值越大,說明這個特徵對西瓜"是好瓜"的影響越大,相應的說明這個特徵是一個顯著特徵。而值比較小的特徵說明影響較小,不是一個很有效的特徵,剔除掉也不會有很大的影響。
這樣就能篩選出最重要的特徵了~
小明娓娓道來,小紅聽得入了迷,暗自在心中給小明加了一分~
推薦閱讀: