「机器学习」聚类

简介:

Machine Learning

聚类的过程是将样本分类的过程,聚类属于无监督学习,资料中没有label,训练之前并不知道样本属于哪一个类别,需要借鉴经验值。

Kmeans聚类:

模型假设:数据的分布是K个$\sigma$相同的高斯分布的,每个分布里有$N_1,N_2,......N_k$个样本,其均值分别是$mu_1,mu_2,……mu_k$,那么每个样本属于自己对应那个簇的似然概率为:

$$ L = \prod_{j=1}^{K}\prod_{i=1}^{N_{j}}\frac{1}{2\sigma ^{2}}exp(-\frac{\left | \left | x_{i}-\mu _j \right | \right |^{2}}{2\sigma ^{2}}) $$

做对数变化,并取负值即可得到损失函数:

$$ J(\mu_1,\mu_2,...,\mu_K)= \frac{1}{2}\sum _{j=1}^{K}\sum _{i=1}^{N_{j}}(x_{i}-\mu_j)^{2} $$

损失函数求导得:

$$ \frac{\partial J}{\partial \mu_j} = \sum _{i=1}^{N_j}(x_j-\mu_j) =0 $$

即更新后最佳簇的中心为:

$$ \mu_j = \frac{\sum_{i=1}^{N_j}x_i}{N_j} $$

迭代过程
2.1.需要指定K值,需要得到簇的个数;
2.Kmeans 会随机给出K个质心;
3.开始迭代,根据距离计算新质心的位置;
4.质心的位置不发生变化,即迭代停止。

缺点:

  • K值难确定
  • 复杂度与样本呈线性关系
  • 很难发现任意形状的簇

Kmeans聚类可视化

https://www.naftaliharris.com/blog/visualizing-k-means-clustering/

DBSCAN聚类:

基本概念 Density-Based Spatial Clustering of Applications with Noise
  • 核心对象:若某个点的密度达到算法设定的阈值则其为核心点。(即r领域内点的数量不小于minPts)
  • 邻域的距离阈值:设定的半径r
  • 直接密度可达:若某点p在点q的r邻域内,且q是核心点则p-q 直接密度可达。
  • 密度可达:若有一个点的序列$q_0,q_1,...,q_k$,对$q_i-q_{i-1}$是直接密度可达的,则称从$q_0到q_k$密度可达,这实际上是直接密度可达的"传播"。
  • 密度相连:若从某核心点p出发,点q和点k都是密度
    DBSCAN的算法就是我们先找到一个核心对象,从它出发,确定若干个直接密度可达的对象,再从这若干个对象出发,寻找它们直接密度可达的点,直至最后没有可添加的对象了,那么一个簇的更新就完成了。我们也可以说,簇其实就是所有密度可达的点的集合。

1.先找到一个核心对象,从它出发,确定若干个直接密度可达的对象
2.再从这若干个对象出发,寻找它们直接密度可达的点,直到最后没有可添加的对象
3.完成一个簇

DBSCAN聚类可视化:

https://www.naftaliharris.com/blog/visualizing-dbscan-clustering/

缺点:

  • 高维数据有些困难
  • 参数难以选择
  • Sklearn中效率很慢

层次聚类

最初将每个对象看成一个簇,然后将这些簇根据某种规则被一步步合并,就这样不断合并直到达到预设的簇类个数。
合并规则:

  • 最小距离:两个簇的样本对之间距离的最小值$d_min$「single-linkage算法」
  • 最大距离:两个簇的样本对之间距离的最大值$d_max$「complete-linkage算法」
  • 平均距离:两个簇的样本对之间距离的平均值$d_avg$「average-linkage算法」

其他聚类算法待学习,补充「未完待续」

参考资料:

https://blog.csdn.net/sinat_22594309/article/details/63253459

唐宇迪「机器学习课程」

目录
相关文章
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
1219 6
|
机器学习/深度学习 算法 数据可视化
机器学习的核心功能:分类、回归、聚类与降维
机器学习领域的基本功能类型通常按照学习模式、预测目标和算法适用性来分类。这些类型包括监督学习、无监督学习、半监督学习和强化学习。
1010 0
|
机器学习/深度学习 数据采集 算法
【机器学习】K-Means聚类的执行过程?优缺点?有哪些改进的模型?
K-Means聚类的执行过程、优缺点,以及改进模型,包括K-Means++和ISODATA算法,旨在解决传统K-Means算法在确定初始K值、收敛到局部最优和对噪声敏感等问题上的局限性。
347 2
|
机器学习/深度学习 算法 数据挖掘
【机器学习】聚类算法中的距离度量有哪些及公式表示?
聚类算法中常用的距离度量方法及其数学表达式,包括欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、余弦相似度等多种距离和相似度计算方式。
1287 1
|
机器学习/深度学习 算法 数据挖掘
【机器学习】Python详细实现基于欧式Euclidean、切比雪夫Chebyshew、曼哈顿Manhattan距离的Kmeans聚类
文章详细实现了基于不同距离度量(欧氏、切比雪夫、曼哈顿)的Kmeans聚类算法,并提供了Python代码,展示了使用曼哈顿距离计算距离矩阵并输出k=3时的聚类结果和轮廓系数评价指标。
341 1
|
机器学习/深度学习 数据挖掘
机器学习之聚类——模糊聚类FCM
机器学习之聚类——模糊聚类FCM
598 4
|
机器学习/深度学习 算法 搜索推荐
机器学习中的聚类
**文章摘要:** 本文介绍了聚类算法的基本概念、应用、实现流程和评估方法。聚类是一种无监督学习技术,用于将数据分为相似的组,如K-means、层次聚类、DBSCAN和谱聚类。K-means算法通过迭代优化质心,将数据点分配到最近的簇,直至质心不再变化。模型评估包括误差平方和(SSE)、肘部方法(确定最佳簇数)和轮廓系数法(Silhouette Coefficient),以量化聚类的紧密度和分离度。应用场景涵盖用户画像、广告推荐和图像分割等。在Python的sklearn库中,可以使用KMeans API进行聚类操作。
|
机器学习/深度学习 算法 数据挖掘
机器学习——DBSCAN 聚类算法
【6月更文挑战第8天】DBSCAN是一种基于密度的无监督聚类算法,能处理不规则形状的簇和噪声数据,无需预设簇数量。其优点包括自动发现簇结构和对噪声的鲁棒性。示例代码展示了其基本用法。然而,DBSCAN对参数选择敏感,计算效率受大规模数据影响。为改善这些问题,研究方向包括参数自适应和并行化实现。DBSCAN在图像分析、数据分析等领域有广泛应用,通过持续改进,将在未来保持重要地位。
509 2
|
机器学习/深度学习 算法 数据挖掘
【机器学习】在使用K-means聚类算法时,如何选择K的值?
【5月更文挑战第11天】【机器学习】在使用K-means聚类算法时,如何选择K的值?
|
机器学习/深度学习 传感器 算法
【机器学习】在聚类算法中,使用曼哈顿距离和使用欧式距离有什么区别?
【5月更文挑战第12天】【机器学习】在聚类算法中,使用曼哈顿距离和使用欧式距离有什么区别?

热门文章

最新文章