[笔记]机器学习之机器学习理论及案例分析《二》 聚类

简介: [笔记]机器学习之机器学习理论及案例分析《二》 聚类

#21天学习挑战赛—机器学习#

活动地址:CSDN21天学习挑战赛

前言

聚类

聚类是在无标记样本的条件下将数据进行分组,从而发现天然的结构。

聚类是无监督学习的主要任务,分类是监督学习的主要任务。

聚类主要应用在:

  • 发现数据的潜在结构
  • 对数据进行自然分组
  • 对数据进行压缩

这几个方面的功能使聚类既可以作为预处理程序,又可以作为独立的数据分析工具。

聚类定义

数据聚类(或聚类分组)的目标是在一个对象(模式、数据点)的集合中发现其自然的分组。

关于聚类目前尚无统一的定义,比较常用的定义如下:

聚类是把一个数据对象的集合划分成簇(子集),使簇内对象彼此相似,簇间对象不相似的过程。

什么是簇

回答什么是簇这个根本性问方面,人们已经做了大量努力。

给定一个数据集X,距离函数d,考虑一个聚类函数F,Kleinbreg描述了以下3个属性:

  • 尺度不变性:对于任意距离函数d和任意常数a>0,有F(d)=F(αd)
  • 划分丰富性:聚类函数F输出的数据簇划分集合包含数据所有可能的簇划分结果(标记一下)
  • 距离一致性:令d和d是两个距离函数,如果d在的基础上缩小同一簇中数据之间的距离,扩大不同簇中数据之间的距离,则F(d)= F(d`)

简单地说就是:

簇:数据点分布为一团的数据集合为一簇,如下红色圈。

聚类分类

聚类方法大体可以分为3个阶段:

  • 经典算法:它是2000年以前,而向早期的数据库及相关应用开发的算法。比如基于模型的算法,基于划分的算法,基于密度的算法,基于网格的算法,层次聚类算法,
  • 高级算法:它是2000年以来,在经典算法的基础上,针对更为复杂的数据和任务开发的算法。比如谱聚类,高维数据聚类,基于非负数矩阵分解的聚类,不确定数据聚类:
  • 多源数据算法:它是针对多源相关数据开发的算法。比如:多角度聚类,多任务聚类,多任务多视角聚类,迁移聚类,多模聚类。

离群点

简单理解为噪声点 或者 离各个簇都很远,如下绿色圈中的

聚类算法实例

这里,我们以经典算法——基于划分的聚类算法——k-均值算法为例,对聚类进行初步探索。

备注:基于划分的方法是一种被广泛研究和应用的数据聚类方法,这类方法的大部分算法都有着简洁易懂,易于实现等优点,在许多领域都发挥巨大作用,基于划分的方法通过一个最优化的目标函数发掘数据中包含的类别信息结构,通常以迭代的方式逐步提高聚类的效果。

这里首先需要引入一个原型点的概念,即可以体现出某一类别特性的代表的点,因此,基于划分的算法通常需要设定某种确定的参数来选取可以代表对应簇的原型点.

原型点:可以体现出某一类别特性的代表的点

因此,基于划分的方法也称为基于原型的方法。

基于划分算法的基本流程:

K-Means算法(k-均值算法)

k-均值算法在许多学科科领域内得到了大量的研究和应用,具体如:

  • 数据压缩、
  • 数据分类、
  • 密度估计等方面,

因为其算法思想较为简洁易懂,且花费较小的计算代价可以获得不错的聚类结果等原因,k-均值算法成为各种聚类算法中较为常用的算法之一。

算法实现k-means是最大分离和最大内聚的最简单实现.

基本步骤是:

  • 寻找质心最佳位置

寻找质心最佳位置

假设我们有一个数据集 ,要分成K个聚类和一组K质心,则经由k-均值算法进行聚类分析后,产生的类别集合为C={C1,C2,,Ck},其聚类中心为:

其中,

集合M和质心有一个附加索引 t(作为上标)表示迭代次数,从最开始的开始,K-means试图最小化目标函数,我们可以使用误差平方和SSE作为度量聚类质量的目标函数:

如果SSE(t+1)<SSE(t),则表示质心正在接近一个最佳位置。

寻找最佳位置的过程就是一个迭代的过程,这个迭代过程也叫做劳埃德算法Lloyd’s Algorithm,通过给M0初始化随机值开始,下一步是给xi∈X的每个样本分配质心与x;距离最小的聚类:

完成所有分配后,新的质心将重新被赋值:

重复该过程直到质心停止变化。

有上述步骤可知,最初我们选择的质心对计算时间具有很大影响:

  • 如果非常接近那么,我们只需迭代几次就可以得到最佳位置
  • 但是 如果纯粹是随机的时候,无效的初始选择的概率接近于1.

同时,我们需要注意的是,劳埃德算法虽然计算简单且易于理解,但是算法易陷入局部最优解而不是全局最优解,对于这个问题,我们可以在同一个数据及上多运行几次k-均值算法,然后选取SSE(temd)最小的那次作为最终聚类结果。

关于均值

关于距离函数

维度灾难

我们可以了解到,传统的聚类算法在高维数据上的性能通常很差,

故我们在训练模型时,要特别注意维度灾难(curse of dimensionality)现象

定义

维度灾难,即当我们模型的特征个数不断增加时,模型性能可能会有提升,但是超过了某个值后,其性能不升反降。

举例,发生数据聚类有重叠的情况,说明可能是不同维度的重叠,虽然是仍然是两个簇,但平面上相交,三维为正常簇,引起的聚类分划问题。

产生的问题

维度灾难同时引发了过拟合问题,即模型在训练集上表现的良好,但在非训练集上表现一般,此时模型可能因为特征维数过多,从而学习了过多细节,泛化能力差。

在此,引用纳特·西菲尔的一句话:信息越多,问题越多。

在这个时代,我们的信息量增长速度过快,人们应该从干忧他们的噪声中分辨出有用的信号。但是由于人工筛选特征成本过大,再加上人们本身对所研究的事物不够了解,难以人工筛选出"有用的"特征,所以此时,我们就可以考虑,让模型自己去提取特征。

解决办法

为此,人们广泛研究了降维特征变换方法,将原始数据映射到一个新的特征空间,生成的数据更容易被现有的分类器分离。

一般来说,现有的数据变换方法有主成分分析(PCA)等线性变换和核方法、谱方法等非线性变换。

然而,高度复杂的数据隐藏结构仍然挑战着现有聚类方法的有效性。

随着深度学习的发展,深度神经网络由于其高度非线性转换的固有特性,可以用于将数据转换为更有利于聚类的表示。

我们将带深度学习的聚类方法称为深度聚类

总结

参考:

机器学习理论及案例分析(part3)–聚类

相关文章
|
3月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
193 6
|
5月前
|
机器学习/深度学习 算法 数据可视化
机器学习模型中特征贡献度分析:预测贡献与错误贡献
本文将探讨特征重要性与特征有效性之间的关系,并引入两个关键概念:预测贡献度和错误贡献度。
597 3
|
2月前
|
机器学习/深度学习 传感器 运维
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
本文探讨了时间序列分析中数据缺失的问题,并通过实际案例展示了如何利用机器学习技术进行缺失值补充。文章构建了一个模拟的能源生产数据集,采用线性回归和决策树回归两种方法进行缺失值补充,并从统计特征、自相关性、趋势和季节性等多个维度进行了详细评估。结果显示,决策树方法在处理复杂非线性模式和保持数据局部特征方面表现更佳,而线性回归方法则适用于简单的线性趋势数据。文章最后总结了两种方法的优劣,并给出了实际应用建议。
127 7
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
|
2月前
|
机器学习/深度学习 数据可视化 大数据
机器学习与大数据分析的结合:智能决策的新引擎
机器学习与大数据分析的结合:智能决策的新引擎
235 15
|
2月前
|
机器学习/深度学习 数据采集 运维
机器学习在运维中的实时分析应用:新时代的智能运维
机器学习在运维中的实时分析应用:新时代的智能运维
101 12
|
3月前
|
机器学习/深度学习 分布式计算 算法
【大数据分析&机器学习】分布式机器学习
本文主要介绍分布式机器学习基础知识,并介绍主流的分布式机器学习框架,结合实例介绍一些机器学习算法。
494 5
|
4月前
|
机器学习/深度学习 数据可视化 数据挖掘
机器学习中空间和时间自相关的分析:从理论基础到实践应用
空间和时间自相关是数据分析中的重要概念,揭示了现象在空间和时间维度上的相互依赖关系。本文探讨了这些概念的理论基础,并通过野火风险预测的实际案例,展示了如何利用随机森林模型捕捉时空依赖性,提高预测准确性。
186 0
机器学习中空间和时间自相关的分析:从理论基础到实践应用
|
4月前
|
数据采集 移动开发 数据可视化
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
这篇文章介绍了数据清洗、分析、可视化、模型搭建、训练和预测的全过程,包括缺失值处理、异常值处理、特征选择、数据归一化等关键步骤,并展示了模型融合技术。
483 1
模型预测笔记(一):数据清洗分析及可视化、模型搭建、模型训练和预测代码一体化和对应结果展示(可作为baseline)
|
4月前
|
机器学习/深度学习 计算机视觉 Python
模型预测笔记(三):通过交叉验证网格搜索机器学习的最优参数
本文介绍了网格搜索(Grid Search)在机器学习中用于优化模型超参数的方法,包括定义超参数范围、创建参数网格、选择评估指标、构建模型和交叉验证策略、执行网格搜索、选择最佳超参数组合,并使用这些参数重新训练模型。文中还讨论了GridSearchCV的参数和不同机器学习问题适用的评分指标。最后提供了使用决策树分类器进行网格搜索的Python代码示例。
252 1
|
4月前
|
机器学习/深度学习 数据采集 算法
【Python篇】从零到精通:全面分析Scikit-Learn在机器学习中的绝妙应用
【Python篇】从零到精通:全面分析Scikit-Learn在机器学习中的绝妙应用
70 2