文本分类算法的效果[通俗易懂]

文本分类算法的效果[通俗易懂]基于统计的分类算法是主流,主要包括以下几种分类模型:相似度模型(Rocchio、K-近邻)、概率模型(贝叶斯)、线性模型(LLSF、SVM)、非线性模型(决策树、神经网络)、组合模型。对于这些分类算法,国内外很多研究者进行了客观评测(Yang,1999;Joachims,1998;He,2000;Tsay,2000;庞剑锋,2001;王灏,2003;李保利,2003;周雪忠,

大家好,又见面了,我是你们的朋友全栈君。

基于统计的分类算法是主流,主要包括以下几种分类模型:

  • 相似度模型(Rocchio、K-近邻)、
  • 概率模型(贝叶斯)、
  • 线性模型(LLSF、SVM)、
  • 非线性模型(决策树、神经网络)、
  • 组合模型。对于这些分类算法,

国内外很多研究者进行了客观评测(Yang,1999;Joachims,1998;He,2000;Tsay,2000;庞剑锋,2001;王灏,2003;李保利,2003;周雪忠,2003)。


分类算法效果评述

来源:《基于关键短语的文本分类研究》

很多实验证明无论分类算法如何改进,分类效果总难以提高,而且众多分类算法在训练集充分的情况下,几乎没有什么区别。

在周雪忠的实验中,统计数据表明词频特征表示的TFIDF/Rocchio的分类准确率在测试集相对充分时高于SVM,在特征表示和分类器相结合的实验中,TFIDF/Rocchio(W)取得了最好的效果,最后他得出结论,采用相对高维的特征表示(如词)和简单的分类方法(如TFIDF/Rocchio)即可达到理想的分类性能要求。

另外,Yiming Yang和Xin Liu(1999)对五种文本分类方法进行了受限的统计显著性测试研究:支持向量机(SVM)、k-近邻(KNN),神经网络(NNet)、线性最小平方拟合(LLSF)映射和朴素贝叶斯(NB)。结果表明当训练集平均,每个类中的正例数目较少时(少于10),SVM、 KNN和LLSF比NNet、NB显然要好,而当处理大分类(超过300个正例样本)时所有的分类方法性能相当。

这些都证明在算法改进提高分类效果的基础上,文本分类效果的进一步提高已经不能单纯依靠算法了。


文本分类算法的进一步说明

来源:《简单的分类模型》

基于TFIDF的Rocchio算法

Rocchio的发音是”Rockey-O”。

Rocchio算法来源于向量空间模型理论,向量空间模型Vector space model的基本思想为采用向量来表示一个文本,之后的处理过程就可以转化为空间中向量的运算。基于TFIDF的Rocchio是这种思想的一种实现方法,其中以一个N维向量来表示文本,向量维数N即特征数,向量分量是特征的某种权重,表示该权值的计算方法称为TFIDF方法。通过TFIDF方法,首先将训练集中的文本表示为向量,然后生成类别特征向量,即可以用来代表一个类别的向量,类别特征向量取值为该类中所有文本向量的平均值。

Rocchio算法训练的过程,其实就是建立类别特征向量的过程,分类的时候给定一个未知文本,先生成该文本的向量,然后计算该向量与各类别特征向量的相似度,最后将该文本分到与其最相似的类别中去。

向量的相似度度量方法有两种:欧几里德距离和cosin。

总体来看,Rocchio算法简单易行运行速度尤其是分类速度较快。

朴素贝叶斯

贝叶斯分类是一种统计学分类方法,它基于贝叶斯定理,可以用来预测类成员关系的可能性,给出文本属于某特定类别的概率,分类时根据预测结果将该样本分到概率最高的类别中去即可。

朴素贝叶斯分类模型训练的过程其实就是统计每一个特征在各类中出现规律的过程,从理论上,讲贝叶斯分类的出错率最小,就试验结果来看,朴素贝叶斯在大型的数据集上表现出来难得的速度和准确度。

决策树Decision Tree

决策树是一个类似于流程图的树结构,其中每个节点代表一个属性上的测试,每个分支代表一个测试输出,最后的叶结点代表类别。决策树方便改写为形如if- then的分类规则,易于理解。

决策树的核心算法是一种贪心算法,它以自顶向下的方式在训练集的基础上构造决策树之后,取未知文本的属性,在决策树上测试路径由根结点到叶结点,从而得到该文本的所属类别。

决策树的算法有C4.5(发展于ID3)CART,CHAID等,他们的区别在于构造决策树与树枝剪除的算法细节不同。

决策树可以很好的抵抗噪声,最大的缺点在于不适应大规模的数据集,此种情况下决策树的构造会变得效率低下。

K近邻分类K-nearest neighbor

KNN的思想也来源于向量空间模型,同样采用将文本转化为向量的思想。KNN是一种基于类比的分类方法,在训练的过程中,KNN会生成所有训练例的特征向量,并将其保存下来。给定一个未知文本,首先生成它的特征向量之后,KNN会搜索所有的训练例,通过向量相似度比较,从中找出K个最接近的训练例,然后将未知文本分到这K个近邻中最普遍的类别中去,相似度可以通过欧几里德距离或cosin来度量

KNN是一种懒散的方法,即它没有学习过程,只是存放所有的训练例直到接到未知文本的时候才建立分类。

KNN的训练过程较快,而且可以随时添加或更新训练例来调整。但它分类的开销会很大,因为需要很大的空间来保存训练例,而且分类效率很差,有看法认为在小数据集上KNN的表现优异。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136390.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何把自己的百度网盘的内容分享给别人

    如何把自己的百度网盘的内容分享给别人

    2021年9月18日
    623
  • 数学速算法_小学数学速算技巧全收录,寒假全面提升!

    数学速算法_小学数学速算技巧全收录,寒假全面提升!小编说:关注“学习方法报”免费获取更多学习干货,助你快速提分。想订阅报纸的各位童鞋请点击底部菜单——“微商城”查询答案的各位童鞋请点击底部菜单——“答案查询”——“小学答案”很多同学反映,自己的数学计算能力弱,每次数学考试,很多时间都花费在了计算上面,希望我能帮助他解决这个问题。所以今天我们就来和大家分享小学数学中的实用的速算技巧,同学们只要掌握了这个方法,计算问题一定会有一个大的提高!…

    2022年6月29日
    45
  • 网页布局的几种方式有哪些_做网页建议用哪种布局

    网页布局的几种方式有哪些_做网页建议用哪种布局固定布局为网页设置一个固定的宽度,通常以px做为长度单位,常见于PC端网页。这种布局具有很强的稳定性与可控性,也没有兼容性问题,但不能根据用户的屏幕尺寸做出不同的表现。即如果用户的屏幕分辨率小于这

    2022年8月3日
    12
  • 异常处理面试题_运行值长面试题

    异常处理面试题_运行值长面试题java提供了两种异常机制。一种是运行时异常(RuntimeExepction),一种是受检异常(checkedexecption)。受检异常:我们经常遇到的IO异常及sql异常就属于检查式异常。对于这种异常,java编译器要求我们必须对出现的这些异常进行catch,面对这种异常要么往上抛,要么就catch运行时异常:我们可以不处理。当出现这样的异常时,总是由虚拟机接管。RuntimeExec

    2022年9月30日
    2
  • docker学习记录

    docker学习记录

    2022年2月9日
    47
  • 全局路径规划:图搜索算法介绍4(RRT/RRT*)

    全局路径规划:图搜索算法介绍4(RRT/RRT*)本节介绍RRT/RRT*的算法:RRT的基本原理是:我们首先初始化我们的起点,接下来随机撒点,选出一个x_rand,在x_near和x_rand之间选择一个x_new,再在原有的已经存在的x中找到离这个点最近的点将这两个点连接起来,同时这个最近的点也会作为x_new的父节点。RRT算法的伪代码如下:对照着图,再看一次:首先我们随机生成一个点,x_rand然后再tree上面…

    2025年8月6日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号