机器学习之聚类——从教授的等式到凸聚类

简介: 机器学习之聚类——从教授的等式到凸聚类

引子:大佬的等式

在美国,有个牛逼的大学,叫华盛顿大学,其中有个牛逼的计算机科学教授,佩德罗·多明戈斯(Pedro Domingos),他是《终极算法》的作者,还有很多著作和头衔,不过,今天我们关注的不是这些著作和头衔,而是他写过的一个著名的方程式:

机器学习=表示+优化+评估

上面的等式说明了优化是机器学习中十分关键的部分,本文就优化部分做一些讨论

凸优化和非凸优化的区别

       总的来说,凸优化和非凸优化的最大的区别在它们的目标函数及其可行域,凸优化问题的目标函数在其可行域内有一个特别优良的性质:局部最优解便是全局最优解。而非凸优化则不然,它在可行域内有多个局部最优解,求解其全局最优解则比较困难。

       机器学习优化中,常用的迭代算法如梯度下降法、牛顿法都比较容易得到局部最优解,而对于非凸优化的全局最优解,则难以稳定的求解。所以,人们更喜欢凸优化问题。

       构造完凸优化问题后,求解过程大致分为两部分,构造对偶问题,然后求解对偶问题从而获得原问题的解。

凸聚类

       将凸优化和聚类问题相结合,便构成了凸聚类问题。

       可以用矩阵的语言描述聚类问题,如下:

       

       显然,这两个目标是相互冲突的,因此任何一种聚类算法都希望在最大化类间距离和最小化类内距离之间取一个平衡点,故而诞生了不同的聚类算法。

       无论是k-means算法还是谱聚类算法,本质都是一个非凸问题,这使得问题的解受初始值的影响很大。虽然人们已经提出了很多不同的初始化算法来提升聚类性能,但至今都没有一种最优的初始化策略出现。通过将聚类问题描述为一个凸优化问题,凸聚类算法通过凸优化算法获得聚类问题的唯一解,从而避免初始值的选取对聚类结果的影响。

        上面目标函数的第一项为矩阵U与X之差的Frobenius范数,用来控制矩阵U与X的距离,第二项为矩阵U内部不同列之间距离的加权和,用来控制矩阵U内部不同列之间的距离。可以预见,能够目标函数最小的矩阵U可以使U与X接近的同时使U内列向量之间距离较小。在凸聚类算法处理后,U内部同属于一个聚类的向量距离会变小,而不属于同一个聚类的向量虽然距离也可能会变小,但是幅度不大,使得U内部的聚类模式体现得更加明显,之后只需要对矩阵U使用非常简单的聚类算法(比如k-means等),就可以获得U中列向量的聚类,它们也就对应了X中列向量的聚类。在实践中,一般使用直接比较U列向量之间距离的方法来确定聚类个数和每一个列向量所属的聚类。

       凸聚类算法试图绕过初始化问题,直接针对聚类问题设计出一个凸的目标函数,从而仅仅通过非常简单的算法就能求得全局最优解。通过连续可调的参数 ,凸聚类算法可以生成数目不等的聚类,从而实现对聚类个数k的间接控制。

作者这水平有限,有不足之处欢迎留言指正

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