前 言

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

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

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

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

图1 文本聚类的基本过程

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

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

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

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

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

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

文本聚类分析算法_聚类分析算法综述相关推荐

  1. cb32a_c++_STL_算法_查找算法_(5)adjacent_find

    cb32a_c++_STL_算法_查找算法_(5)adjacent_find adjacent_find(b,e),b,begin(),e,end() adjacent_find(b,e,p),p-p ...

  2. 常用十大算法_回溯算法

    回溯算法 回溯算法已经在前面详细的分析过了,详见猛击此处. 简单的讲: 回溯算法是一种局部暴力的枚举算法 循环中,若条件满足,进入递归,开启下一次流程,若条件不满足,就不进行递归,转而进行上一次流程. ...

  3. 数据挖掘算法_数据挖掘算法入门

    有南方的朋友讲过北方人喜欢打比方,尤其是甲方的,其实也没什么不好了.如果是做菜的话,那么这些算法就相当于烹饪的工具了.对原始的食材进行预处理.加工整合,选择合适烹饪工具,以及对应的方法步骤,最后收获舌 ...

  4. 接受拒绝算法_通过算法拒绝大学学位

    接受拒绝算法 数据科学 (Data Science) Nina was close to tears when she accused Nick Gibb of ruining her life. N ...

  5. k-均值聚类算法_聚类算法-K-均值算法

    k-均值聚类算法 聚类算法-K-均值算法 (Clustering Algorithms - K-means Algorithm) K-Means算法简介 (Introduction to K-Mean ...

  6. 编程神奇算法_分类算法的神奇介绍

    编程神奇算法 由Bryan Berend | 2017年3月23日 (by Bryan Berend | March 23, 2017) About Bryan: Bryan is the Lead ...

  7. python序列模式的关联算法_关联算法

    以下内容来自刘建平Pinard-博客园的学习笔记,总结如下: 1 Apriori算法原理总结 Apriori算法是常用的用于挖掘出数据关联规则的算法,它用来找出数据值中频繁出现的数据集合,找出这些集合 ...

  8. python距离向量路由算法_路由算法(全网最细)

    我在复习过程中整理的面试系列文章,全部免费分享给大家,适合保研和考研,需要的请移步我的个人原创公zhong号:程序员宝藏(号如其名,诚不欺你),回复关键字:复试上岸,即可获取! 正文开始 正文开始 1 ...

  9. prim算法_贪心算法详解(附例题)

    贪心算法的特征规律 贪心算法,"贪心"二字顾名思义,因此其规律特征就是更加注重当前的状态,贪心法做出的选择是对于当前所处状态的最优选择,它的解决问题的视角是微观的"局部& ...

  10. 回溯算法和贪心算法_回溯算法介绍

    回溯算法和贪心算法 回溯算法 (Backtracking Algorithms) Backtracking is a general algorithm for finding all (or som ...

最新文章

  1. javascript十个最常用的自定义函数
  2. CentOS安装Navicat
  3. c语言 枚举,位运算
  4. 十六进制转double
  5. mysql 导出dmp文件_MySQL数据库基础讲解
  6. Apache ActiveMQ中的消息级别授权
  7. 【渝粤教育】国家开放大学2018年春季 0599-22T工程造价管理基础理论与相关法规 参考试题
  8. 程序开发基础学习四(boost::signal2 函数学习)
  9. I/O多路转接之poll 函数
  10. 记某次CTF中Let me in
  11. android 按钮点击动画效果_如何用纯css打造类materialUI的按钮点击动画并封装成react组件...
  12. 斐讯k2路由器刷PandoraBox一宽带多人用
  13. 代数拓扑笔记(1) —— 胞腔复形
  14. 最长单调递增子序列问题 设计一个O(n2)复杂度的算法,找出由n个数组成的序列的最长单调递增子序列
  15. 国庆八天乐,码农长假怎么过?别加班了
  16. 路由器广域网接口简介
  17. Latex导入pgf图片
  18. ORB-SLAM2工作原理总结
  19. Win8快速关机命令
  20. 爬虫实战-python爬取QQ群好友信息

热门文章

  1. 操作系统--内核级线程实现
  2. pdf与图片互相转换
  3. Smarty模板技术学习
  4. Java 内部类 和 匿名内部类
  5. 几种限流器(RateLimiter)原理与实现
  6. JMM设计原理之双重检查Lock
  7. cmd中java编译命令是什么_cmd中java的编译命令——java和javac、javap
  8. mysql 窗口函数最新一条_MySQL 8.0 窗口函数(window functions)
  9. c# 读hex_在C#中将string转换为hexstring
  10. 网页中设定表格边框的厚度的属性_请写出在网页中设定表格边框的厚度的属性_______;设定表格单元格之间宽度属性...