1. 程式人生 > >文字特徵選擇的關鍵演算法總結

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

一、特徵詞選擇與特徵詞權重關係

開始學文字分類的時候經常要搞暈特徵詞選擇和特徵詞權重 這兩個東西,因為兩者都要進行量化,很容易認為特徵詞選擇就是計算權重,因此我認為有必要先搞清楚這兩個概念。

兩者的區別 :特徵詞選擇是為了降低文字表示的維度,而特徵詞權重是為了表示文字表示中每一個特徵項的重要程度。

特徵詞的選擇演算法 有:文字特徵選擇的演算法有基於文件頻率 (Document Frequency) 、資訊增益 (Information Gain, IG) 、開方擬和檢驗方法 (CHI 統計 ) 、互資訊 (mutual Information) 、潛在語義分析LSA、期望值交叉算熵、文字證據權、

term strength(TS) GSS Coefficient odds ratio等;

特徵詞的權值 (即所謂的文字表示)計算有:TF-IDF,TF的改進,資訊熵的引用等[1] 。這個將在下篇進行分析一下。

二、特徵詞權重選擇方法分析

以下分別分析一下特徵詞的選擇演算法,由於資訊增益是很有效的特徵選擇方法,因此,將給出資訊增益的java程式碼。

1. 基於文件頻率(DF)

在文件頻率方法中,使用特徵詞在一個類別中出現的文件數來表示這個特徵詞與該類別的相關度。出現的文件數多的特徵詞被保留的可能性大。顯然,文件頻率方法實現最簡單、演算法複雜度最低,而且 DF

方法與其他幾種方法的分類效能也差不多。

計算公式:DFterm :特徵詞term在某一類中的所有文件出現的次數。

改進公式:[2]


缺點:待補充

2. 互資訊 (mutual Information)

在互資訊演算法中,採用計算特徵詞 t 和類別 c 之間的相關度:


其中, A 為在類別 c 中特徵詞 t 出現的文件數; B 為在除了類別 c 的其他類別中特徵詞 t 出現的文件數; C 為在類別 c 中特徵詞 t 未出現的文件數; N 為所有類別中的文件數的總和。如果共有 m 個類別,那麼每個特徵詞將得到 m 個相關度值,取這

m 個值的平均值作為每個特徵詞的權值,權值大的特徵詞被保留的可能性大。

缺點:待補充

3. 資訊增益 (Information Gain)

資訊增益 (IG) 是公認較好的特徵選擇方法,它刻畫了一個詞語在文字中出現與否對文字情感分類的影響,即一個詞語在文字中出現前後的資訊嫡之差。某個詞語的資訊增益值越大,說明它對分類的貢獻就越大。資訊增益的計算見公式:



 

P(Ci) ,表示類別 Ci 出現的概率,其實只要用 1 除以類別總數就得到了(這是說你平等的看待每個類別而忽略它們的大小時這樣算,如果考慮了大小就要把大小的影響加進去)。

P(t) ,就是特徵 t 出現的概率,只要用出現過 t 的文件數除以總文件數就可以了

P(Ci|t) 表示出現 t 的時候,類別 Ci 出現的概率,只要用出現了 T 並且屬於類別 Ci 的文件數除以出現了 T 的文件數就可以了[3]



 

	/**
	 * @param j
	 * @return double
	 * 
	 */
	private double getFirstPart(int j) {
		double sum = 0;
		for (int i = 0; i < C; i++) {
			//log2(P(cj)) = ln(P(cj))/ln(2);
			sum += P_C(i) * (Math.log(P_C(j)) / Math.log(2));
			
		}
		return -sum;
	}
 



 

	/**
	 * @param j
	 * @return double
	 * TC[][] represents the number of documents including the term j and belonging to Classification j
	 */
	private double getSecondPart(int j) {
		double sum = 0;
		//P_Tj represents P(tj) which is the probability of the documents including term j  
		//That is , P(tj) = documents including term j / the total number of documents
		double P_Tj = this.P_t(j);
		for (int i = 0; i < C; i++) {
			if (TC[j][i] == 0)
				TC[j][i] = 1;
			//log2(TC) = ln(TC)/ln(2);
			sum += (double) TC[j][i]
					* ((double) Math.log(TC[j][i]) / (double) Math.log(2));
			
		}
		return P_Tj * sum;
	}
 



 

	/**
	 * @param j
	 * @return   double
	 * 
	 */
	private double getThirdPart(int j) {
		//p(tj) = 1 - p(t_barj)
		double P_t_bar_j = this.P_t_bar(j);
		double sum = 0.0;

		//T_barC = number of classifications -  number of docs including Term i and belonging to Classification j
		for (int i = 0; i < C; i++) {
			if (T_barC[j][i] == 0)
				T_barC[j][i] = 1;
			sum += (double) T_barC[j][i]
					* ((double) Math.log(T_barC[j][i]) / (double) Math.log(2));
		}

		return P_t_bar_j * sum;
	}
 

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

4. 開方擬和檢驗方法 (CHI 統計 )

開方檢驗最基本的思想就是通過觀察實際值與理論值的偏差來確定理論的正確與否。



 

缺點:待補充

5. 潛在語義分析LSA

LSA思想方法最初應用於文字資訊檢索領域有效地解決了同義詞和多義詞的問題,通過識別文字中的同義詞, LSA將資訊檢索精度提高了10%--30%

隨著應用領域的不斷拓展, LSI在資訊過濾、資訊分類/聚類、交叉語言檢索、資訊理解、判斷和預測等眾多領域中得到了廣泛的應用。(語義,降維)[4]


計算奇異值矩陣,可以通過maltab svd 命令來解。

缺點:待補充

參考資料:

[1]. 馮長遠, 普傑信 Web 文字特徵選擇演算法的研究

[2]. 楊凱峰,張毅坤,李燕  基於文件頻率的特徵選擇方法

[4]. 楊建武 文字特徵提取技術

CSDN:http://blog.csdn.net/techq

百度:http://hi.baidu.com/futrueboy/home

javaeye:http://futrueboy.iteye.com/

聯絡方式:[email protected]

相關推薦

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

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

總結 | 常用文字特徵選擇

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

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

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

特徵選擇mRMR演算法程式碼實現及安裝下載

演算法程式碼實現連線可以直接下載解壓執行,在mac或者Linux系統下:https://github.com/csuldw/MachineLearning/tree/master/mRMR    要看懂result.out檔案結果中,有兩個關鍵字:*** MaxRel fea

卡方檢驗文字特徵選擇

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

簡單選擇排序演算法總結

簡單選擇排序演算法思路如下: 從頭至尾掃描序列,找到最小的的元素和第一個元素交換,接著從剩下的記錄中繼續這樣選擇和交換,最終使序列有序。 程式碼如下:package test; import java.util.Arrays; public class InsertSo

特徵選擇常用演算法綜述

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

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

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

特徵選擇演算法總結

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

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

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

特徵選擇(2):mRMR特徵選擇演算法(matlab程式碼實現)

mRMR是什麼 是基於最大相關最小冗餘的特徵選擇方法。 要點:1.相關是特徵列與類標的相關性,也可以值特徵之間的相關性,通常來說,特徵與類標相關性越高,說明這個特徵越重要。則選擇這個特徵,這就是最大相關。 2.最小冗餘:特徵選擇的目的就是減少分類器的負擔,減少不需要的特徵。而兩個特徵之間

特徵選擇——Matrix Projection演算法研究與實現

內容提要 引言 MP特徵選擇思想 MP特徵選擇演算法 MP特徵選擇分析 實驗結果 分析總結 引言   一般選擇文字的片語作為分類器輸入向量的特徵語義單元,而作為單詞或詞語的片語,在任何一種語言中都有數萬或數十萬個。另外

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

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

基於互資訊的特徵選擇演算法MATLAB實現

在概率論和資訊理論中,兩個隨機變數的互資訊(Mutual Information,簡稱MI)或轉移資訊(transinformation)是變數間相互依賴性的量度。不同於相關係數,互資訊並不侷限於實值隨機變數,它更加一般且決定著聯合分佈 p(X,Y) 和分解的邊緣分佈的乘積 p(X)p(

特徵選擇演算法--Relief與ReliefK

本文轉載自:https://blog.csdn.net/ferrarild/article/details/18792613 1:Reiief Relief演算法最早由Kira提出,最初侷限於兩類資料的分類問題。Relief演算法是一種特徵權重演算法(Feature weighting

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

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

排序演算法總結-選擇排序、插入排序、歸併排序和快速排序

  前言:   感覺好久沒寫部落格了,十月份的計劃是:要開始深入攻克資料結構和演算法,耽誤好久了,這都月末了,抓緊時間又學習了一波,趕緊來分享了一下,使用的語言是C++,最開始學資料結構一定要用C,掌握紮實之後,想學演算法,用C++比較好,C封裝沒有那麼好,寫起來沒有那麼容易了。   一、準備工作   

基於模因框架的包裝過濾特徵選擇演算法

#引用 ##LaTex @ARTICLE{4067093, author={Z. Zhu and Y. S. Ong and M. Dash}, journal={IEEE Transactions on Systems, Man, and Cybernetic

微陣列資料特徵選擇的模因演算法

#引用 ##LaTex @inproceedings{Zhu:2007:MAF:1418707.1418870, author = {Zhu, Zexuan and Ong, Yew-Soon}, title = {Memetic Algorithms for

八大演算法總結之穩定性的比較及演算法選擇

各種演算法的穩定性、時間複雜度、空間間複雜度的分析: 1.穩定:氣泡排序、直接插入排序、二分插入排序、歸併排序、基數排序和桶排序。 2.不穩定:直接選擇排序、快速排序、希爾排序、堆排序。 3.O(n^2):直接插入排序、簡單選擇排序、氣泡排序。 4.O(nlog