文本聚类分析算法_聚类分析算法综述

前 言

聚类是人类认识未知世界的一种重要的认知手段。在生产和生活中,人们往往面对非常复杂的事和物,如果能够把相似的东西归为一类,有明显区别的事物分属在不同的类别中,处理起来就大为简便。所谓“物以类聚,人以群分”,说的就是这个道理。譬如人们将生物分为动物和植物,又根据不同的生理特点将生物分为不同的门、纲、目、科、属、种在化学理论中,人们根据不同的化学性质将各种元素划分为不同的类别,比如卤族元素、惰性气体等等,进而总结出元素周期率在社会学中,人们还根据不同的信仰划分出不同的党派、宗教等。

在原始的分类学中,人们的分类依据是经验和专业知识来进行定性分析,很少使用数学工具。随着人类对自然和社会的认识不断深入,要处理的数据量规模越来越大,相互关系也越来越复杂,分类越来越细,对分类的要求也越来越高,这时仅仅依靠定性分析就不能满足要求,于是数学这个得力工具被引入,形成了数值分类学,对分析对象进行定量的研究。由于数值分类学中的方法不仅能够用于分类,还能用于其他领域,于是人们觉得使用“聚类分析”这个名称更为恰当。

聚类分析的应用相当广泛。在商务上,聚类能帮助市场分析人员从消费者信息库中发现不同的消费群体,并且用购买模式'来刻画不同的消费群体的特征。在生物学上,聚类可以被用来辅助研究动植物的分类,可以用来分类具有相似功能的基因,还可以用来发现人群中的一些潜在的结构。聚类分析也可以用于在泥土观测数据库中对相似地区的区分,也可以根据房子的类型、价值和地域对一个城市中的房屋进行分类。聚类还可以用来从空间数据库中识别出具有相似特征的空间对象可以从保险公司的数据库中发现汽车保险中具有较高索赔概率的群体还可以用来分类万维网上不同类型的文档,或分析日志以发现特殊的访问模式等。

在实际应用聚类分析中,我们根据有无领域知识参与将整个过程分解为三个环节,每个步骤都有其明确的任务,这样对于整个聚类分析的过程就会有更清晰的认识。数据聚类分析是一个正在蓬勃发展的领域。聚类分析所涉及的领域包括数据挖掘、统计学、机器学习、空间数据库技术、生物学和市场学等。由于各应用数据库所包含的数据量越来越大,聚类分析己成为数据挖掘研究中一个非常活跃的研究课题。正因为如此,聚类分析是一种观察式学习法,而不是示例式学习法田卫。在概念聚类方法中,仅当一组对象可以由一个概念所描述时,这些对象方才能构成一个类。这与基于几何距离表示相似程度并进行聚类的传统聚类方法有所不同。

9ab382ea6af432ffdb5957b7a8fcb501.png

图1 文本聚类的基本过程

本章根据聚类的全过程如图1所示,对文本分类的如下过程进行一一阐述

第一步是特征抽取。它的输入是原始样本,由领域专家决定使用哪些特征来深刻地刻画样本的本质性质和结构。特征抽取的结果是输出一个矩阵,每一行是一个样本,每一列是一个特征指标变量。选取特征的优劣将直接影响以后的分析和决策。如果第一步就选择了和聚类意图根本无关的特征变量,企图得到良好的聚类结果则无异于缘木求鱼。因为无论后续步骤采用多么优良的聚类算法和闭值选择方案,都不可能计算出执行者的意图。合理的特征选取方案应当使得同类样本在特征空间中相距较近,异类样本则相距较远。在有些应用场合还需要将得到的样本矩阵进行一些后处理工作。比如为了统一量纲就对变量进行标准化处理,这样采用不同量纲的变量才具有可比性在有些场合可能选择的特征变量太多,不利于以后的分析和决策,这时可以先进行一下降维处理仅凭经验和领域知识选择的特征变量有可能是相关的,进行主成分分析就可以消除变量间的相关性,从而得到一些相互独立的特征变量。

第二步是执行聚类算法,获得聚类谱系图。聚类的输入是一个样本矩阵,它把一个样本想象成特征变量空间中的一个点。聚类算法的目的就是获得能够反映维空间中这些样本点之间的最本质的“抱团”性质。这一步没有领域专家的参与,它除了几何知识外不考虑任何的领域知识,不考虑特征变量在其领域中的特定含义,仅仅认为它是特征空间中一维而己。聚类算法的输出一般是一个聚类谱系图,由粗到细地反映了所有的分类情况或者直接给出具体的分类方案,包括总共分成几类,每类具体包含那些样本点等等。

第三步是选取合适的分类阂值。在得到了聚类谱系图之后,领域专家凭借经验和领域知识,根据具体的应用场合,决定闭值的选取。选定闭值之后,就能够从聚类谱系图上直接看出分类方案。没有领域专家的参与,不考虑具体的应用背景,而仅仅依赖于从聚类谱系图出发寻找聚类指数突变点,或者求最小生成树的长边等等,往往不会得到满意的结果。领域专家还可以对聚类结果结合领域知识进行进一步的分析,从而加深样本点和特征变量的认识。

总之,实际应用聚类分析是一个需要多方参与的过程,它无法脱离领域专家的参与,聚类算法仅仅是整个聚类流程中的一环而已,光依靠聚类算法专家一般不会得到满意的效果。关于聚类算法,我们将在下一章中重点讨论几种常用的聚类分析算法。

《来源于科技文献,经本人分析整理,以技术会友,广交天下朋友》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

按照标题排序mysql_Oracle EBS Form中实现点击列标题进行排序

在做EBS表单开发时,虽然使用folder功能提供了排序功能,对多行数据块可以对前三列进行指定排序,也可以单击前三列的列标题进行排27.1 问题描述在做EBS表单开发时,虽然使用folder功能提供了排序功能,对多行数据块可以对前…

vscode导入本地jar包_go导入本地包踩坑(已解决!)

当我想要仿照C语言的大程序结构,来写go语言的程序,出现下面的报错(ps:系统是windows,文本编辑器(或称IDE)是vscode)然后vscode还会时不时地在右下角出现这样地提示信息对于go语言新手…

java super用法_Java基础面试题汇总

blog.csdn.net/ThinkWon/article/details/104390612Java概述何为编程编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算…

java string返回_Java的String字符串内容总结

String--字符串获取字符串的长度使用Sring类的length()方法可获取字符串对象的长度,例:str.length();str代表指定的字符串对象;返回值为返回指定字符串的长度。例:获取字符串中指定字符的索引位置String类提供了indexOf()和lastIndexOf()方法…

汉诺塔java程序_Java编写一个汉诺塔的过程

[java]代码库/** 需求:用Java编写一个汉诺塔的过程* 汉若塔问题,就是把A柱子上面从大到小一次叠放的盘子借助B柱移到C柱上去,规则是一次只能移动一个盘子,大盘子不能放到小盘子之上** 思想:采用递归的方法来接* 1. 先将…

ajax 同步_第3部分-0:同步和异步,还有回调需要了解一下

同步是什么异步是什么 异步场景: (1)定时任务 (2)网络请求:Ajax 、图片加载 全面分析前端的网络请求方式 (3)事件绑定 异步产生知识点: 进程和线程 单线程 记一次 Vue 移…

音频重采样有什么用_最佳音频接口基本购买指南

音频接口是计算机实现录音功能的媒介设备,用于将乐器和麦克风发出的声音转换为数字信息,以便计算机可以理解并存储在硬盘上。在播放音频时,接口将数字音频文件重新转换为模拟信号,然后用监听音箱或耳机播放出来。简而言之&#xf…

java 正则 最后一个字符_正则表达式怎么匹配字符串中最后一串数字?

展开全部importretempDwellTime:666mre.search(r\d*,temp)printrepr(m.group()),m.start(),m.end()mre.search(r\d,temp)printrepr(m.group()),m.start(),m.end()printre.findall(r\d*,temp)输出:006661114[,,,,,,,,,,,666,]扩展资料正则表达式,校验数字…

lombok原理_听说学会用 Lombok 就可以让你早点下班?(你还不看)

听说隔壁用 Lombok 的六点就下班了,我也想六点下班!好的,那么这篇文章就介绍下什么是 Lombok,Lombok 做了什么以及 Lombok 是怎么做的?在介绍之前,先通过是否使用 Lombok 的效果来看下对比,首先…

idea jar包导入_IDEA 实用功能Auto Import:自动优化导包(自动删除、导入包)

下面介绍一下IDEA的一个能显著提升写代码效率的非常好用的功能设置—— Auto ImportAuto Import的功能是可以帮助我们自动删除无用的包Import(未被引用),以及自动Import填充尚未导入的包。完全智能化地帮助我们在开发程序时,省略了导包的操作&#xff0c…

@value 数组_为什么不推荐用for...in遍历数组

(一)for...in引发的一个报错两年前写的一个文章目录生成插件vue-outline,一直用着没出啥问题(本站的文章目录也是用该插件生成的)。但是最近一个网友在使用的时候却出现了异常报错,异常代码使用了一个for..…

mysql存储函数 cursor_MySQL的存储过程写法和“Cursor”的使用

MySQL的存储过程写法和“Cursor”的使用2008-03-11eNet&Ciweek本文中介绍了一个MySQL的存储过程,其中涉及Cursor的使用,示例如下:CREATE PROCEDURE justifyGroupNum()NOT DETERMINISTICSQL SECURITY DEFINERCOMMENT BEGIN/*how to run:ca…

mysql数据库字段变形_详解如何利用amoeba(变形虫)实现mysql数据库读写分离

摘要:这篇MySQL栏目下的“详解如何利用amoeba(变形虫)实现mysql数据库读写分离”,介绍的技术点是“MySQL数据库、数据库读写分离、amoeba、MySQL、读写分离、数据库”,希望对大家开发技术学习和问题解决有帮助。关于mysql的读写分离架构有很多…

bind blz mysql_MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典...

MySQ DBAL重点剖析课程 企业级MySQL系统安全与DBA运维日常事务管理 运维DBA必备宝典本资源由JAD资源网收集整理丨www.jiuandun.com资源简介MySQ DBAL重点剖析课程,课程的重点在于企业级MySQL系统安全实战,和MySQL DBA运维的日常事务管理,也就…

怎样解决外键约束_《设计心理学》|找寻“设计师”所遇的真正问题与解决之道...

《设计心理学1》作者[美] 唐纳德A诺曼 。此书始终强调以人为本的设计哲学,将认知心理学和行为学等多学科的方法导入到设计之中。不仅着重于反思设计过程中出现的问题给用户带来的困扰,更着重于解决问题,用这些基本原则帮助设计师找到真正的问…

java dumpheap_java程序性能分析之thread dump和heap dump

一.dump基本概念在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题。这些文件记录了JVM运行期间的内存占用、线程执行等情况,这就是我们常说的dump文件。常用的有heap dump和thread dump(也叫javacore&#xf…

json string 格式_GO小知识之如何做JSON美化

经常有些小知识想分享出来,但又构不成体系,一直觉得文章形式发出不太合适。准备以 "知乎想法" 分享出来,但发现代码展示不太友好。还是发文章吧,该类分享将以 "小知识" 为前缀。后端http接口测试常需要打印 J…

java 对象引用 弱引用吗_谈谈Java对象的强引用,软引用,弱引用,虚引用分别是什么...

整体结构java提供了4中引用类型,在垃圾回收的时候,都有自己的各自特点。为什么要区分这么多引用呢,其实这和Java的GC有密切关系。强引用(默认支持模式)把一个对象赋给一个引用变量,这个引用变量就是一个强引用。强引用是我们最常见…

python图像几何变换_Python 图像处理 OpenCV (5):图像的几何变换

前文传送门: 图像缩放 图像缩放只是调整图像的大小,为此, OpenCV 为我们提供了一个函数 cv.resize() ,原函数如下: resize(src, dsize, dstNone, fxNone, fyNone, interpolationNone) src 表示的是输入图像&#xff0c…

linux中python编辑器_Linux下9款最好的Markdown编辑器

首先, Markdown是使用Perl编写的,简单、轻量级的工具,允许用户编写纯文本格式和高效的html或者XHTML。它实际上是一个易于阅读,易于编写纯文本的语言和文本到HTML的转换的软件工具。 希望你有一点了解,Mrakdown是什么&…