文本分类的常见方法Word格式.docx
- 文档编号:20452887
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:14
- 大小:249.94KB
文本分类的常见方法Word格式.docx
《文本分类的常见方法Word格式.docx》由会员分享,可在线阅读,更多相关《文本分类的常见方法Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
而根据简化的合理程度,影响我们得到的结果质量。
向量空间的降维则需要进行特征项的筛选:
筛选方法有五种:
文档频率、信息增益、期望交叉熵、互信息、开放检验。
就好像在软件开发阶段越早引入缺陷后期的Bug数量越多一样,上游的污染源造成的危害要大得多。
如果我们要对数据源进行筛选,则筛选的规则一定要是非常严谨合理的,正确的数据合理的算法才有可能得到好的结果。
文档频率DocumentFrequence特征在特征集中出现的文档数目过多,则不能很好的区分不同的类别;
特征在特征集中出现的文档数目过少,则它不具备很好的代表性。
我们统计单词的出现频率,将频率过高和过低的词语过滤掉。
信息增益
其中c表示文档类别t表示特征项,描述的是在特征项t的前提下确定文档属于c的概率,表征的是该文档使用特征项t来区分类别c的能力。
(其实三项加和的首项不太明白什么意思,而且在特征项的筛选阶段,即尚未计算分类的情况下文档类别c是怎么回事?
)
这里首项表示整个事件的信息量,也可以认为它表示整个事件的未知程度,或者叫做消除整个事件的位置性,需要的信息量,比如该事件有8种等可能的情况,则我们要确定该事件具体出现哪种情况,则需要3的信息量;
而若有两种等可能的情况,则要1的信息量。
感性来讲,2猜1,要比8猜1容易的多。
具体到公式,后边的对数部分表示信息的量化过程,说的是比如我们要表示两个数,需要一位,而要表示八个数,需要3位;
因为对数函数在0~正无穷是递增函数,但在0~1之间函数值为负数,所以我们添加负号将值映射到>
0区间。
这里互信息,表示知道某些条件之后,事情的不确定性降低的程度。
衡量的是情报的优劣。
举个简单的例子,这就好像我们玩竞猜游戏,随着主持人对某件事情描述信息的增多,我们渐渐可以准确判断某件事情,而主持人的描述信息中有些很关键,有些则相对平淡,这里主持人的关键描述的互信息就比较高:
因为可以很大程度消除事物的不确定性。
这里信息增益考虑的比较全面,它考虑了条件t发生和没有发生对整个事件的影响状况,分为两部分,第一部分为条件t发生时,对整个事件的熵的影响;
第二部分为确定条件t不发生时,整个事件的熵。
首先是让t发生之后,计算在t的条件下能够推断属于类别ci的概率。
这里具体到文本分类则为,特征项t的出现与否,在t出现后确定这篇文章属于类别c的概率是多少。
就是看t的出现对该文档属于哪一个类别的判定出现了哪些影响;
并且信息增益不仅考虑可相关情况,也考虑了负相关的状况,在t确定不出现时,它对该文档的类别判定又能起到什么效果。
这样综合考量t的效果。
不过这里也有个问题就P(t)表示特征项的出现与否可能并不合适,这里我们可以设置阈值,具体计算出现>
某个次数我们认为它表示出现。
至于特征项筛选中多次提到的类别c我们认为这是训练样本已知的,即有监督的分类,我们将事先分类好的样本来训练分类器,期望能够训练出好的分类器。
期望交叉熵
表示已知文档中出现了t特征,则能确定该文档为类别c的概率。
我们能看到公式与t条件下为类别c的条件概率成正比,与无已知条件,文档为类别c的概率成反比。
简单来说就是,如果公式的计算值很大,则特征t信息量很大,能够帮助我们确定该文档属于类别c这种小概率事件。
(
很大、
很小,公式取到较大值)
互信息
两个圆我们可以把它看作两个集合,分别为类别c的文档集合以及出现特征t的文档集合,则公式中的A、B、C可以用两圆相交形成的三部分表示。
可见两者相交部分越多A越大,公式的分子越大,分母越小,函数值越大。
即文档c和类别t的关联程度高。
开放检验
这里和期望交叉熵是类似的,由三个图形形成四个集合,矩形表示整个文档集合,两个圆和上边的含义相同,分成的四个集合分别为A、B、C、D。
强调的是特征的负相关特性,即表示出现特征t时,不属于类别c的概率较大。
开放检验与信息增益相同,都是考虑了事物的两个方面。
这里我们举例来阐述公式的由来。
这里我们假设考虑词汇“篮球”和体育类新闻的关系,其中:
A表示体育类新闻中出现篮球的新闻集合;
B表示体育类中没有出现篮球的集合;
C表示出现词汇篮球但是非体育类的集合;
D表示非体育类新闻未出现篮球的集合。
A+B表示体育类总数;
C+A表示出现词汇篮球的总数。
N=A+B+C+D
这里进行测试的类别和特征项将整个文档集合划分为四个部分:
ABCD。
我们假设篮球特征项和体育类别并不相关,则篮球应该在体育类内外都是均匀分布的(即样本足够大的情况下,概率接近频率,篮球并不因体育类别的影响而出现更多或者更少)
A-(A+C)/N*(A+B)则表示若篮球和体育无关,篮球会出现在体育类的新闻数量的数学期望,实际为A所以我们可以用实际值和数学期望之间的方差来表示,篮球和体育之间的关系。
方差越大,说明篮球因为体育类而出现的次数更多,期望和实际值差距越大,相关程度越大。
而开放检验不仅比较正相关的情况还比较负相关性,考虑的方面比较多,精确度也很好。
B–(A+B)/N*(B+D)表示体育类占整体的百分比,而(A+B)/N*(B+D)非篮球类(B+D)中体育类数目的数学期望(依然是假设篮球和体育没有相关性,我们认为体育类文章在整体中是均匀出现的)
C–(A+C)/N*(C+D)
D–(B+D)/N*(C+D)
这些算的都是标准差,平方之后求和得到最终的公式。
分类方法:
朴素贝叶斯
朴素贝叶斯模型有两个假设:
所有变量对分类均是有用的,即输出依赖于所有的属性;
这些变量是相互独立的,即不相关的。
之所以称之为“朴素”,因为这些假设从未被证实过。
论文中对分类方法都是一笔带过的,对于方法的理解参考网上的帖子。
天气
温度
湿度
风向
打球
晴朗
热
高
无
不打
有
阴天
打
下雨
适中
冷
正常
上边为根据天气状况记录的打球日志,现在已知“晴朗、气温冷、湿度高、有风”,求打球和不打球的概率。
我们将已知条件记为E,E1=晴朗,E2=冷,E3=高,E4=有
下边为条件概率的推倒过程:
假设A、B相互独立(朴素贝叶斯的第一个假设),则有:
我们得到条件概率公式:
现在已知E求打球和不打球的概率,即可表示为
在指标相互独立的情况下,且结果对四个指标同等依赖(权值都为1)时(朴素贝叶斯的两个假设)
即E1~E4依次发生,展开为联乘的形式。
得到了朴素贝叶斯的公式。
这里的计算需要在已知打球的情况下计算天气为晴朗的条件概率等。
这里我们将日志整理为便于阅读的形式。
P(yes|E)*P(E)=2/9*3/9*3/9*3/9*9/14
这就是朴素贝叶斯的基本内容,当然我们在运用它的时候,要牢记它的两个假设,就好像没有绝对的自由一样,朴素贝叶斯的应用也基于一定的前提。
而结果依赖所有的指标在实际生活中极有可能不成立,比如我们选择的某个指标对结果具有指导意义的,则这便不再是等概率事件(结果平等的依赖各项指标)。
比如我们计算“阴天时打球的概率我们发现为4/4概率为1”阴天完全确定打球,与假设不相符。
这是如果我们要运用朴素贝叶斯方法,则需要处理数据的锯齿问题。
我们需要平滑数据(4~0的变换更加缓和,比如变成4.1~0.2)。
拉普拉斯估计最为简单古老,而Good-Turing则平滑效果较好。
再有就是图中举例的数据类型都是离散的,例如我们将温度归为“高中低”三类,而更加实际的情况为温度的取值是连续的变量。
这是我们通常则假设数值属性的取值服从正态分布。
朴素贝叶斯在文档分类中应用具体公式表示为:
即给定一篇文档d,计算它是类别cj的概率等于类别cj在训练文档中的概率与文档d中特征k在类别cj中出现的概率之积。
除了朴素贝叶斯的两个假设,这里依然平等的对待每个特征k(每一项权重都为1)。
但是在实际的文档当中,不同的特征项出现的频数不同,重要程度不同,再有k不应该是简单的遍历,举个例子,比如说某个特征项如果在文档d中仅出现过一次,但是在类别cj中该特征项多次出现,则计算时概率值偏大与实际值不符,出现了分类误差。
所以应该是选取文档中具有代表性的(出现频数高与某个阈值的特征项)进行计算;
或者针对不同的特征项进行权重的计算:
特征k在文档中出现的频数/特征项在类别cj中在每篇文章中平均出现的频数。
感性的描述该分类方法的话:
我认为它使用一组指标(一组特征项及其出现的频数)来描述一个事物(文档类别)。
对于未知的事物(测试文档),我们知道它的描述信息,或者它相应的指标描述(特征项及其出现的频数),通过指标的相应对比,我们判断未知文档和该类别的相似度,从而为判断未知文档的类别提供线索。
K-近邻
基本思路为将所有样本映射到一个空间内,然后通过相似度的计算比较与测试样本最近似的K个样本,选择这K个样本属于类别最多的那个类别。
针对不同的训练集合,选定映射空间与选择合适的特征和阈值K是很重要的工作。
支持向量机
支持向量机方法建立在统计学习理论的VC维理论和结构风险最小的理论基础上,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折中,以期获得最好的推广能力(泛化能力)。
VC维是对函数类型的一种度量,可以简单理解为问题的复杂程度。
VC维越高,一个问题就越复杂。
结构风险
1风险
机器学习本质上就是一种对问题真实模型的逼近(我们选择一个我们认为比较好的近似模型,这个近似模型就叫做一个假设)。
因为真实模型不知道,所以我们不知道我们的假设与问题真实解之间有多大差距。
就好比问题的真实模型是椭圆,我们可以用矩形逼近它,或者我们用圆形去逼近它,这都是可行的近似模型。
我们称假设与问题真实解之间的误差叫做风险。
2经验风险
真实风险=经验风险
我们得到一个分类器之后,由于问题的真实解我们不知道,所以真实误差无从得知,但是我们可以使用已知信息来逼近它。
我们使用分类器在样本数据的分类结果和真实结果(样本是分类明确的数据)之间的差值-经验风险来近似衡量真实风险。
所以人们都致力于最小化经验误差,比如使用更复杂的分类函数,对样本进行精确分类,但是这样做的后果就是极有可能分错训练样本之外的数据。
因为更加复杂的分类函数精确的描述刻画训练样本的特征,但是样本的数量和样本的分布使得结果却像盲人摸象一样,不能对事物的整体进行很好的描述,导致训练好的分类器泛化能力差。
真实误差!
=经验误差
3置信误差
我们使用经验误差来评估分类器在样本上的表现,使用置信误差评估我们对分类器在未知文本上分类的结果信任程度。
置信误差与两个量有关:
样本数量+VC维。
分类函数越复杂VC维越大,置信风险变大;
而样本数量越大、分布越广,则样本代表真实问题的能力越强,置信风险越小。
泛化误差界:
R(w)≤Remp(w)+Ф(n/h)
小样本、非线性、高维模式识别:
SVM产生的分类器很简洁,用到的样本信息很少(主要用称之为支持向量的样本)
线性分类器
如果一个线性函数(变量的次数为1)能够将样本完全正确的分开,就称这些数据是线性可分的,否则称为非线性可分的。
对于图中的分界线,我们使用公式:
g(x)=wx+b描述,需要注意以下三点:
1x表示向量
2这个形式是一个泛化形式适用于n维的情况
3g(x)=0就是分界线
举个例子,使用上述定义对于下图的斜线可以写为g(x)=
,其中w为列向量,x为行向量,我们将斜线中的(1,1)带入公式可得g(x)=0,将(1,2)带入可得g(x)=-1表示在分割线的上方;
同理(2,1)带入可得g(x)=1在分割线下方。
如图所示,分类线很可能是不唯一的,我们将某一条分界线进行旋转平移,在正确区分两类点集的情况下,又得到一条分界线。
我们需要指标评价分界线的好坏:
分类间隔。
它象征着分界线将两类点集划分的清晰程度。
我们将分类线向两侧平移直到有点到直线的距离为0停止,平移后的两条线间的距离则为分类间隔,如图虚线间的距离所示。
分类间隔的公式化描述为样本点到分类面距离:
几何间隔与样本的误分次数间存在关系:
公式中R为样本中最长向量的长度,代表样本的分布广泛程度。
δ为几何间隔。
误分次数代表分类器的误差。
公式标明,样本分布的越广泛,则清晰的分别两类点集难度越高,误分次数越多;
而分类间隔越大,则误分次数越小。
几何间隔和||w||成反比,因此最大化几何间隔和最小化||w||一回事。
这里我们将问题转化,固定间隔1求最小的||w||。
求函数的最小值的问题,我们称为寻优问题(也叫做规划问题)。
求最大值总是可以通过添加负号转为求最小值问题。
寻优问题最重要的就是目标函数和约束条件:
自变量是w,目标函数是w的二次函数,约束条件是w的线性函数,这类问题称为二次规划问题。
可行域(我们在约束条件划定的有限空间中寻找使得函数取得最小值的自变量,这个空间叫做可行域)是凸集(其中任取两个点连一条直线,这条线上的点仍然在这个集合内部)的二次规划称为凸二次规划。
而凸二次规划是有全局最优解的(就是从理论角度明确我们的问题是可以找到最优解的)。
分析我们的目标函数和约束条件,其实都是求w的,因为在样本已知的情况下变量为w和b,而b在w得到之后,很快也能得到(使用样本点和w结合就能计算出b)。
所以我们现在的目标就是求解w,而w由样本的位置和类别决定,直观来说,坐标系中样本的位置和类别明确的画出来,分类面我们就能找到,并通过比较,能够找到最优的一个。
所以w和样本的位置和类别相关,并根据拉格朗日的某个定理,w可以表示为如下:
w=α1y1x1+α2y2x2+…+αnynxn
我们将w带入g(x)表达式,整理得到:
核函数
前边的线性分类器讲了那么多,其实只能解决线性可分数据的情况,而核函数则通过低维向高维的映射,能够完成数据由线性不可分到线性可分的转化。
举个例子,我们把横轴上端点a和b之间红色部分里的所有点定为正类,两边的黑色部分里的点定为负类。
而二维空间里的线性函数就是指直线,显然找不到符合条件的直线。
但我们可以找到一条曲线,例如上图右侧那条:
但该函数并不是一个二维(自变量和因变量)线性函数,但它是四维空间的一个线性函数:
其中自变量y是三维的,并且次数都为1,而因变量f(y)=<
a,y>
是一维的,所以是四维空间的线性函数。
现在流程变成这样,对于线性不可分数据我们通过低维向高维映射的方式转化为线性可分的,之后使用高维的函数求解样本点到分类面的距离。
而这中间,核函数就是我们的捷径,它接受低维的输入,并产生映射后高维的向量的内积。
回想我们上节说的求一个线性分类器,它的形式应该是:
现在这个就是高维空间里的线性函数,函数的名称和’代表这是映射之后的线性函数。
我们就可以用一个低维空间里的核函数(非线性函数)来代替:
松弛化
这里主要将的是容错能力,比如上边的分类器会因为极个别的样本(很有可能是噪声)到分类面的距离无法满足大于1而无解(有A类样本点混在B类样本中)。
这是其实并不是我们的分类器不够好,而更有可能是出现了噪点,而上述分类器属于硬间隔分类器,受离散点、噪点的影响大。
我们要做的就是针对某些点允许他们到分类面的距离<
1。
引入的松弛变量,实现对噪点的容忍,变成软间隔分类。
而我们可以根据样本的分布情况,将松弛变量加入到风险评估中,表示你对离散点的重视程度。
多类别分类
就好像,我们知道两个数比较大小的方法后,相同类别的一群数字进行排序也是相似的,我们按照规则拆成两两对比的情况就可以实现排序,这中间按照规则的不同就分为冒泡排序、选择排序、快速排序、二路归并等等。
决策树
机器学习中,决策树是一个预测模型;
树中每个节点表示某个属性,而每个分叉路径代表某个可能的属性值,而每个叶节点到根节点所经历的路径表示对象的值。
从数据产生决策树的机器学习技术叫做决策树学习。
决策树就是一种依托于分类、训练上的预测树,根据已知预测未来。
其实决策树直接用例子来描述更加直观易懂。
下边给出一个根据天气情况确定每天是否打球的日志。
每天的天色、气温、湿度、风度与是否打球的的日志。
根据已知条件生成的决策树如下:
我们使用三个属性:
天色、气温、湿度、风度四个属性来描述是否打球这件事情,每个属性都有若干个属性值,而四个类别中不同的属性值组合在一起就确定了打球或不打球这件事。
非叶节点都是属性,而属性的不同属性值对应分岔路径;
叶节点为是否打球这个结果。
而叶节点到根节点的路径则可以对应产生该事件的依据。
比如sunny+high路径确定了今天不打球。
这里本来有四个属性,但是样本值偏少以至于我们实际使用三个属性就把事情的结果确定下来啦。
这就是我们的决策树表达式。
比如已知:
今天下雨、气温偏低、风力很强,我们则可以讲条件带入表达式,结果为0表示今天不打球。
决策树的生成
我们在学数据结构的时候学到,评价一棵树的好坏指标很多,比如它的深度、是否平衡等等。
同样,决策树的深度和平衡与否也影响着决策树的性能。
所以我们需要慎重考虑,使用好的策略,生成一颗优质的决策树。
我们如何确定属性在决策树中的分布?
这里使用的指标为信息增益。
这里感性的聊一聊好了,我们判断某个情报的重要程度:
通常通过获取该情报后,对某个未知事件的不确定性减小的程度。
就好像电视节目中的根据描述猜某样东西一样,随着时间的推进我们知道的信息越来越多,我们猜中的概率越来越大,未知事物的不确定性越来越小,这就得益于我们已知信息的增多。
信息增益就是描述的这条情报的重要程度。
我们以上边的打球为例,现在什么条件都不给,整个打球或不打球的集合为S=[9,5]
Entropy(S)=-9/14*log2(9/14)–5/14*log2(5/14)=0.94
若S=[7,7]Entropy(S)=1;
若S=[14,0]Entropy(S)=0
我们可以看到熵可以感性认识为某件事物的不确定性,比如打球和不打球一半一半那么熵最大为1,等概率事件不确定性最大;
如果打球9,不打球5熵为0.94相比1要小一些,因为打球的概率大一点;
而打球14,不打球0,熵为0。
这是个必然发生的事件,不确定性为0。
而我们选择属性的标准,则看在这个属性选择后,熵减小了多少,这个差值我们用信息增益来表示。
信息增益越大,说明这个属性越优秀,最大的降低了事物的不确定性,使得我们能更快的决策(就好像竞猜中,更快的答对题目一样)。
现在我们继续想什么类别的属性能够帮助我们最大的减小熵?
Outlook?
temperature?
Humidity?
Wind?
我们可以科学的算一算。
如果是outlook的话,有三个属性值sunnyovercastrain
Outlook为Sunny的情况下,打不打球的不确定性还有多少?
首先我们先让sunny发生,5/14的概率,sunny之后的熵为:
-2/5*log2(2/5)-3/5*log2(3/5)
我们类似的计算overcast发生,4/14的概率,之后熵为:
0。
Overcast就全打球了,不确定性为0
Rain5/14的概率发生,之后熵为:
-3/5*log2(3/5)-2/5*log2(2/5)
最后outlook能帮我们减少多少不确定性?
Gain(S,Outlook)=0.940-5/14(-2/5*log2(2/5)-3/5*log2(3/5))-0-5/14(-2/5*log2(2/5)-3/5*log2(3/5))=0.246
其中overcast功劳最大…….
相同的方式分别计算temperature、humidity、wind
使用信息增益最大的。
就这样一步一步规划整颗决策树,不过是贪婪算法,每次都选最大的信息增益,局部最优。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文本 分类 常见 方法