机器学习 - 聚类算法

聚类算法是数据挖掘中的重要方法,包括基于原型、密度、层次和网格四种类型。K-means、DBSCAN、AGNES和基于网格的算法如STING是常见实例。聚类效果常用SSE(误差平方和)评估。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

聚类算法属于无监督学习范畴,通常用于群组发现和离群点检测。为了便于记忆,简单的将韩家炜《数据挖掘:概念与技术》简单的总结为四种:基于距离,基于密度,基于层次,基于网格。


1. 基于原型

基于原型的聚类方法,通常认为我们能通过一组原型进行刻画。K-means,k-means++,二分K-means,mini-batch Kmeans,meanshift,GMM聚类等等。


2. 基于密度

基于密度的聚类算法假设聚类结构能够通过样本分布的紧密程度确定。通常情况下,密度聚类从样本密度的角度来考虑样本之间的可连接性。DBSCAN是最知名的基于密度的聚类算法。

### 统计学与机器学习中的聚类算法 #### 1. 聚类分析的概念及其应用场景 聚类分析是一种无监督学习技术,旨在将一组对象划分为若干个子集(称为簇),使得同一个簇内的对象尽可能相似,而不同簇的对象差异较大。这种技术在多个领域有广泛应用,例如市场细分、图像分割、异常检测以及推荐系统等[^2]。 #### 2. 常见的聚类算法 常见的聚类算法包括但不限于 K-Means、层次聚类、DBSCAN 和 Mean Shift 等。其中,K-Means 是最常用的聚类算法之一,其基本思想是通过迭代优化的方式找到使簇内平方误差最小化的质心位置[^3]。 #### 3. K-Means 聚类算法的原理 K-Means 算法的核心目标是最小化簇内距离之和。具体而言,它试图解决如下优化问题: \[ J(C, \mu) = \sum_{i=1}^{k}\sum_{x_j \in C_i} ||x_j - \mu_i||^2 \] 其中 \(C\) 表示簇集合,\( \mu \) 表示各簇的中心点,\( k \) 是预定义的簇数量。为了求解这一问题,K-Means 使用交替优化策略:首先随机初始化簇中心,然后反复执行分配样本到最近簇和更新簇中心的操作直到收敛。 #### 4. 如何评估聚类质量? 一种常用的方法是计算 Silhouette 系数或平均轮廓系数。Silhouette 系数值介于 [-1, 1] 之间,越接近 1 表明聚类效果越好;反之,则表示可能需要重新调整参数设置或者尝试其他类型的聚类方法[^4]。 以下是 Python 中实现简单版本 K-Means 的代码片段: ```python from sklearn.cluster import KMeans import numpy as np data = np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]) kmeans = KMeans(n_clusters=2, random_state=0).fit(data) print(kmeans.labels_) print(kmeans.cluster_centers_) ``` 上述脚本展示了如何使用 `scikit-learn` 库快速构建并训练一个两分类别的 K-Means 模型。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值