特徵選擇1:用貝葉斯方法挑西瓜

小紅是小明正在追求的女神。今天,小明好不容易把小紅約出來逛街,逛著逛著,女神小紅說口渴了,兩人來到西瓜攤前,這時,小紅抿嘴一笑,突然想考察一下小明的姿勢水平,說道:「小明你不是做機器學習的碼農嗎?如果要你用機器學習挑西瓜,你會怎麼做?」

小明會心一笑,這不是撞我槍口上嗎?看我的蒂花之秀~

是機器學習挑西瓜的基本思路是這樣滴,先盡量觀察西瓜的特徵,從特徵中找出和「好瓜」有關的特徵,這樣的特徵非常多,讓我們頭腦風暴一波:

  1. 直觀特徵:包括但不限於西瓜的顏色、根蒂的形狀、瓜皮的紋理、敲擊的聲音等等~
  2. 外部環境特徵:是不是本地瓜,瓜的品種,上市時間等等~
  3. 還可以有很多其他特徵: 如瓜店老闆的誠信度,這個西瓜的銷售情況等等~

小明呱啦呱啦一頓說得正起勁,小紅說:stop!你說這麼多我頭都大了,你怎麼知道那些特徵有用那些特徵沒用呢?

小明緩緩道來:哈,這個簡單,可以用貝葉斯方法!

用貝葉斯方法進行特徵分析:

我們先來規定一下符號, Y=好瓜 表示是好瓜,相反 bar{Y} =不是好瓜X_i 表示二元離散特徵,例如 X_1=青綠色 X_2=根蒂堅挺 X_3=敲擊聲清脆 。那麼當我們知道了一個習慣的這些特徵,這個西瓜是」好瓜「的概率可以表示為如下公式:

P(Y|X_1,X_2,X_3) = frac{P(X_1,X_2,X_3|Y)P(Y)}{P(X_1,X_2,X_3)}

再寫出西瓜「不是好瓜」的概率:

P(bar{Y}|X_1,X_2,X_3) = frac{P(X_1,X_2,X_3|bar{Y})P(bar{Y})}{P(X_1,X_2,X_3)}

將兩個概率相除,得到:

frac{P(Y|X_1,X_2,X_3)}{P(bar{Y}|X_1,X_2,X_3)}= frac{P(X_1,X_2,X_3|Y)P(Y)}{P(X_1,X_2,X_3|bar{Y})P(bar{Y})}

這樣 frac{P(Y|X_1,X_2,X_3)}{P(bar{Y}|X_1,X_2,X_3)} > 1 時便可以說明,」是好瓜「的概率比」不是好瓜「的概率大~但是實際上除法並不好,容易產生過小的數值,發生underflow,所以我們兩邊同時取對數log函數,得到:

logfrac{P(Y|X_1,X_2,X_3)}{P(bar{Y}|X_1,X_2,X_3)}= logfrac{P(X_1,X_2,X_3|Y)}{P(X_1,X_2,X_3|bar{Y})} + logfrac{P(Y)}{P(bar{Y})}

公式左邊是西瓜「是好瓜」的邏輯發生比,又稱作logit,邏輯發生比大於0就說明是好瓜的概率較大

接下來,我們假設所有特徵之間是獨立的,可以用條件獨立假設:

P(X_1,X_2,X_3|Y) = P(X_1|Y)times P(X_2|Y) times P(X_3|Y)

P(X_1,X_2,X_3|bar{Y}) = P(X_1|Y)times P(X_2|bar{Y}) times P(X_3|bar{Y})

將它們帶入邏輯發生比公式:

logfrac{P(Y|X_1,X_2,X_3)}{P(bar{Y}|X_1,X_2,X_3)}= logfrac{P(X_1|Y)}{P(X_1|bar{Y})} +logfrac{P(X_2|Y)}{P(X_2|bar{Y})}+logfrac{P(X_3|Y)}{P(X_3|bar{Y}))}+ logfrac{P(Y)}{P(bar{Y})}

我們發現等式右邊變成了各個特徵 logfrac{P(X_i|Y)}{P(X_i|bar{Y})} 的求和~特徵的 logfrac{P(X_i|Y)}{P(X_i|bar{Y})} 值越大,說明這個特徵對西瓜"是好瓜"的影響越大,相應的說明這個特徵是一個顯著特徵。而值比較小的特徵說明影響較小,不是一個很有效的特徵,剔除掉也不會有很大的影響。

這樣就能篩選出最重要的特徵了~

小明娓娓道來,小紅聽得入了迷,暗自在心中給小明加了一分~


推薦閱讀:

機器學習系列-隨機過程
機器學習和神經科學:你的大腦也在進行深度學習嗎?
數字串識別:基於位置的硬性注意力機制

TAG:人工智能 | 机器学习 | 贝叶斯分类 |