聚类分析被称之为unsupervised分析,一个跟它相似的概念是分类(classification)模型,不同的是,分类模型预先知道
一共有几个类别,每个类别的定义是什么,所以叫做supervised。聚类分析预先不知道目标分成哪几类。往往在实际中,先用cluster分成一些
类,然后有了这些类之后,可以再可以做classification分析,就是所谓的two steps analytisis.
聚类分析的算法主要基于“距离”的计算。聚类之后的结果要尽量保证每个segment内部的对象之间距离要短, segment之间的距离要长。这篇博客的内容总结自Han Jiawei的书,这本书可以在这篇博客里找到: 分享读书笔记Data Mining Concepts and Techniques
关于距离:
如果有n个对象,每个对象有p个属性,那么可以得到这样一个矩阵:
距离通常是用另一个变形后的矩阵来做的:
其中d(2,1)表示第二个对象第一个属性和第一个对象第一个属性之间的距离。
对于连续型变量(interval)的
,通常要对数据预先做标准化“standardiz”,方式如下:
1. 算mean absolute deviation.
2. 得出标准度量(不知道怎么翻译,standardized measurement)
3.最后结果:
对
于二值型(binary)的, 有两种,一种是均衡型的(symmetric),另一种是非均衡型的(asymmetric),均衡指的是yes or
no两种状态权重一样。比如如果你没有性别歧视的话,性别是均衡的二值变量。如果通过一系列症状诊断一个人是否生病了,yes比no的权重要大的多。
两种形式都通过下面这个2x2的表来算距离:
对于均衡型的,
对于非均衡型的
对于类别型(categorical)的变量,比较简单
where m is the number of matches (i.e., the number of variables for which i and j are
in the same state), and p is the total number of variables.
对于顺序型(ordinal)的变量,要先把顺序map成[0.0,1.0]之间的数,然后按interval的方式来算。直接上截图,因为太多数学符号了
书上对每种计算基本都有例子。
关于聚类方法:
有partitioning, hierarchical, density-based, grid-based, model-based, clustering High-Dimensional, Constraint-Based.
Partitioning方法:
代表方法是K-means:
它的大致算法是,选定K值(最后要分成多少组)后,任选K个object作为cluster的中心,然后对每个其他的对象计算离哪个中心最近,就归到哪个cluster里,最后从每个cluster中找到新的中心,然后这样重复计算,直到聚类没有变化为止。
Hierarchical方法:
分
agglomerative和Divisive两种,前者是自底向上的,就是一个一个object
merge出一个segment,后者相反,自顶向下的。
上面说的K-means方法有时候和hierarchical联在一起用,因为K-means需要k作为参数,这个参数还挺重要的,极大影响了聚类的结
果,可以先用hierarchical看看大致分几类合理,然后再用K-means。
Density-based方法:
基于距离的算法segment都是类球形的,density-based克服了这个问题。他的理念基本上是,一个对象为中心画个圆,看看圈近来的对象过没过threshold.
Grid-Based:
它是从上往下分层,底层grid粒度更细。它的特点是是scalability比较好。没细看理论,但是看图能感觉个大概。
Constraint-Based:
有
的时候用户清楚应用的需求,想要指引聚类的过程,比如每个cluster size的range,
不同对象不用的权重等等。这就用到constraint-based聚类分析。这个也没细看,还有另外的clustering
high-dimensional data, model based
clustering都没怎么看,也许以后再写一篇“再访聚类分析”。下一篇会关于决策树。
相关推荐
以经济效益数据为例,用聚类分析法对各省市作分类(见spssex-4/全国各省市经济效益数据) 以城镇居民消费资料为例,用聚类分析法对各省市作分类(见spssex-4/城镇居民消费支出资料) Spss中的聚类功能常用的有两种...
5层的MATLAB聚类分析的算法,输入需要进行分析的数据,点击运行即可得出聚类结果
编程实现聚类分析算法,利用Matlab软件对系统聚类法的实现,
ClusterAnalysis聚类分析实用PPT课件.pptx
对输入的数值进行聚类分析,分析阈值可自己设置,聚类方法可以分为欧氏距离和夹角余弦两种
ClusterAnalysis聚类分析实用PPT学习教案.pptx
ClusterAnalysis聚类分析课件实用PPT课件.pptx
聚类分析(Cluster Analysis)和判别分析(Discriminant Analysis)有相似的作用,都是起到分类的作用。但是,判别分析是已知研究对象分成若干类,并已取得一批已知类别的样品(观测数据)的基础上,根据某些准则对...
ClusterAnalysis聚类分析课件实用PPT学习教案.pptx
代码实操:Python聚类分析 SKLean中有专门的聚类库:cluster,其包含了很多的聚类算法。 本例将使用一份无标签的数据集做聚类分析,以得到不同类别的特征和分布状态等。 对于聚类模型结果的评估,主要考虑如下三...
多元统计分析中 factor analysis和cluster analysis代码,采用r语言实现
聚类分析isodata算法的C++实现程序,是进行数据分类非常好的工具
聚类分析,模糊集,适用于多维数据聚类。在研究生期间所做的成功,成功将三位数据实现聚类,并把它运用到交通分类当中。-Cluster analysis, fuzzy sets, is applicable to multi-dimensional data clustering.During...
聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法,同时也是数据挖掘的一个重要算法。 聚类(Cluster)分析是由若干模式(Pattern)组成的,通常,模式是一个度量(Measurement)的向量,或者...
聚类分析matlab Matlab提供系列函数⽤于聚类分析,归纳起来具体⽅法有如下: ⽅法⼀:直接聚类, ⽅法⼀:直接聚类 利⽤clusterdata函数对样本数据进⾏⼀次聚类,其缺点为可供⽤户选择的⾯较窄,不能更改距离的计算...
1)解压缩 2)打开“聚类分析软件”文件夹,点击“聚类...3)打开Matlab软件程序,将当前工作目录设为“聚类分析”的安装目录,在命令行中输入“Cluster”命令,即可打开聚类分析软件。 4)内有多种模式识别方法可以使用
聚类分析,是个程序包,只要修改数据,即可得出结果,a=textread('ch.txt'); for i=1:10 a(i,i)=0; end b=a(:);b=nonzeros(b);b=b';b=1-b; z=linkage(b,'complete'); y=cluster(z,2) dendrogram(z) ind1=find(y==2);...
Matlab聚类分析软件-手写数字分类软件.rar matlab实现智能计算与识别的软件,相信...打开Matlab软件程序,将当前工作目录设为“聚类分析”的安装目录,在命令行中输入“Cluster”命令,即可打开聚类分析软件。 希望
聚类分析ppt, 以及聚类分析Matlab代码。
多元统计的聚类分析 聚类分析法(Cluster Analysis)是研究“物以类聚”的一种现代统计分析方法,在众多的领域中,都需要采用聚类分析作分类研究。