系统聚类分析
- 格式:pptx
- 大小:305.92 KB
- 文档页数:42


系统聚类的基本步骤
系统聚类是一种常用的数据分析方法,它可以将数据集中的观测对象按照相似性进行分类,从而发现数据集中的内在结构。系统聚类的基本步骤包括:确定距离度量方法、选择聚类算法、计算距离矩阵、构建聚类树、确定最优聚类划分。
一、确定距离度量方法
距离度量方法是系统聚类的基础,它用来计算不同观测对象之间的相似性或差异性。常用的距离度量方法包括欧氏距离、曼哈顿距离、切比雪夫距离等。在选择距离度量方法时需要考虑数据类型和特征属性的差异,以及样本之间是否存在缺失值等因素。
二、选择聚类算法
系统聚类可以分为凝聚层次聚类和分裂层次聚类两种算法。凝聚层次聚类是从下往上逐步合并相似的小簇,直到形成一个大簇;而分裂层次聚类则是从上往下逐步将大簇细分成小簇。在实际应用中,需要根据数据集大小和特征属性的差异来选择合适的聚类算法。
三、计算距离矩阵
距离矩阵是系统聚类的核心,它记录了样本之间的距离或相似性。在实际操作中,可以使用基于距离度量方法的函数库来计算距离矩阵。常用的函数库包括Scipy、Numpy等。
四、构建聚类树
聚类树是系统聚类的结果,它将所有观测对象按照相似性进行层次化排列,并形成一棵二叉树。在构建聚类树时,可以采用分裂或凝聚策略,并通过不同的图形化方式展示结果。
五、确定最优聚类划分
最优聚类划分是系统聚类的目标,它旨在将数据集中的观测对象划分为若干个互不重叠且内部相似度高的簇。在确定最优聚类划分时,需要考虑簇内相似度和簇间差异度等因素,并采用评价指标来评估不同聚类结果之间的优劣性。
综上所述,系统聚类是一种常用而有效的数据分析方法,在实际应用中需要遵循以上基本步骤,并根据数据集的特点和分析目的来进行灵活调整。
以二维数组为例,用C#代码实现
C# code
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
namespace fen
{
public partial class Form1 : Form
{
DisjointSets ds;
private int n;
private int cc;
private const int MAX = int.MaxValue;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int v0 = 6;
int[][] x = new int[v0][]; x[0] = new int[] { 0, 3, 1, 2, 0 };
x[1] = new int[] { 1, 3, 0, 1, 0 };
x[2] = new int[] { 3, 3, 0, 0, 1 };
x[3] = new int[] { 1, 1, 0, 2, 0 };
x[4] = new int[] { 3, 2, 1, 2, 1 };
聚类分析
1.1聚类分析的概念:
聚类分析法是理想的多变量统计技术,主要有分层聚类法和迭代聚类法。 聚类分析也称群分析、点群分析,是研究分类的一种多元统计方法。
1.2常见的聚类分析法:
K-means算法、凝聚聚类算法以及EM算法系统聚类法和K均值聚类法是聚类分析中最常用的两种方法
经典的聚类分析方法:【数据挖掘中聚类算法研究和发展-周涛】
1.2.1基于划分的相关聚类算法
K-means 算法是一种最为典型的基于划分的聚类分析算法,自从该算法被开发出来后,就一直被拿来研究和改进。该算法的主要思想是大家非常了解的,首先随机选取 K个对象作为中心点,然后遍历每个数据对象,直到收敛为止。
1.2.2基于密度的相关聚类算法
DBSCAN 算法是一种较为常见的基于密度的聚类分析算法,该算法首先需要将任意的数据对象设定为核心数据对象,在 Eps 范围内包含的数据对象数目要不少于Minpts 规定的个数,然后根据相应的规则来对核心对象进行合并,最终完成类簇的聚类分析。
1.2.3基于层次的相关聚类算法
BIRCH 算法[28]是一种出现较为基本且简单的可以进行良好的伸缩的层次聚类算法。该算法具有较好的聚类表现,它主要包含两个概念:聚类特征(CF)和聚类特征树(CF-Tree),通过这两个概念来进行描述并使得该算法能够有效地处理数据集。
1.2.4基于网格的相关聚类算法
Yang W 等人提出的 STING(Statistical INformation Grid)算法的的核心思想是将目标数据集映射到矩形单元,该空间区域通过分层和递归方法进行划分,其主要是基于多分析率的网格算法。
1.2.5基于模型的相关聚类算法
EM(Exception-Maximization)算法是一种基于模型的聚类方法,该算法主要分为两步,期望步和最大化步。期望步先给定当前的簇中心,将每个数据对象划分到距离簇中心最近的簇,然后最大化步调整每个簇中心,使得该分派的数据对象到新中心的距离之和最小化,直到聚类收敛或改变充分小。
用Python进行系统聚类分析
在进行机器学习时,我们往往要对数据进行聚类分析,聚类,说白了就是把相似的样品点/数据点进行归类,相似度高的样品点会放在一起,这样一个样本就会被分成几类。而聚类分析也有很多种方法,比如分解法、加入法、有序样品的聚类、模糊聚类法以及系统聚类法等。而本文要介绍的就是系统聚类法,以及如何用python来进行系统聚类分析。
首先来看一下系统聚类法的定义。系统聚类法(hierarchical
clustering method),又叫分层聚类法,是目前最常用的聚类分析方法。其基本步骤如下:假设样本中有n个样品,那么就先将这n个样品看作n类,也就是一个样品一个类,然后将性质最接近的两类合并为一个新的类,这样就得到n-1个类,接着从中再找出最接近的两个类,让其进行合并,这样就变为n-2个类,让此过程持续进行下去,最后所有的样品都归为一类,把上述过程绘制成一张图,这个图就称为聚类图,从图中再决定分为多少类。其大致过程如图1所示。 图1. 系统聚类分析示意图
而这里我们要确定各个样品的相似度,才能将其归类,那么如何确定其相似度呢?通常我们用的方法是计算各个样品点之间的距离,然后再根据距离来分类。这里我们根据距离来分类,同样也是有几种方法的,比如最短距离法、最长距离法、重心法、类平均法以及ward法。下面我们对这几种方法进行一个简单的介绍。
1. 最短距离法
最短距离法就是从两个类中找出距离最短的两个样品点,如图2所示。点3和点7是类G1和类G2中距离最短的两个点。计算公式如图4所示。
图2. 最短距离法示意图
2. 最长距离法
最长距离法就是从两个类中找出距离最长的两个样品点,如图3所示。点1和点6是类G1和类G2中距离最长的两个点。计算公式如图4所示。 图3. 最长距离法示意图
3. 重心法
从物理的观点看,一个类用它的重心,也就是类样品的均值,来做代表比较合理,类之间的距离也就是重心之间的距离。若样品之间用欧氏距离,设某一步将类G1与G2合并成G3,它们各有n1、n2、n3个样品,其中n3=n1+n2,它们的重心用X1、X2和X3表示,则X3=1/n3(n1X1+n2X2)。重心法的计算公式参考图4。