任务描述:
TF-IDF原理以及利用其进行特征筛选
互信息的原理以及利用其进行特征筛选
TFIDF原理简介
TFIDF一类用于计算单词在文章中重要程度的方法,分为两个部分,一部分是TF表示词频(通常会进行归一化,防止文章长度影响),另一部分IDF逆文档频率,用于降低不同文档中经常出现单词的权重。
计算公式
T
F
=
某
个
单
词
在
文
章
出
现
的
次
数
文
章
的
总
词
汇
TF=\frac{某个单词在文章出现的次数}{文章的总词汇}
TF=文章的总词汇某个单词在文章出现的次数
I
D
F
=
l
o
g
(
语
料
库
的
文
档
总
数
包
含
该
单
词
的
文
档
数
+
1
)
IDF=log(\frac{语料库的文档总数}{包含该单词的文档数+1})
IDF=log(包含该单词的文档数+1语料库的文档总数)
T
F
−
I
D
F
=
T
F
∗
I
D
F
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 ) l o g p ( 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)} I(X;Y)=x∈X∑y∈Y∑p(x,y)logp(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)
参考资料
https://www.cnblogs.com/pinard/p/6693230.html
https://www.jianshu.com/p/f3b92124cd2b
https://www.jianshu.com/p/362cb98ed586
https://blog.youkuaiyun.com/u013710265/article/details/72848755