1. 程式人生 > >總結 | 常用文字特徵選擇

總結 | 常用文字特徵選擇

在機器學習中,特徵屬性的選擇通常關係到訓練結果的可靠性,一個好的特徵屬性通常能起到滿意的分類效果。凡是特徵選擇,總是在將特徵的重要程度量化後再進行選擇,而如何量化特徵的重要性,就成了各種方法間最大的不同。接下來就介紹如何有效地進行文字的特徵屬性選擇。

文字分類作為一種有效的資訊檢索和資訊過濾的關鍵技術,能按預定義的類別將待分類的文字進行歸類。文字分類中常用到向量空間模型(VSM),然而高維的向量空間模型嚴重影響了計算機的處理速度,因此需要對文字的向量進行降維,那麼就需要對文字進行特徵屬性選擇。目前在文字分類領域中常用的文字特徵屬性選擇演算法有:TF-IDF資訊增益卡方檢驗互資訊等。

連結:http://blog.csdn.net/acdreamers/article/details/44661843

前面分享過文字常見特徵TF-IDFTF-IDF不容小覷、N-Gram等,今天對以上常見屬性做個總結,可以使我們有個整體把握。

TF-IDF與特徵屬性選擇

TF即詞頻(Term Frequency)表示詞條在某個文件d中出現的頻率。

 IDF即逆向檔案頻率(Inverse Document Frequency),如果包含詞條t的文件越少,那麼IDF值越大,則說明詞條t具有很好的類別區分能力。

   TF-IDF演算法的主要思想是:如果某個詞或短語在某一篇文章中的出現頻率TF越高,而且在其它文章中很少出現,那麼認為此詞或者短語具有很好的類別區分能力,適合用來分類。舉個例子如下所示:

假設某篇文件的總詞語數為100個,而“蜜蜂”出現了5次,那麼“蜜蜂”的詞頻就是0.05。如果“蜜蜂”這個詞在100份文件中出現,而文件總數為1000000,那麼逆向檔案頻率就是log10(1000000/100)=4。最後TF-IDF的值為0.05 * 4 = 0.2。公式如下所示。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

當然在統計之前必須要過濾掉文件中的停用詞。當然TF-IDF的精確度有時候可能不太高,它仍有不足之處,單純地認為文字頻率越小的單詞就越重要,而文字頻率越大的單詞就越無用,顯然這並不完全正確。

接下來就可以用上面所學的TF-IDF來對文字進行特徵屬性選擇了。計算出文件中每個詞的TF-IDF的值,然後按照降序排列,取前面的幾個詞作為特徵屬性。這裡由於只取前K大的,有比較優秀的O(n)演算法。

在文字分類中單純地用TF-IDF來判斷一個特徵屬性是否具有區分度是不夠的,原因主要有如下兩個:

沒有考慮特徵詞在類間的分佈

      如果一個特徵詞在各個類之間分佈都比較均勻,那麼這樣的詞對分類沒有任何貢獻;而如果一個特徵詞集中分佈在某個類中,在其它類中都出現但是出現的頻率很小很小,那麼這個詞能很好地代表這個類的特徵屬性,但是TF-IDF不能很好地區別這兩種情況。

沒有考慮特徵詞在類內部文件中的分佈

      在類內部文件中,如果特徵詞均勻分佈在其中,那麼這個特徵詞能夠很好地代表這個類的特徵,如果只在幾篇文件中出現,那麼不能夠代表這個類的特徵。

資訊增益與特徵屬性選擇

資訊增益(Kullback–Leibler divergence)又叫做information divergence,relative entropy 或者KLIC。在資訊增益中,重要的衡量標準就是看這個特徵能夠為分類系統帶來多少資訊,帶來的資訊越多,那麼該特徵就越重要。通過資訊增益選擇的特徵屬性只能考察一個特徵對整個系統的貢獻,而不能具體到某個類別上,這就使得它只能做全域性特徵選擇,即所有的類使用相同的特徵集合。

卡方檢驗與特徵屬性選擇

卡方檢驗是數理統計中一種常用的檢驗兩個變數是否獨立的方法。在卡方檢驗中使用特徵與類別間的關聯性來進行量化,關聯性越強,特徵屬性得分就越高,該特徵越應該被保留。 

卡方檢驗最基本的思想是觀察實際值和理論值的偏差來確定理論的正確性通常先假設兩個變數確實是獨立的,然後觀察實際值與理論值的偏差程度,如果偏差足夠小,那麼就認為這兩個變數確實是獨立的,否則偏差很大,那麼就認為這兩個變數是相關的。

在文字特徵屬性選擇階段,一般用“詞t與類別c不相關”作出假設,計算出的卡方值越大,說明假設偏離就越大,假設越不正確。文字特徵屬性選擇過程為:計算每個詞與類別c的卡方值,然後排序取前K大的即可。

接下來,就來學習如何計算卡方值。

假設 n 個樣本的觀測值分別為 x1,x2,...,xn,它們的均值(期望)為 E,那麼卡方值計算如下

640?wx_fmt=png

如果計算出的 X^2 值與事先設定的閥值進行比較,如果 X^2 小於閥值,則原假設成立,否則原假設不成立。

在文字特徵選擇階段,我們關心的是一個詞 t 與一個類別 c 之間是否獨立,如果獨立,則詞 t 對類別 c 完全沒有表徵作用。然而,卡方檢驗也有缺陷,會對低頻詞有所偏袒,這就是著名的‘低頻詞缺陷’,因此經常需要同詞頻綜合考慮來揚長避短。

互資訊與特徵屬性選擇

其實互資訊相比前面幾種特徵屬性選擇方法來說,效果是最差的。互資訊是事件A和事件B發生相關聯而提供的資訊量,在處理分類問題提取特徵的時候就可以用互資訊來衡量某個特徵和特定類別的相關性,如果資訊量越大,那麼特徵和這個類別的相關性越大。反之也是成立的。計算方法如下

640?wx_fmt=png

低詞頻對於互資訊的影響還是蠻大的,一個詞如果頻次不夠多,但是又主要出現在某個類別裡,那麼就會出現較高的互資訊,從而給篩選帶來噪音。所以為了避免出現這種情況可以採用先對詞按照詞頻排序,然後按照互資訊大小進行排序,然後再選擇自己想要的詞,這樣就能比較好的解決這個問題。

640?wx_fmt=png

搜狗語料庫:

http://www.sogou.com/labs/dl/c.html

 近期熱文

... ...

接受過去和現在的模樣,才會有能量去追尋自己的未來。

0?wx_fmt=jpeg

更多幹貨內容請關注微信公眾號“AI 深入淺出”

長按二維碼關注

相關推薦

總結 | 常用文字特徵選擇

在機器學習中,特徵屬性的選擇通常關係到訓練結果的可靠性,一個好的特徵屬性通常能起到滿意的分類效果

文字特徵選擇的關鍵演算法總結

一、特徵詞選擇與特徵詞權重關係 開始學文字分類的時候經常要搞暈特徵詞選擇和特徵詞權重 這兩個東西,因為兩者都要進行量化,很容易認為特徵詞選擇就是計算權重,因此我認為有必要先搞清楚這兩個概念。 兩者的區別 :特徵詞選擇是為了降低文字表示的維度,而特徵詞權重是為

[轉載]Scikit-learn介紹幾種常用特徵選擇方法

#### [轉載]原文地址:http://dataunion.org/14072.html 特徵選擇(排序)對於資料科學家、機器學習從業者來說非常重要。好的特徵選擇能夠提升模型的效能,更能幫助我們理解資料的特點、底層結構,這對進一步改善模型、演算法都有著重要作用。 特徵選擇主要有兩個功能: 減少特

結合Scikit-learn介紹幾種常用特徵選擇方法

特徵選擇(排序)對於資料科學家、機器學習從業者來說非常重要。好的特徵選擇能夠提升模型的效能,更能幫助我們理解資料的特點、底層結構,這對進一步改善模型、演算法都有著重要作用。特徵選擇主要有兩個功能:減少特徵數量、降維,使模型泛化能力更強,減少過擬合增強對特徵和特徵值之間的理解拿

常用特徵選擇演算法介紹

特徵選擇(排序)對於資料科學家、機器學習從業者來說非常重要。好的特徵選擇能夠提升模型的效能,更能幫助我們理解資料的特點、底層結構,這對進一步改善模型、演算法都有著重要作用。特徵選擇主要有兩個功能:減少特徵數量、降維,使模型泛化能力更強,減少過擬合增強對特徵和特徵值之間的理解拿到資料集,一個特徵選擇方法,往往很

[轉]乾貨:結合Scikit-learn介紹幾種常用特徵選擇方法

特徵選擇(排序)對於資料科學家、機器學習從業者來說非常重要。好的特徵選擇能夠提升模型的效能,更能幫助我們理解資料的特點、底層結構,這對進一步改善模型、演算法都有著重要作用。 特徵選擇主要有兩個功能: 減少特徵數量、降維,使模型泛化能力更強,減少過擬合 增強對特徵和特徵值之間的理解

卡方檢驗文字特徵選擇

關於卡方檢驗,下面這篇blog介紹的比較詳細,仔細思索之後,對一些點做如下說明,個人理解: 1. 關於假設“詞t與類別c無關”。這個假設應該變更為“詞t不是對分類有區分度的特徵”,(c是一個類別,除了c之外的所有資料組成另一個類別,類似邏輯迴歸多分類的方法)。一個詞的卡方檢驗值高,並不能說明詞一定與t強相關,

文字特徵選擇——TF-IDF演算法(Python3實現)

1、TF-IDF演算法介紹        TF-IDF(term frequency–inverse document frequency,詞頻-逆向檔案頻率)是一種用於資訊檢索(information retrieval)與文字挖掘(text mining)的常用加權技術

工程中常用特徵選擇方法

當資料預處理完成後,我們需要選擇有意義的特徵輸入機器學習的演算法和模型進行訓練。 為什麼?(1)降低維度,選擇重要的特徵,避免維度災難,降低計算成本(2)去除不相關的冗餘特徵(噪聲)來降低學習的難度

文字分類——特徵選擇概述

內容提要 特徵選擇概述 常見模型 文件頻率(DF) 卡方校驗(CHI) 資訊增益(IG) 互資訊(MI) 特徵選擇概述   在向量空間模型中,文字可以選擇字、片語、短語、甚至“概念”等多種元素表

秋招總結問題一:為什麼需要特徵選擇特徵選擇有哪些?

1.為什麼需要特徵選擇?特徵選擇有哪些? 第一個問題:①在現實任務中經常會遇到維數災難問題,屬性過多造成的。 ②可以降低學習任務的難度。不相關的特徵就是噪聲。 第二個問題:過濾式,包裹式,嵌入式 特徵選擇分為兩個部分,一個是子集搜尋,一個是子集評價。子集搜尋有

學習理論、模型選擇特徵選擇——斯坦福CS229機器學習個人總結(四)

這一份總結裡的主要內容不是演算法,是關於如何對偏差和方差進行權衡、如何選擇模型、如何選擇特徵的內容,通過這些可以在實際中對問題進行更好地選擇與修改模型。 1、學習理論(Learning theory) 1.1、偏差/方差(Bias/variance)

總結 特徵選擇(feature selection)演算法筆記

什麼是特徵選擇 特徵選擇也稱特徵子集選擇,或者屬性選擇,是指從全部特診中選取一個特徵子集,使構造出來的模型更好。為什麼要做特徵選擇在機器學習的實際應用中,特徵數量往往較多,其中可能存在不相關的特徵,特徵之間也可能存在相互依賴,容易導致: 特徵個數越多,分析特徵、訓練模型所需

文字分類特徵選擇方法

一個系一個特徵t,系統有它和沒它的時候資訊量各是多少,兩者的差值就是這個特徵給系統帶來的資訊量統越是有序,資訊熵就越低;反之,一個系統越亂,資訊熵就越高。所以,資訊熵也可以說是系統有序化程度的一個衡量。資訊增益(特徵的)是指期望資訊或者資訊熵的有效減少量。對於一個特徵t,系統有它和沒它的時候資訊量各是多少,兩

文字挖掘之降維技術之特徵選擇

1、為什麼要進行降維處理? 1.多重共線性--預測變數之間相互關聯。多重共線性會導致解空間的不穩定,從而可能導致結果的不連貫。 2.高維空間本身具有稀疏性。一維正態分佈有68%的值落於正負標準差之間

特徵選擇演算法總結

1 綜述 (1) 什麼是特徵選擇 特徵選擇 ( Feature Selection )也稱特徵子集選擇( Feature Subset Selection , FSS ) ,或屬性選擇( Attribute Selection ) ,是指從全部特徵中選取一個特徵子集,使構

文字挖掘之特徵選擇(python 實現)

http://www.cnblogs.com/wangbogong/p/3251132.html 機器學習演算法的空間、時間複雜度依賴於輸入資料的規模,維度規約(Dimensionality reduction)則是一種被用於降低輸入資料維數的方法。維度規約可以分為兩類

Python進行文字預處理(文字分詞,過濾停用詞,詞頻統計,特徵選擇文字表示)

系統:win7 32位 分詞軟體:PyNLPIR 整合開發環境(IDE):Pycharm 功能:實現多級文字預處理全過程,包括文字分詞,過濾停用詞,詞頻統計,特徵選擇,文字表示,並將結果匯出為WEKA能夠處理的.arff格式。 直接上程式碼: #!/usr/bin/

文字特徵選擇中學習到的東西——構建詞典

這一段時間在學習從以標註好的文字中生成詞典。 今天讀到的這段程式碼,真的學習到了很多。 indexes=[1]表示要訓練的指標項,預設為1,也可以是其他,如[3,4,5]等等。 首先讀到的這段程式碼(python): f= file(filename

機器學習經典演算法總結(3)——特徵選擇

一、特徵的分類1. 相關特徵:對當前學習任務有用的屬性。2. 無關特徵:對當前學習任務沒有用的屬性。3. 冗餘特徵:包含的資訊能從其他特徵中推演出來,冗餘特徵有時候不起作用,有時候則是有益的,對應了學習任務所需的“中間變數”。二、特徵選擇1. 概念:從給定的特徵集合中選擇出相