问题导读:
1)聚类是什么?聚类在文本挖掘和分析中的应用有哪些?
2)如何使用混合模型进行文档集群?这样的模型有多少个参数?
3)文档集群的混合模型是如何与一个主题模型(如PLSA)相关的?它们有什么相似之处?他们不同在哪里?
4)在估算混合模型的所有参数后,我们如何确定每个文档的集群?
5)分层聚集聚类是如何工作的?计算组相似度的单链接、完全链接和平均链接如何工作?哪一种计算组相似性对数据中的异常值最不敏感?
6)我们如何评估聚类结果?
7)文本分类是什么?什么是文本分类的应用?
8) 分类的训练数据是什么样的?
9)朴素贝叶斯分类器是如何工作的?
10)为什么我们经常用对数表示朴素贝叶斯的得分函数?
关键词组:
集群、文档集群和术语集群。
集群的偏见
相似 观点
混合模型,可能性,和最大似然估计。
EM算法,E-step, M-step, 下溢 ,归一化(避免下溢 )
分层聚类,k-Means。
方向评价(聚类)、间接评价(聚类)
文本分类、主题分类、情绪分类、电子邮件路由。
垃圾邮件过滤
朴素贝叶斯分类器
平滑
文本聚类
一、文本聚类的目的
1.)什么是文本聚类?
聚类实际上是一种非常通用的数据挖掘技术,将类似的对象分组在一起,这些对象是文本对象。例如,文档、术语、段落、句子或网站。
2.)什么是自然的结构或自然的基团?如何定义相似性?
用不同方式看待事物,所以我们可能会得到不同的簇。必须定义评估相似度的透视图,称之为聚类偏见。相似度没有很好地定义,并且可以用不同的方法对对象进行分组。为了评估聚类,必须使用透视图,否则很难定义什么是最好的聚类结果。
3.)文本聚类的应用
1)可以通过使用主题模型来提取主题的顺序文本片段,
2)可以对较大的文本对象进行集群,文本对象可能包含很多文档。
4.)为什么文本聚类更有趣呢?
探索性文本分析
有时它们是关于同一个主题的,通过将它们联系在一起,我们可以对一个主题有更全面的报道。
可以使用文本聚类来在文本数据上创建一个结构;还可以使用文本聚类来在将文档聚在一起时,引入额外的特性来表示文本数据,我们可以将每个集群视为一个特性。
1)一个是集群搜索结果
搜索引擎可以将这样的结果聚集在一起,这样用户就可以看到返回查询结果的整体结构。查询的模糊性是特别有用的,因为集群可能代表了不同含义的歧义词。
2)根据客户的电子邮件了解客户的主要投诉
将电子邮件信息集中起来,然后在主要的集群中找到,我们可以理解他们的主要抱怨是什么。
二、 如何进行文本聚类
1. 生成概率模型
1.)聚类问题的定义
主题概率与文本聚类主要区别: 主题概率中一个文档有多个主题,而文本聚类中假设每个文档中只有一个主题
输出是改变的:所以不再有详细的覆盖分布pi i j,而是一个集群分配决策Ci。Ci是文档i的一个决定, 也就是说现在我们用Ci来表示第i个文档,这个文档只属于【1,k】个主题中的其中一个,如果有k个主题和N个文档,在k< N的时候,有些文档必须是属于一个主题的(即共享一个主题),这也就达到了聚类的目的。 。
2.)如何强制每个文档由一个主题而不是k个主题生成
由于主题模型允许多个主题为文档提供一个单词,违反了我们关于集群中文档划分的假设,所以需要改模型.
--------用混合模型来进行聚类
我们还需要做一个决定来决定使用哪个分配来生成这个文档,因为文档可能会从我们拥有的k个词分布中生成。但是这一次,一旦我们决定选择其中一个主题,我们将继续使用这个机制来生成文档中的所有单词。即文档只会使用一次特定的分布
a)如何推断出哪些分布被用来生成文档,从而使我们能够恢复文档的集群标识?
与主题模型比有两点不同:
1)选择:使用特殊的分布只对文档集群进行一次。而在主题模型中,它是用不同的词多次重复的。
2)单词分布: 一个分布将被用来重新生成一个文档的所有单词.而主题模型不需要一个分布生成文档中的所有单词,可以使用多个分布来生成文档中的单词。
b)似然函数是什么?
你可以看到文档聚类的混合模型,我们先取一个乘积,然后取一个和.这对应于我们的假设首先做出选择一个分布然后继续分布,它会生成所有的单词。这就是为什么我们把乘积放在和的里面。总和对应于选择。
在主题模型中,我们看到和实际上是在产品内部。这是因为我们独立地生成了每个单词。这就是为什么我们把产品放在外面的原因,但是当我们生成每个单词时,我们必须对我们使用的分布做出决定,所以每个单词都有一个和。但总的来说,这些都是混合模型,我们可以用算法来估计这些模型.
--------将把混合模型从2推广到k组
数据:文本集合C={d1,d2···,dN}
模型:k个主题,概率(由哪个主题生成该文本)
混合模型的参数:
不同于PLSA,这里由主题生成文本,概率p不依赖文档d
如何计算文档属于哪个群集
1)似然值(对于生成模型)
2)似然值+先验知识(对于大的群集)
-------
1)如何计算似然函数的值?
2) 常用EM算法来计算最大似然值
例子:我们有两个主题( 这是一个只有两个类的聚类任务 )
E-step: 计算该文档属于第一类的概率有多大
属于第2类的概率=1 - 属于第一类的概率 :公式存在下溢(underflow)的问题。
下溢(underflow) :看看上述公式计算的分子和分布,如果一个文档的单词多,那么涉及分母部分与分子部分的乘积个数多,得到的数字比较大,被1减后计算出来的将是一个非常小的值,可能就会导致下溢(underflow)的问题。
为了解决下溢问题,我们需要使用一个标准化,
首先求得一个平均的概率,然后将它加入到似然函数的计算中。
E-Step我们可以看到我们估计哪个分布更可能生成文档d
M-step:从E-step中,得到p(Z=1|d) ,现在M-step要更新主题概率(词分布)和属于哪个主题生成的概率
总结:
2.基于相似度的方法
分别是单连接,全连接,均值连接
单连接:两个组织之间分别有一个人相互认识,则认为两个组织之间有关系,对异常值敏感
全连接:两个组织之间哪些太可能互相交谈的人会感到舒适且相互交流,对异常值敏感
均值连接:介于单连接和全连接之间,就是说两个组织之间差不多联系密切认为两个组织之间有关系,对异常值会变得不敏感
在实践中哪一个是最好的,这将取决于应用程序
而阈值由相似度函数计算。
K-means聚类