聚类分析被称之为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都没怎么看,也许以后再写一篇“再访聚类分析”。下一篇会关于决策树。
相关推荐
本项目"CollectAnaly.zip_layer cluster_聚类 运行_聚类分析_聚类分析 matlab_聚类结果分析"提供了一个五层MATLAB实现的聚类算法,适用于对复杂数据进行层次聚类。 MATLAB是一种强大的编程环境,尤其在数值计算、...
Cluster Analysis 聚类分析课件实用 PPT 课件 本资源是关于 Cluster Analysis 聚类分析的 PPT 课件,总共 61 页,涵盖了聚类分析的基本思想、相似性的度量、距离和相似系数的定义、数据变换方法、聚类分析的类型等...
【聚类分析与SPSS应用】 聚类分析是一种探索性的数据分析技术,旨在识别数据集中对象之间的相似性,并根据这些相似性将对象分组到不同的类别中。SPSS(Statistical Package for the Social Sciences)是一款广泛...
cluster3.0 聚类使用教程 ...Cluster 3.0 是一种功能强大的生物信息学软件,能够快速高效地实现聚类分析和可视化。通过本教程,读者可以快速掌握 Cluster 3.0 的使用方法,并将其应用于实际的生物信息学研究中。
在IT领域,聚类分析是一种常用的数据挖掘技术,主要用于无监督学习,即将数据集分成不同的组或类别,称为“簇”,这些簇内的数据点相似度较高,而不同簇之间的数据点相似度较低。这里提到的“k-means聚类分析”是...
以经济效益数据为例,用聚类分析法对各省市作分类(见spssex-4/全国各省市经济效益数据) 以城镇居民消费资料为例,用聚类分析法对各省市作分类(见spssex-4/城镇居民消费支出资料) Spss中的聚类功能常用的有两种...
聚类分析可以分为两类:K-means cluster 和 Hierarchical cluster。K-means cluster 是一种 partitioning 方法,通过指定类别数来对数据进行分类。Hierarchical cluster 是一种层次方法,通过聚类树来对数据进行分类...
在数据分析和机器学习领域,聚类分析是一种常用的技术,它旨在根据数据的相似性或差异性将数据点分组到不同的类别中。本章节主要聚焦于利用MATLAB进行聚类分析,这是一种强大的编程环境,特别适合数值计算和数据处理...
在本压缩包“matlab聚类分析详解-matlab聚类分析.rar”中,主要包含的是关于使用MATLAB进行聚类分析的相关资料。MATLAB是一款强大的数学计算软件,广泛应用于数据分析、图像处理、信号处理等领域,其中聚类分析是...
编程实现聚类分析算法,利用Matlab软件对系统聚类法的实现,
在数学建模领域,聚类分析是一种常用的数据分析方法,用于发现数据集中的自然群体或类别。"电工杯数学建模之system-cluster聚类实现"的主题聚焦于如何在电工杯数学建模竞赛中运用聚类算法解决问题。在这个压缩包文件...
【标题】阿里云天池数据分析竞赛:汽车产品聚类分析 在大数据时代,数据分析成为企业决策的重要工具,尤其是在汽车行业中,通过对汽车产品的深入分析,可以洞察消费者需求、优化产品设计和提升市场竞争力。阿里云...
### SPSS中的聚类分析 #### 概述 聚类分析是一种重要的数据分析技术,主要用于将相似的对象聚集到一起形成群组。这种技术广泛应用于多个领域,包括市场细分、消费者行为研究、生物信息学以及社会科学等。SPSS软件...
对于聚类分析,MATLAB的`cluster`函数可用于执行各种聚类算法,如层次聚类(linkage)和K均值(kmeans)。 在实际应用中,小波聚类分析步骤通常如下: 1. **数据预处理**:清洗和标准化数据,去除异常值,确保数据...
《ClusterAnalysis聚类分析课件实用PPT学习教案》是一份深入探讨聚类分析的教育材料,主要针对会计学领域的数据分析。聚类分析是数据挖掘和统计学中的一个关键概念,用于将数据集中的对象按照其相似性进行分组,形成...
在SPSS中进行聚类分析,首先需要选择适当的菜单路径:`Analyze -> Classify -> Hierarchical Cluster Analysis`。在这里,用户可以指定标准化方法,以消除变量量纲对结果的影响。SPSS提供了多种标准化选项,包括: ...
在数据分析和机器学习领域,聚类分析、主成分分析(PCA)和判别分析是三种常用的统计方法。这里,我们将详细探讨这些概念及其在实际应用中的代码实现。 首先,聚类分析是一种无监督学习方法,旨在根据数据的相似性...
使用SAS软件进行聚类分析时,可以利用PROC CLUSTER过程,通过系统聚类法等方法实现聚类的自动处理和结果输出。 与聚类分析不同,判别分析是一种有监督的学习方法,它通常用于已知类别标签的数据集。其核心是基于...
聚类分析课堂例题参考 聚类分析是数据挖掘中的一种常用方法,用于将相似对象分组,以便更好地了解数据的结构和pattern。这里,我们将通过Matlab软件对聚类分析进行讲解,并提供了相关的函数和代码。 Matlab中进行...
std1.m函数用于极差标准化法标准化矩阵,ds1.m函数用于绝对值距离法求距离矩阵,min1.m函数用于求矩阵最小值,min2.m函数用于比较两数大小,cluster.m函数用于实现聚类分析,print1.m函数用于显示聚类结果。...