R学习之R层次聚类方法(tm包)

摘要:
主要类型的方法有:jaccard:jaccard系数,也称为jaccard相似系数,用于比较样本集中相似性和分散性的概率。Jaccard=样本集交集数/样本集聚合数;匹配:简单匹配系数,SMC此度量对发生和未发生的事件进行同等计数。

1、距离计算 

##  method for class 'TermDocumentMatrix'
dissimilarity(x, y = NULL, method)

## method
for class 'PlainTextDocument' dissimilarity(x, y = NULL, method)

参数说明:

   x:文档-词矩阵或者文本文档;

   y:文本文档,仅当x是文本文档时y才是文本文档;

   method:距离计算方法,所有的method均来自于proxy包,proxy包的文档在这里

 

 method的种类主要有:

(1)jaccard:jaccard系数(默认方法),又叫做Jaccard相似性系数,用来比较样本集中的相似性和分散性的一个概率。

   Jaccard = 样本集交集个数 / 样本集合集个数

(2)Matching:Simple Matching Coefficient,SMC(简单匹配系数)。该度量同等地对出现和不出现计数。

        如下图所示.其中,q 表示向量中对应位置都为 1 的元素个数;t 表示向量中对应位置都为 0 的元素个数;s 表示向量 i 某
个位置为 1,而在向量 j 的对应位置为 0 的元素个数;r 表示在向量 i 某个位置为 0,而在向量 j 的对应位置为 1 的
元素个数.来自(http://www.jos.org.cn/1000-9825/17/79.pdf

R学习之R层次聚类方法(tm包)第1张

(3)dice:Dice's coefficient 类似于jaccard系数,但是在分子上加权,Dice系数S为

R学习之R层次聚类方法(tm包)第2张

(4)affinity

Affinity between the two items i and j is defined by Aggarwal et al. (2002) as

A(i,j) = sup({i,j})/(sup({i}) + sup({j}) - sup({i,j})),

where sup(.) is the support measure. This means that affinity is the Jaccard similarity between items.

( 暂时还没搞明白)

(5) cosine余弦相似度,计算两个向量间的余弦夹角

(6)pearson: pearson Correlation Coefficient皮尔逊相关系数,见:http://zh.wikipedia.org/zh-cn/%E7%9B%B8%E5%85%B3

例子:

data("crude")
tdm <- TermDocumentMatrix(crude)
dissimilarity(tdm, method = "cosine") #计算距离的方法为cosine(余弦夹角)方法
dissimilarity(crude[[1]], crude[[2]], method = "eJaccard") #dJaccard方法

2、层次聚类 

hclust(d, method = "complete", members=NULL)

参数说明:

    d:聚类的矩阵

    method:聚类的方法

        (1)ward:方法简述:基于方差分析思想,如果分类合理,则同类样品间离差平方和应当较小,类与类间离差平方和应当较大。

                         特点:实际应用中分类效果较好,应用较广;要求样品间的距离必须是欧氏距离。

        (2)single:最短距离法,计算两类观测间最近一对的距离;

        (3)complete:最长距离法,计算两类观测间最远一对的距离;

        (4)average:平均距离法,测量两类每对观测间的平均距离;

        (5)mcquitty:McQuitty相似分析法,(待补充)

        (6)median:中间距离法,

        (7)centroid:重心法,两类间的距离定义为两类重心之间的距离,对样品分类而言,每一类中心就是属于该类样品的均值。

                             特点:该距离随聚类地进行不断缩小。该法的谱系树状图很难跟踪,且符号改变频繁,计算较烦。

          上述部分内容来自于:http://blog.csdn.net/yillc/article/details/6746509

3、图形展示

plot(x, labels = NULL, hang = 0.1,
     axes = TRUE, frame.plot = FALSE, ann = TRUE,
     main = "Cluster Dendrogram",
     sub = NULL, xlab = NULL, ylab = "Height", ...)

plclust(tree, hang = 0.1, unit = FALSE, level = FALSE, hmin = 0,
        square = TRUE, labels = NULL, plot. = TRUE,
        axes = TRUE, frame.plot = FALSE, ann = TRUE,
        main = "", sub = NULL, xlab = NULL, ylab = "Height")

 

免责声明:文章转载自《R学习之R层次聚类方法(tm包)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇matlab解方程nuxt.js项目部署全过程(ubuntu+nginx+node+pm2)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

RBF神经网络

1.RBF径向基函数 本质上和RBF核函数的SVM很相似,使用径向基函数对数据重新构建,利用 Φ(||X- Xp||)来代替原始的数据向量表示,一共有P个中心,所以获得的新数据有P个维度,此时再对数据进行分类。输出等于W Φ(||X- Xp||),W为需要求解的权重。 数学上是可以对W求解求解的,但是Φ的选取有要求,同时还不包含正则,使求解的曲面可能有过...

聚类算法

一、聚类算法简介 聚类是无监督学习的典型算法,不需要标记结果。试图探索和发现一定的模式,用于发现共同的群体,按照内在相似性将数据划分为多个类别使得内内相似性大,内间相似性小。有时候作为监督学习中稀疏特征的预处理(类似于降维,变成K类后,假设有6类,则每一行都可以表示为类似于000100、010000)。有时候可以作为异常值检测(反欺诈中有用)。 应用场景:...

R数据挖掘 第一篇:聚类分析(划分)

聚类是把一个数据集划分成多个子集的过程,每一个子集称作一个簇(Cluster),聚类使得簇内的对象具有很高的相似性,但与其他簇中的对象很不相似,由聚类分析产生的簇的集合称作一个聚类。在相同的数据集上,不同的聚类算法可能产生不同的聚类。 聚类分析用于洞察数据的分布,观察每个簇的特征,进一步分析特定簇的特征。由于簇是数据对象的子集合,簇内的对象彼此相似,而与其...

聚类之k-means附代码

   import osimport sys as sys#reload(sys)#sys.setdefaultencoding('utf-8')from sklearn.cluster import KMeansfrom sklearn import feature_extractionfrom sklearn.feature_extraction....

聚类-31省市居民家庭消费水平-city

===分三类的===== ======分四类的======== 直接写文件名,那么你的那个txt文件应该是和py文件在同一个路径的 ============code=========== import numpy as npfrom sklearn.cluster import KMeansdef loadData(filePath):fr = ope...

利用opencv3中的kmeans实现抠图功能

kmeans算法主要用来实现自动聚类,是一种非监督的机器学习算法,使用非常广泛。在opencv3.0中提供了这样一个函数,直接调用就能实现自动聚类,非常方便。 函数原型: C++: double kmeans(InputArray data, int K, InputOutputArray bestLabels, TermCriteria criteria...