tf-idf原理以及利用其進行特徵篩選
互資訊的原理以及利用其進行特徵篩選
tfidf原理簡介
tfidf一類用於計算單詞在文章中重要程度的方法,分為兩個部分,一部分是tf表示詞頻(通常會進行歸一化,防止文章長度影響),另一部分idf逆文件頻率,用於降低不同文件中經常出現單詞的權重。
計算公式
t f=
某個單詞
在文章出
現的次數
文章的總
詞彙
tf=\frac
tf=文章的
總詞彙某
個單詞在
文章出現
的次數
i df
=log
(語料庫
的文件總
數包含該
單詞的文
檔數+1
)idf=log(\frac)
idf=lo
g(包含
該單詞的
文件數+
1語料庫
的文件總
數)tf−
idf=
tf∗i
df
tf-idf=tf * idf
tf−idf
=tf∗
idf使用範例
from sklearn import feature_extraction
from sklearn.feature_extraction.text import tfidftransformer
from sklearn.feature_extraction.text import countvectorizer
if __name__ ==
"__main__"
: corpus =
['this is the first document.'
,'this is the second second document.'
,'and the third one.'
,'is this the first document?',]
vectorizer=countvectorizer(
)#該類會將文字中的詞語轉換為詞頻矩陣,矩陣元素a[i][j] 表示j詞在i類文字下的詞頻
transformer=tfidftransformer(
)#該類會統計每個詞語的tf-idf權值
tfidf=transformer.fit_transform(vectorizer.fit_transform(corpus)
)#第乙個fit_transform是計算tf-idf,第二個
tfidf.toarray(
)array([[
0.,0.43877674
,0.54197657
,0.43877674,0
.,0.
,0.35872874,0
.,0.43877674],
[0.,
0.27230147,0
.,0.27230147,0
.,0.85322574
,0.22262429,0
.,0.27230147],
[0.55280532,0
.,0.
,0.,
0.55280532,0
.,0.28847675
,0.55280532,0
.],[
0.,0.43877674
,0.54197657
,0.43877674,0
.,0.
,0.35872874,0
.,0.43877674]]
)
互資訊原理簡介
在文字特徵篩選中,互資訊常用的方法是計算文件中的詞項t與文件類別c的互資訊mi,mi度量的是詞的存在與否給類別c帶來的資訊量。
計算公式
i (x
;y)=
∑x∈x
∑y∈y
p(x,
y)lo
gp(x
,y)p
(x)p
(y
)i(x;y)=\sum_ \sum_p(x,y)log\frac
i(x;y)
=x∈x
∑y∈
y∑p
(x,y
)log
p(x)
p(y)
p(x,
y)
使用範例,使用上面tfidf計算的x作為特徵
from sklearn import datasets
from sklearn.feature_selection import mutual_info_classif
from sklearn import datasets
from sklearn import metrics as mr
x = tfidf.toarray(
)label = np.array([1
,1,1
,0])
mutual_info = mutual_info_classif(x, label, discrete_features=
false
)print
(mutual_info)
參考資料 特徵工程(3) 特徵選擇 資訊增益
資訊增益,基於資訊熵來計算,它表示資訊消除不確定性的程度,可以通過資訊增益的大小為變數排序進行特徵選擇。資訊量與概率呈單調遞減關係,概率越小,資訊量越大。資訊量的數學定義如下式所示,u表示傳送的資訊,則 資訊熵表示資訊量的數學期望,是信源發出資訊前的平均不確定性,也稱為先驗熵。資訊熵的定義如下式所示...
特徵選擇 單變數特徵選擇
1.selectkbest可以依據相關性對特徵進行選擇,保留k個評分最高的特徵。方差分析 分類問題使用f classif,回歸問題使用f regression。f classif 分類任務 跟目標的分類,將樣本劃分成n個子集,s1,s2,sn,我們希望每個子集的均值 1,2,n不相等。我們假設h0 ...
特徵選擇的3種方法
過濾器方法,這種方法首先選定特徵,再來進行學習。根據每乙個屬性的一些指標 如方差等 來確定這個屬性的重要程度,然後對所有屬性按照重要程度排序,從高到低的選擇屬性。選定了屬性以後,再來進行訓練。比如fisher score laplacian score等。這種方法其實不大好,因為決定特徵選擇效果的不...