Task3

TF-IDF原理

TF-IDF(term frequency–inverse document frequency)是一種用於信息檢索與數據挖掘的常用加權技術。TF意思是詞頻(Term Frequency),IDF意思是逆文本頻率指數(Inverse Document Frequency)。TF-IDF的主要思想是:如果某個詞或短語在一篇文章中出現的頻率TF高,並且在其他文章中很少出現,則認爲此詞或者短語具有很好的類別區分能力,適合用來分類。
TF(i,j)=ni,jsumkni,k TF(i,j) = \frac{n_{i,j}}{sum_kn_{i,k}}
IDF(x)=logN+1N(x)+1+1 IDF(x) = log \frac{N+1}{N(x)+1} +1

文本矩陣化,使用詞袋模型,以TF-IDF特徵值爲權重

from sklearn.feature_extraction.text import TfidfTransformer  
from sklearn.feature_extraction.text import CountVectorizer  

corpus=["昔人已乘黃鶴去此地空餘黃鶴樓",
        "黃鶴一去不復返白雲千載空悠悠",
        "晴川歷歷漢陽樹芳草萋萋鸚鵡洲",
        "日暮鄉關何處是煙波江上使人愁"] 

vectorizer=CountVectorizer(analyzer='char')

transformer = TfidfTransformer()
tfidf = transformer.fit_transform(vectorizer.fit_transform(corpus))  
print(tfidf)

結果爲:

  (0, 22)	0.268825757873
  (0, 6)	0.211945315273
  (0, 18)	0.268825757873
  (0, 3)	0.268825757873
  (0, 45)	0.423890630547
  (0, 43)	0.423890630547
  (0, 13)	0.211945315273
  (0, 28)	0.268825757873
  (0, 14)	0.268825757873
  (0, 35)	0.211945315273
  (0, 8)	0.268825757873
  (0, 27)	0.268825757873
  (1, 45)	0.207144375583
  (1, 43)	0.207144375583
  (1, 13)	0.207144375583
  (1, 35)	0.207144375583
  (1, 0)	0.262736374632
  (1, 2)	0.262736374632
  (1, 16)	0.262736374632
  (1, 40)	0.262736374632
  (1, 34)	0.262736374632
  (1, 5)	0.262736374632
  (1, 11)	0.262736374632
  (1, 39)	0.262736374632
  (1, 19)	0.525472749264
  :	:
  (2, 17)	0.235702260396
  (2, 12)	0.471404520791
  (2, 29)	0.235702260396
  (2, 41)	0.235702260396
  (2, 26)	0.235702260396
  (2, 36)	0.235702260396
  (2, 37)	0.235702260396
  (2, 38)	0.471404520791
  (2, 44)	0.235702260396
  (2, 42)	0.235702260396
  (2, 32)	0.235702260396
  (3, 6)	0.213618567332
  (3, 21)	0.270948065942
  (3, 25)	0.270948065942
  (3, 4)	0.270948065942
  (3, 10)	0.270948065942
  (3, 7)	0.270948065942
  (3, 15)	0.270948065942
  (3, 23)	0.270948065942
  (3, 33)	0.270948065942
  (3, 31)	0.270948065942
  (3, 30)	0.270948065942
  (3, 1)	0.270948065942
  (3, 9)	0.270948065942
  (3, 20)	0.270948065942

互信息的原理

互信息衡量的是兩個隨機變量之間的相關性,即一個隨機變量中包含的關於另一個隨機變量的信息量,公式爲
I(X;Y)=xXyYp(x,y)logp(x,y)p(x)p(y) I(X;Y) = \sum_{x\in X} \sum_{y \in Y}p(x,y)log\frac{p(x,y)}{p(x)p(y)}

使用第二步生成的特徵矩陣,利用互信息進行特徵篩選

from sklearn import metrics as mr
mr.mutual_info_score(label,x)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章