卡方檢驗,或稱x2檢驗,被譽爲二十世紀科學技術全部分支中的20大發明之一,它的發明者卡爾·皮爾遜是一位歷史上罕見的百科全書式的學者,研究領域涵蓋了生物、歷史、宗教、哲學、法律。以前作文本分類項目用過卡方值作特徵選擇(降維),後來聽內部培訓,另外一個部門說他們有用卡方檢驗作異經常使用戶的檢測,因而就想把卡方檢驗再溫習一次,同時把卡方檢驗和特徵選擇串起來理解。spa
舉個例子,假設咱們有一堆新聞標題,須要判斷標題中包含某個詞(好比吳亦凡
)是否與該條新聞的類別歸屬(好比娛樂
)是否有關,咱們只須要簡單統計就能夠得到這樣的一個四格表:code
組別 | 屬於娛樂 |
不屬於娛樂 |
合計 | |
---|---|---|---|---|
不包含吳亦凡 |
19 | 24 | 43 | |
包含吳亦凡 |
34 | 10 | 44 | |
合計 | 53 | 34 | 87 |
經過這個四格表咱們獲得的第一個信息是:標題是否包含吳亦凡
確實對新聞是否屬於娛樂
有統計上的差異,包含吳亦凡
的新聞屬於娛樂
的比例更高,但咱們還沒法排除這個差異是否因爲抽樣偏差致使。那麼首先假設標題是否包含吳亦凡
與新聞是否屬於娛樂
是獨立無關的,隨機抽取一條新聞標題,屬於娛樂
類別的機率是:(19 + 34) / (19 + 34 + 24 +10) = 60.9%
blog
第二步,根據無關性假設生成新的理論值四格表:排序
組別 | 屬於娛樂 |
不屬於娛樂 |
合計 |
---|---|---|---|
不包含吳亦凡 |
43 * 0.609 = 26.2 | 43 * 0.391 = 16.8 | 43 |
包含吳亦凡 |
44 * 0.609 = 26.8 | 44 * 0.391 = 17.2 | 44 |
顯然,若是兩個變量是獨立無關的,那麼四格表中的理論值與實際值的差別會很是小。get
x2的計算公式爲:it
其中A爲實際值,也就是第一個四格表裏的4個數據,T爲理論值,也就是理論值四格表裏的4個數據。table
x2用於衡量實際值與理論值的差別程度(也就是卡方檢驗的核心思想),包含了如下兩個信息:class
實際值與理論值誤差的絕對大小(因爲平方的存在,差別是被放大的)變量
差別程度與理論值的相對大小im
對上述場景可計算x2值爲10.01。
既然已經獲得了x2值,咱們又怎麼知道x2值是否合理?也就是說,怎麼知道無關性假設是否可靠?答案是,經過查詢卡方分佈的臨界值表。
這裏須要用到一個自由度
的概念,自由度等於V = (行數 - 1) * (列數 - 1)
,對四格表,自由度V = 1
。
對V = 1
,卡方分佈的臨界機率是:
顯然10.01 > 7.88
,也就是標題是否包含吳亦凡
與新聞是否屬於娛樂
無關的可能性小於0.5%,反過來,就是二者相關的機率大於99.5%。
卡方檢驗的一個典型應用場景是衡量特定條件下的分佈是否與理論分佈一致,好比:特定用戶某項指標的分佈與大盤的分佈是否差別很大,這時經過臨界機率能夠合理又科學的篩選異經常使用戶。
另外,x2值描述了自變量與因變量之間的相關程度:x2值越大,相關程度也越大,因此很天然的能夠利用x2值來作降維,保留相關程度大的變量。再回到剛纔新聞分類的場景,若是咱們但願獲取和娛樂類別相關性最強的100個詞,之後就按照標題是否包含這100個詞來肯定新聞是否歸屬於娛樂類,怎麼作?很簡單,對娛樂類新聞標題所包含的每一個詞按上述步驟計算x2值,而後按x2值排序,取x2值最大的100個詞。
來自:建造者說