1. 程式人生 > >文本分類特征選擇方法

文本分類特征選擇方法

方法 選擇算法 產生 基礎 著名 order pan 分詞 還在

-1. TF-IDF的誤區

TF-IDF可以有效評估一字詞對於一個文件集或一個語料庫中的其中一份文件的重要程度。因為它綜合表征了該詞在文檔中的重要程度和文檔區分度。但在文本分類中單純使用TF-IDF來判斷一個特征是否有區分度是不夠的。

1)它沒有考慮特征詞在類間的分布。也就是說該選擇的特征應該在某類出現多,而其它類出現少,即考察各類的文檔頻率的差異。如果一個特征詞,在各個類間分布比較均勻,這樣的詞對分類基本沒有貢獻;但是如果一個特征詞比較集中的分布在某個類中,而在其它類中幾乎不出現,這樣的詞卻能夠很好代表這個類的特征,而TF-IDF不能區分這兩種情況。2)沒有考慮特征詞在類內部文檔中的分布情況。在類內部的文檔中,如果特征詞均勻分布在其中,則這個特征詞能夠很好的代表這個類的特征,如果只在幾篇文檔中出現,而在此類的其它文檔中不出現,顯然這樣的特征詞不能夠代表這個類的特征。

特征提取的目的在於降維。即使隨機選取一部分詞,分類效果也不會差到驚人的地步。采用了TF-IDF方法的分類效果當然也能有不錯的效果。當然,TF-IDF用於向量空間模型,進行文檔相似度計算是相當有效的。

0. 特征選取方法

文本中能觀察到的量其實只有兩個:詞頻和文檔頻率,所有的方法一律以這兩個量為計算基礎。簡單綜合這兩者的TF-IDF選擇出來的特征不具有類別區分度。以文檔頻率為基礎的特征選擇算法有文檔頻次方法(直接依據文檔頻率大小排序的方法)、卡方檢驗、信息增益、互信息等。

針對英文純文本的實驗結果表明:作為特征選擇方法時,卡方檢驗和信息增益的效果最佳(相同的分類算法,使用不同的特征選擇算法來得到比較結果);文檔頻率方法的性能同前兩者大體相當,

術語強度方法性能一般;互信息方法的性能最差。

1. 卡方檢驗(Chi-square)

卡方檢驗最基本的思想就是通過觀察實際值與理論值的偏差來確定理論的正確與否。具體做的時候常常先假設兩個變量確實是獨立的(“原假設”),然後觀察實際值(觀察值)與理論值(這個理論值是指“如果兩者確實獨立”的情況下應該有的值)的偏差程度,如果偏差足夠小,我們就認為誤差是很自然的樣本誤差,是測量手段不夠精確導致或者偶然發生的,兩者確確實實是獨立的,此時就接受原假設;如果偏差大到一定程度,使得這樣的誤差不太可能是偶然產生或者測量不精確所致,我們就認為兩者實際上是相關的,即否定原假設,而接受備擇假設。

理論值為E,實際值為x,偏差程度的計算公式為:

技術分享

這個式子就是開方檢驗使用的差值衡量公式。當提供了數個樣本的觀察值x1x2,……xi,……xn之後,代入到式中就可以求得開方值,用這個值與事先設定的閾值比較,如果大於閾值(即偏差很大),就認為原假設不成立,反之則認為原假設成立。

在文本分類的特征選擇階段,一般使用“詞t與類別c不相關”來做原假設計算出的開方值越大,說明對原假設的偏離越大,我們越傾向於認為原假設的反面情況是正確的選擇的過程為每個詞計算它與類別c的開方值,從大到小排個序(此時開方值越大越相關),取前k個就可以。

例如,N篇文檔,分類有體育和非體育,考察特征詞“籃球”與類別“體育”的相關性。


特征選擇

1.屬於“體育”

2.不屬於“體育”

1.包含“籃球”

A

B

A+B

2.不包含“籃球”

C

D

C+D

A+C

B+D

N

根據原假設,“體育”類別中包含“籃球”的文檔比例應與所有文檔中包含“籃球”的文檔比例相同。故,A的理論值應為:

技術分享

差值:

技術分享

同樣計算剩下三種情況的差值D12D21D22。最後計算“籃球”與“體育”類文章的開方值

技術分享

進一步化簡,註意如果給定了一個文檔集合(例如我們的訓練集)和一個類別,則NMN-M(即A+CB+D)對同一類別文檔中的所有詞來說都是一樣的,而我們只關心一堆詞對某個類別的開方值的大小順序,而並不關心具體的值,因此把它們去掉是完全可以的,故實際計算的時候我們都使用

技術分享

卡方檢驗的缺點是:它只統計文檔是否出現詞,而不管出現了幾次。這會使得他對低頻詞有所偏袒(因為它誇大了低頻詞的作用)。甚至會出現有些情況,一個詞在一類文章的每篇文檔中都只出現了一次,其開方值卻大過了在該類文章99%的文檔中出現了10次的詞,其實後面的詞才是更具代表性的,但只因為它出現的文檔數比前面的詞少了“1”,特征選擇的時候就可能篩掉後面的詞而保留了前者。這就是開方檢驗著名的“低頻詞缺陷”。因此開方檢驗也經常同其他因素如詞頻綜合考慮來揚長避短。

2. 信息增益(IG,Information Gain)

信息熵(信息量)(系統的)

技術分享

意思就是一個變量可能的變化越多(反而跟變量具體的取值沒有任何關系,只和值的種類多少以及發生概率有關),它攜帶的信息量就越大。

一個一個特征t,系統有它和沒它的時候信息量各是多少,兩者的差值就是這個特征給系統帶來的信息量統越是有序,信息熵就越低;反之,一個系統越亂,信息熵就越高。所以,信息熵也可以說是系統有序化程度的一個衡量。

信息增益(特征的)
是指期望信息或者信息熵的有效減少量對於一個特征t,系統有它和沒它的時候信息量各是多少,兩者的差值就是這個特征給系統帶來的信息量。有它即信息熵,無它則是條件熵。
條件熵:計算當一個特征t不能變化時,系統的信息量是多少。對於一個特征X,它可能的取值有n多種(x1,x2,……,xn),計算每個值的條件熵,再取平均值。

技術分享

在文本分類中,特征詞t的取值只有t(代表t出現)和技術分享(代表t不出現)。那麽

技術分享

最後,信息增益

技術分享

但信息增益最大的問題還在於它只能考察特征對整個系統的貢獻,而不能具體到某個類別上,這就使得它只適合用來做所謂“全局”的特征選擇(指所有的類都使用相同的特征集合),而無法做“本地”的特征選擇(每個類別有自己的特征集合,因為有的詞,對這個類別很有區分度,對另一個類別則無足輕重)。


附:特征提取步驟

1. 卡方檢驗

1.1 統計樣本集中文檔總數(N)。

1.2 統計每個詞的正文檔出現頻率(A)、負文檔出現頻率(B)、正文檔不出現頻率)、負文檔不出現頻率。

1.3 計算每個詞的卡方值,公式如下:

技術分享

1.4 將每個詞按卡方值從大到小排序,選取前k個詞作為特征,k即特征維數。

2. 信息增益

2.1 統計正負分類的文檔數:N1、N2。

2.2 統計每個詞的正文檔出現頻率(A)、負文檔出現頻率(B)、正文檔不出現頻率)、負文檔不出現頻率。

2.3 計算信息熵

技術分享

2.4 計算每個詞的信息增益

技術分享
2.5 將每個詞按信息增益值從大到小排序,選取前k個詞作為特征,k即特征維數。

文本分類特征選擇方法