前文提到过,除了分类算法以外,为分类文本作处理的特征提取算法也对最终效果有巨大影响,而特征提取算法又分为特征选择和特征抽取两大类,其中特征选择算法有互信息,文档频率,信息增益,开方检验等等十数种,这次先介绍特征选择算法中效果比较好的开方检验方法。
大家应该还记得,开方检验其实是数理统计中一种常用的检验两个变量独立性的方法。(什么?你是文史类专业的学生,没有学过数理统计?那你做什么文本分类?在这捣什么乱?)
开方检验最基本的思想就是通过观察实际值与理论值的偏差来确定理论的正确与否。具体做的时候常常先假设两个变量确实是独立的(行话就叫做“原假设”),然后观察实际值(也可以叫做观察值)与理论值(这个理论值是指“如果两者确实独立”的情况下应该有的值)的偏差程度,如果偏差足够小,我们就认为误差是很自然的样本误差,是测量手段不够精确导致或者偶然发生的,两者确确实实是独立的,此时就接受原假设;如果偏差大到一定程度,使得这样的误差不太可能是偶然产生或者测量不精确所致,我们就认为两者实际上是相关的,即否定原假设,而接受备择假设。
那么用什么来衡量偏差程度呢?假设理论值为E(这也是数学期望的符号哦),实际值为x,如果仅仅使用所有样本的观察值与理论值的差值x-E之和
来衡量,单个的观察值还好说,当有多个观察值x1,x2,x3的时候,很可能x1-E,x2-E,x3-E的值有正有负,因而互相抵消,使得最终的结果看上好像偏差为0,但实际上每个都有偏差,而且都还不小!此时很直接的想法便是使用方差代替均值,这样就解决了正负抵消的问题,即使用
这时又引来了新的问题,对于500的均值来说,相差5其实是很小的(相差1%),而对20的均值来说,5相当于25%的差异,这是使用方差也无法体现的。因此应该考虑改进上面的式子,让均值的大小不影响我们对差异程度的判断
式(1)
上面这个式子已经相当好了。实际上这个式子就是开方检验使用的差值衡量公式。当提供了数个样本的观察值x1,x2,……xi ,……xn之后,代入到式(1)中就可以求得开方值,用这个值与事先设定的阈值比较,如果大于阈值(即偏差很大),就认为原假设不成立,反之则认为原假设成立。
在文本分类问题的特征选择阶段,我们主要关心一个词t(一个随机变量)与一个类别c(另一个随机变量)之间是否相互独立?如果独立,就可以说词t对类别c完全没有表征作用,即我们根本无法根据t出现与否来判断一篇文档是否属于c这个分类。但与最普通的开方检验不同,我们不需要设定阈值,因为很难说词t和类别c关联到什么程度才算是有表征作用,我们只想借用这个方法来选出一些最最相关的即可。
此时我们仍然需要明白对特征选择来说原假设是什么,因为计算出的开方值越大,说明对原假设的偏离越大,我们越倾向于认为原假设的反面情况是正确的。我们能不能把原假设定为“词t与类别c相关“?原则上说当然可以,这也是一个健全的民主主义社会赋予每个公民的权利(笑),但此时你会发现根本不知道此时的理论值该是多少!你会把自己绕进死胡同。所以我们一般都使用”词t与类别c不相关“来做原假设。选择的过程也变成了为每个词计算它与类别c的开方值,从大到小排个序(此时开方值越大越相关),取前k个就可以(k值可以根据自己的需要选,这也是一个健全的民主主义社会赋予每个公民的权利)。
好,原理有了,该来个例子说说到底怎么算了。
比如说现在有N篇文档,其中有M篇是关于体育的,我们想考察一个词“篮球”与类别“体育”之间的相关性(任谁都看得出来两者很相关,但很遗憾,我们是智慧生物,计算机不是,它一点也看不出来,想让它认识到这一点,只能让它算算看)。我们有四个观察值可以使用:
1. 包含“篮球”且属于“体育”类别的文档数,命名为A
2. 包含“篮球”但不属于“体育”类别的文档数,命名为B
3. 不包含“篮球”但却属于“体育”类别的文档数,命名为C
4. 既不包含“篮球”也不属于“体育”类别的文档数,命名为D
用下面的表格更清晰:
特征选择
|
1.属于“体育”
|
2.不属于“体育”
|
总 计
|
1.包含“篮球”
|
A
|
B
|
A+B
|
2.不包含“篮球”
|
C
|
D
|
C+D
|
总 数
|
A+C
|
B+D
|
N
|
如果有些特点你没看出来,那我说一说,首先,A+B+C+D=N(这,这不废话嘛)。其次,A+C的意思其实就是说“属于体育类的文章数量”,因此,它就等于M,同时,B+D就等于N-M。
好,那么理论值是什么呢?以包含“篮球”且属于“体育”类别的文档数为例。如果原假设是成立的,即“篮球”和体育类文章没什么关联性,那么在所有的文章中,“篮球”这个词都应该是等概率出现,而不管文章是不是体育类的。这个概率具体是多少,我们并不知道,但他应该体现在观察结果中(就好比抛硬币的概率是二分之一,可以通过观察多次抛的结果来大致确定),因此我们可以说这个概率接近
(因为A+B是包含“篮球”的文章数,除以总文档数就是“篮球”出现的概率,当然,这里认为在一篇文章中出现即可,而不管出现了几次)而属于体育类的文章数为A+C,在这些个文档中,应该有
篇包含“篮球”这个词(数量乘以概率嘛)。
但实际有多少呢?考考你(读者:切,当然是A啦,表格里写着嘛……)。
此时对这种情况的差值就得出了(套用式(1)的公式),应该是
同样,我们还可以计算剩下三种情况的差值D12,D21,D22,聪明的读者一定能自己算出来(读者:切,明明是自己懒得写了……)。有了所有观察值的差值,就可以计算“篮球”与“体育”类文章的开方值
把D11,D12,D21,D22的值分别代入并化简,可以得到
相关推荐
matlab编写的文本分类的程序,可以对已经分好词的文本进行分类,先自己导入数据,用libsvm中的svm进行分类和预测,特征用tfidf算法,还利用卡方检验进行了特征选择,可自行设定阈值。
FCBF算法是基于显著的思想,采用后向顺序搜索策略快速有效地寻找最优特征子集的特征选择方法,它采用对称不确定性作为相关程度度量标准,每次选择一个显著特征并删除它的所有冗余特征。
“特征选择算法”是专门用于从大量特征中筛选出最优子集的算法,如递归特征消除(RFE)、基于卡方检验的选择、互信息法等。这些算法可以帮助我们降低过拟合风险,提高模型的预测性能,并有助于理解哪些特征对结果...
ReliefF算法是一种基于实例的特征选择方法,它在机器学习和数据挖掘领域广泛应用,尤其在高维数据处理中表现出色。此算法的核心思想是评估每个特征对于区分不同类别的能力,通过计算近邻和远邻样本之间的差异来确定...
本主题探讨的是利用遗传算法(Genetic Algorithm, GA)进行特征选择的方法,这在【标题】"GA_feature_selector_遗传算法特征_特征提取_遗传算法_"中得到了体现。遗传算法是一种模拟生物进化过程的全局优化技术,它在...
总结,Relief特征选择算法通过衡量实例之间的特征差异来评估其重要性,适用于多类别分类问题,能有效地处理高维数据。在MATLAB中实现该算法,需要对数据进行处理,定义距离度量,更新特征权重,并最终选取重要特征。...
在"PyCNN_SVM分类_python文本分类_文本分类_文本分类_语义_"这个项目中,开发者使用了Python编程语言实现了一个结合词嵌入(PyCNN)和支持向量机(SVM)的文本分类模型,主要关注语义识别,以提升分类的准确性。...
综上所述,"Bias_algorithm_java.zip" 文件包提供的是一种在Java环境下针对贝叶斯分类器的优化实现,可能涉及到了特征选择、概率模型改进、类偏置处理等策略,以提高文本分类的准确性和效率。通过深入理解这些概念和...
为了实现这一目标,文本分类的核心在于特征提取,而IG(信息增益)法作为其中一种有效工具,已广泛应用于文本特征选择中。 信息增益法是一种基于熵的概念来衡量特征重要性的度量方法,最初用于决策树的构建。在文本...
ReliefF算法是一种经典的特征选择方法,特别是在医学和生物信息学领域中广泛应用,例如在乳腺癌的诊断和预测中。该算法的核心目标是通过衡量特征对实例分类的影响,来识别出那些对分类最有区分力的特征。在特征选择...
**KNN(K-最近邻)算法在文本分类中的应用** K-最近邻(K-Nearest Neighbor,简称KNN)是一种基础且重要的监督学习算法,广泛应用于分类和回归问题中。在文本分类领域,KNN算法通过计算新文本与训练集中已有文本...
3. 特征选择:找出对分类最有影响的特征,可以使用相关性分析、主成分分析(PCA)等方法。 4. 划分数据:将数据分为训练集和测试集,训练集用于训练模型,测试集用于评估模型性能。 5. 模型训练:使用选择的分类算法...
GA_feature_selector_遗传算法特征_特征提取_遗传算法_源码.zip
在文本分类中,贝叶斯算法通过计算文本特征与预定义类别的条件概率,来预测新文本所属的类别。在中文环境中,由于词汇丰富性和语法特性,文本分类更具挑战性,但贝叶斯算法因其简单高效的特点,依然被广泛应用。 该...
算法从训练集D中选择一个样本R,然后从和R同类的样本中寻找最近邻样本H,称为Near Hit,从和R不同类的样本中寻找最近样本M,称为Near Miss,根据以下规则更新每个特征的权重: 如果R和Near Hit在某个特征上的距离...
它之所以被称为“朴素”,是因为该分类器在计算条件概率时,假设了所有特征相互独立。这一简化假设虽然有助于加快计算速度,但也限制了模型处理复杂数据关系的能力。 当将贝叶斯分类器应用于实际时,对其性能的评估...
本项目“图片分类_grew3en_支持向量机_分类_图片分类算法_图片分类”专注于实现多种图片分类算法,其中包括决策树、支持向量机(SVM)以及随机森林等经典机器学习方法。 1. **支持向量机(Support Vector Machine, ...
在当前的文本分类方法中,通常结合词袋模型、TF-IDF、n-gram、词向量(如Word2Vec、GloVe)等特征表示方法,再利用监督学习算法(如朴素贝叶斯、支持向量机、深度学习模型如CNN和RNN)进行训练,以找到最优的分类...
**LD文本比较算法** LD(Levenshtein Distance)算法,又称编辑距离,是由俄国科学家Vladimir Levenshtein在1965年提出的一种衡量两个字符串相似度的算法。该算法通过计算将一个字符串转换成另一个字符串所需的最少...