特征選擇的常用方法之一是卡方檢驗,作為一個filter model的代表,卡方檢驗屬於簡單易計算的Feature weight algorithm(通過一定的measure方法給特征賦上一定的weight來表征與類別之間的相關度,通過weight大於一定閾值或選取topk個weight來進行特征選擇)。卡方檢驗和信息增益是feature weight algorithm常用且效果較優的算法。
卡方檢驗是概率論與數理統計中常用的假設檢驗的思想:通過觀察實際值和理論值的偏差來確定原假設是否成立。首先假設兩個變量是獨立的(此為原假設),然后觀察實際值和理論值之間的偏差程度,若偏差足夠小,則認為偏差是很自然的樣本誤差,接受原假設。若偏差大到一定程度,則否則原假設,接受備擇假設。
關於卡方檢驗的思想和例子,可參考:http://blog.csdn.net/fty8788/article/details/8156723
上文中提到的例子:考察attribute詞 “籃球”和類別“體育”的相關性,計算偏差的卡方值,進行特征選擇。這里不再贅述。
++++++++++我是分割線++++++++++
理解卡方檢驗:
使用卡方檢驗時,簡單代入公式即可。簡單復習了一下假設檢驗的知識(都還給老師了,實在對不住自己……),簡單總結如下,有不對之處感謝指正:
卡方檢驗使用的是單個分布的卡方檢驗擬合法:
對籃球的有無和體育是否這兩對值分離時,假設兩個是獨立的,即籃球在四中情況下的分布概率(用頻率近似概率)分別為:A+B/N A+B/N C+D/N C+D/N
對籃球的分布是否符合上述假設進行檢驗:
chi2 = sum(1 to k) n/pi (fi/n - pi)^2 ~chi(k-1)分布
公式左邊簡化得到:
chi2 = sum(1 to k) (fi - npi)^2 / npi = sum(1 to k) (fi - E)^2 / E ~chi(k-1)
於是,卡方檢驗的公式由此得到。
對以上假設進行檢驗時,相關了一個顯著水平siglevel。顯著水平表示當原假設成立時拒絕原假設的概率,是一個小概率事件的概率。
對上述例子,if chi2 >= chi2(siglevel) 拒絕原假設,或可表示為P(chi2 >= G) = siglevel
減少siglevel,即拒絕原假設的概率變小,G變大,即對chi2的閾值變高,必須出現一個很大的偏差才能拒絕原假設。因此可以通過調節siglevel調整拒絕原假設的卡方閾值。
++++++++++++碎碎念+++++
概率論博大精深,大一上課單純以為這只是數學知識,拿來算算概率就可以了。完全沒意識到高數、概率論和線性代數與碼農千絲萬縷的聯系,
把教材都買回來了,希望有一天能融為一體,游刃有余吧。2014,小小加油。