数据挖掘之聚类分析

news/2024/12/16 15:37:00/

聚类分析(Clustering Analysis)数据挖掘中的一项重要技术,旨在根据对象间的相似性或差异性,将对象分为若干组(簇)。同一簇内的对象相似性较高,而不同簇间的对象差异性较大。聚类分析广泛应用于图像处理、市场细分、文本分析、基因分析等多个领域。


1. 聚类分析的核心概念

  1. 样本点和特征
    样本点通常是具有多维特征的数据实例,特征可以是数值型或类别型,描述样本的属性。

  2. 距离或相似度
    聚类依赖于样本点之间的距离或相似度来定义其关系:

    • 常用的距离度量:欧氏距离、曼哈顿距离、余弦相似度等。
    • 对于类别型数据,也可使用汉明距离或匹配系数等方法。
  3. 聚类结果

    • 聚类:每个样本严格属于某个簇(如 K-Means)。
    • 聚类:每个样本属于多个簇的概率(如高斯混合模型 GMM)。

2. 常用聚类算法

(1)基于划分的方法
  • K-Means
    通过迭代优化簇内数据的平方误差,将数据划分为 k个簇。
    优点:简单高效;适用于球状簇。
    缺点:需要提前指定 k,对初始值和噪声敏感。

  • K-Medoids
    用簇内的实际样本点作为簇中心,比 K-Means 更鲁棒,但计算复杂度较高。

(2)基于层次的方法
  • 层次聚类(Hierarchical Clustering)
    通过不断合并或拆分簇形成树状结构,分为:
    • 自底向上(凝聚层次聚类)。
    • 自顶向下(分裂层次聚类)。
      优点:可视化聚类结构;无需提前指定簇数。
      缺点:计算复杂度高;对噪声和离群点敏感。
(3)基于密度的方法
  • DBSCAN
    基于密度的空间聚类,能够识别任意形状的簇,同时检测噪声点。
    优点:无需指定簇数;鲁棒性强。
    缺点:对参数 εε 和最小点数 MinPtsMinPts 比较敏感。

  • OPTICS
    是 DBSCAN 的改进,解决了不同密度分布数据的聚类问题。

(4)基于模型的方法
  • 高斯混合模型(GMM)
    假设数据由多个高斯分布组成,使用期望最大化(EM)算法优化。
    优点:适用于软聚类;可解释性强。
    缺点:容易陷入局部最优;对初值敏感。
(5)基于网格的方法
  • CLIQUE
    将空间划分为等间距的网格并聚类,适合高维数据分析。
(6)基于图的方法
  • 聚类(Spectral Clustering)
    利用样本点的图结构,计算拉普拉斯矩阵的特征向量进行聚类
    优点:适合非球形簇;对维度扩展性好。
    缺点:计算复杂度高。

3. 聚类分析的评价指标

聚类效果的评估分为两类:

  1. 内部指标(无需真实标签):

    • 簇内距离(越小越好)。
    • 簇间距离(越大越好)。
    • 轮廓系数(Silhouette Coefficient):结合簇内和簇间的距离综合评估。
  2. 外部指标(需要真实标签):

    • Rand Index:衡量预测簇与真实簇的一致性。
    • 归一化互信息(NMI):评估聚类结果与真实分布的相似程度。
    • Purity聚类结果中最大类别样本所占的比例。

4. 聚类分析的应用

  1. 市场细分
    根据客户特征划分群体,制定差异化营销策略。

  2. 图像处理
    如图像分割、目标检测。

  3. 文本分析

    • 文档主题聚类
    • 新闻分类。
  4. 生物信息学
    基因表达数据分析,识别基因功能模块。

  5. 异常检测
    将离群点作为噪声进行识别。


5. 聚类分析的挑战

  • 高维数据处理
    维度过高会导致“维度灾难”,需结合降维技术(如 PCA 或 t-SNE)。
  • 簇数的确定
    自动确定最佳簇数是一个开放性问题。
  • 数据分布复杂性
    数据可能存在非线性结构或不同密度。
  • 噪声和离群点
    对算法的稳定性提出更高要求。

6. 实践案例:Python 聚类分析

使用 K-Means 对二维数据聚类

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans# 生成样本数据
from sklearn.datasets import make_blobs
X, y = make_blobs(n_samples=300, centers=4, cluster_std=0.60, random_state=0)# K-Means 聚类
kmeans = KMeans(n_clusters=4, random_state=0)
y_kmeans = kmeans.fit_predict(X)# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')
centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='red', s=200, alpha=0.75)
plt.title("K-Means Clustering")
plt.show()

聚类分析是数据挖掘中的重要工具,通过掌握不同算法的特点、适用场景及实践应用,可以帮助解决各种实际问题。


http://www.ppmy.cn/news/1555614.html

相关文章

SpringCloud微服务实战系列:03spring-cloud-gateway业务网关灰度发布

目录 spring-cloud-gateway 和zuul spring webflux 和 spring mvc spring-cloud-gateway 的两种模式 spring-cloud-gateway server 模式下配置说明 grayLb://system-server 灰度发布代码实现 spring-cloud-gateway 和zuul zuul 是spring全家桶的第一代网关组件&#x…

dolphinscheduler服务RPC框架源码解析(六)RPC消费者服务设计实现

RPC消费者服务设计实现 1.概述2.RPC消费者服务设计3.RPC消费者服务UML4.RPC消费者服务基本实现4.1.工程结构4.2. NettyRemotingClientFactory类4.3. NettyClientConfig类4.4. NettyRemotingClient类4.5.RPC消费者Handler处理器实现 5.异步请求转同步获取响应消息的设计6.异步请…

java_多态的应用

多态数组 应用实例:现有一个继承结构如下:要求创建 1 个 Person 对象、2 个 Student 对象和 2 个 Teacher 对象, 统一放在数组中,并调用每个对象 代码 Person类 package com.hspedu.poly_.polyarr_;import javax.swing.*;/*** author:寰愬悏瓒&#xf…

回归任务与分类任务应用及评价指标

能源系统中的回归任务与分类任务应用及评价指标 一、回归任务应用1.1 能源系统中的回归任务应用1.1.1 能源消耗预测1.1.2 负荷预测1.1.3 电池健康状态估计(SOH预测)1.1.4 太阳能发电量预测1.1.5 风能发电量预测 1.2 回归任务中的评价指标1.2.1 RMSE&…

余弦相似度Cosine Sim

what 余弦相似度是一种用于度量向量相似性的metric。 c o s θ A . B ∣ A ∣ . ∣ B ∣ cos\theta \frac{A.B}{|A|.|B|} cosθ∣A∣.∣B∣A.B​ A.B:向量的内积|A|:向量的模长 c o s θ cos\theta cosθ:的范围$ [ -1 , 1 ] $ why 余弦…

噪杂环境(房车改装市场)离线语音通断器模块

一直在坚持,却很难有机会上热门,在现在这个以流量为导向的时代,貌似很难靠所谓的坚守和热爱把产品成功的推向市场了。目前的客户仍然是以老客户为主,应用场景主要是房车改装,根据九客户的需求定制化一些模块。因为没有…

java抽奖系统(七)

8. 抽奖活动 8.1 新建抽奖活动 创建的活动信息包含: i. 活动名称 ii. 活动描述 iii. 圈选奖品:勾选对应奖品,并设置奖品等级(⼀⼆三等奖),及奖品数量 iv. 圈选⼈员:勾选参与抽奖⼈员 库表关联…

Linux的基本功能和命令

Linux的基本功能和命令 切换目录 pwd 查询当前目录地址 cd /xxx/xxx 转到目录 cd …/ 回到上一级目录 cd ./ 当前目录 创建、删除文件/文件夹 创建文件\文件夹 touch filename 创建空文件mkdir 创建目录 mkdir -p 目标目录存在也不报错mkdir -p xxx/xxx 递归创建目录…