- 数据挖掘教程
- 数据挖掘 - 首页
- 数据挖掘 - 概述
- 数据挖掘 - 任务
- 数据挖掘 - 问题
- 数据挖掘 - 评估
- 数据挖掘 - 术语
- 数据挖掘 - 知识发现
- 数据挖掘 - 系统
- 数据挖掘 - 查询语言
- 分类与预测
- 数据挖掘 - 决策树归纳
- 数据挖掘 - 贝叶斯分类
- 基于规则的分类
- 数据挖掘 - 分类方法
- 数据挖掘 - 聚类分析
- 数据挖掘 - 挖掘文本数据
- 数据挖掘 - 挖掘万维网
- 数据挖掘 - 应用与趋势
- 数据挖掘 - 主题
- 数据挖掘有用资源
- 数据挖掘 - 快速指南
- 数据挖掘 - 有用资源
- 数据挖掘 - 讨论
数据挖掘 - 聚类分析
聚类是一组属于同一类的对象。换句话说,相似的对象被分组到一个聚类中,而不同的对象被分组到另一个聚类中。
什么是聚类?
聚类是将一组抽象对象划分为相似对象类的过程。
要点
一组数据对象可以作为一个组来处理。
在进行聚类分析时,我们首先根据数据相似性将数据集划分为组,然后为这些组分配标签。
与分类相比,聚类分析的主要优势在于它能够适应变化,并有助于挑选出区分不同组的有用特征。
聚类分析的应用
聚类分析广泛应用于许多应用中,例如市场研究、模式识别、数据分析和图像处理。
聚类还可以帮助营销人员发现其客户群中的不同群体。并且他们可以根据购买模式来描述其客户群体。
在生物学领域,它可以用于推导植物和动物分类,对具有相似功能的基因进行分类,并深入了解群体固有的结构。
聚类还有助于识别地球观测数据库中相似土地利用的区域。它还有助于根据房屋类型、价值和地理位置识别城市中房屋的群体。
聚类还有助于对网络上的文档进行分类以进行信息发现。
聚类也用于异常值检测应用,例如信用卡欺诈检测。
作为一种数据挖掘功能,聚类分析可作为一种工具来深入了解数据的分布,以观察每个聚类的特征。
数据挖掘中聚类的需求
以下几点阐明了为什么数据挖掘中需要聚类:
可扩展性 - 我们需要高度可扩展的聚类算法来处理大型数据库。
能够处理不同类型的属性 - 算法应该能够应用于任何类型的数据,例如基于区间的(数值)数据、分类数据和二元数据。
发现具有属性形状的聚类 - 聚类算法应该能够检测任意形状的聚类。它们不应仅限于倾向于找到小尺寸球形聚类的距离度量。
高维性 - 聚类算法不仅应该能够处理低维数据,还应该能够处理高维空间。
能够处理噪声数据 - 数据库包含噪声、缺失或错误数据。某些算法对这种数据敏感,可能导致聚类质量差。
可解释性 - 聚类结果应该是可解释的、易于理解的和可用的。
聚类方法
聚类方法可以分为以下几类:
- 划分方法
- 层次方法
- 基于密度的聚类方法
- 基于网格的方法
- 基于模型的方法
- 基于约束的方法
划分方法
假设我们得到了一个包含“n”个对象的数据库,划分方法构建了数据的“k”个划分。每个划分都代表一个聚类,并且k ≤ n。这意味着它会将数据分类为k组,这些组满足以下要求:
每个组至少包含一个对象。
每个对象必须恰好属于一个组。
要点:
对于给定的划分数量(例如k),划分方法将创建一个初始划分。
然后,它使用迭代重定位技术通过将对象从一个组移动到另一个组来改进划分。
层次方法
此方法创建给定数据集对象的层次分解。我们可以根据层次分解的形成方式对层次方法进行分类。这里有两种方法:
- 凝聚方法
- 分裂方法
凝聚方法
这种方法也称为自下而上的方法。在这里,我们从每个对象形成一个单独的组开始。它不断合并彼此接近的对象或组。它不断这样做,直到所有组合并为一个,或者直到终止条件成立。
分裂方法
这种方法也称为自上而下的方法。在这里,我们从所有对象都在同一个聚类中开始。在连续迭代中,一个聚类被分裂成更小的聚类。它一直持续到每个对象都在一个聚类中,或者直到终止条件成立。此方法是刚性的,即一旦合并或拆分完成,就无法撤消。
改进层次聚类质量的方法
以下是用于提高层次聚类质量的两种方法:
对每个层次划分中的对象链接进行仔细分析。
通过首先使用层次凝聚算法将对象分组到微聚类中,然后对微聚类执行宏聚类来集成层次凝聚。
基于密度的聚类方法
此方法基于密度的概念。基本思想是只要邻域中的密度超过某个阈值,就继续扩展给定的聚类,即对于给定聚类中的每个数据点,给定聚类的半径必须至少包含最少的点数。
基于网格的方法
在此方法中,对象共同形成一个网格。对象空间被量化为形成网格结构的有限数量的单元格。
优点
此方法的主要优点是处理速度快。
它仅取决于量化空间中每个维度中的单元格数量。
基于模型的方法
在此方法中,为每个聚类假设一个模型以找到给定模型数据的最佳拟合。此方法通过对密度函数进行聚类来定位聚类。它反映了数据点的空间分布。
此方法还提供了一种根据标准统计自动确定聚类数量的方法,同时考虑异常值或噪声。因此,它产生了稳健的聚类方法。
基于约束的方法
在此方法中,通过合并用户或应用程序导向的约束来执行聚类。约束是指用户期望或所需聚类结果的属性。约束为我们提供了一种与聚类过程交互式通信的方式。约束可以由用户或应用程序需求指定。