十七、【机器学习】【非监督学习】- K-均值 (K-Means)

系列文章目录

第一章 【机器学习】初识机器学习

第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression)

第三章 【机器学习】【监督学习】- 支持向量机 (SVM)

第四章【机器学习】【监督学习】- K-近邻算法 (K-NN)

第五章【机器学习】【监督学习】- 决策树 (Decision Trees)

第六章【机器学习】【监督学习】- 梯度提升机 (Gradient Boosting Machine, GBM)

第七章 【机器学习】【监督学习】-神经网络 (Neural Networks)

第八章【机器学习】【监督学习】-卷积神经网络 (CNN)

第九章【机器学习】【监督学习】-循环神经网络 (RNN)

第十章【机器学习】【监督学习】-线性回归

第十一章【机器学习】【监督学习】-局部加权线性回归 (Locally Weighted Linear Regression, LWLR)

第十二章【机器学习】【监督学习】- 岭回归 (Ridge Regression)

十三、【机器学习】【监督学习】- Lasso回归 (Least Absolute Shrinkage and Selection Operator)

十四、【机器学习】【监督学习】- 弹性网回归 (Elastic Net Regression)

十五、【机器学习】【监督学习】- 神经网络回归

十六、【机器学习】【监督学习】- 支持向量回归 (SVR)


目录

系列文章目录

一、非监督学习

(一)、定义

(二)、训练流程

(三)、基本算法分类

[二、K-均值 (K-Means)](#二、K-均值 (K-Means))

(一)、定义

(二)、基本概念

(三)、训练过程

(四)、特点

(五)、适用场景

(六)、扩展

三、总结


一、非监督学习

(一)、定义

非监督学习是一种机器学习方法,它处理的是没有标签的数据集。与监督学习不同,非监督学习算法不需要知道数据的正确分类或目标值。它的目标是通过数据内部的结构和模式来推断出有意义的信息,如数据的分布、聚类、降维或异常检测等。

(二)、训练流程

非监督学习的训练流程通常包含以下几个步骤:

  1. 数据准备:收集和预处理数据,可能包括数据清洗、缺失值处理、数据标准化或归一化等。

  2. 模型选择:根据问题的性质选择合适的非监督学习算法。

  3. 参数初始化:初始化模型的参数,这一步对于某些算法至关重要,如K-means聚类。

  4. 模型训练:使用无标签数据训练模型,寻找数据中的结构或模式。这一过程可能涉及到迭代优化,直到满足某个停止准则,如收敛或达到预定的迭代次数。

  5. 结果评估:评估模型的结果,这通常比监督学习更具有挑战性,因为没有明确的"正确答案"。评估可能基于内在指标(如聚类的紧凑度和分离度)或外在指标(如与已知分类的比较)。

  6. 应用模型:使用训练好的模型对新数据进行分析或预测,如对新数据进行聚类或降维。

(三)、基本算法分类

非监督学习算法可以大致分为以下几类:

  1. 聚类算法:用于将数据点分组到不同的簇中,常见的算法有K-means、层次聚类、DBSCAN、Gaussian Mixture Models等。

  2. 降维算法:用于减少数据的维度,同时尽可能保留数据的结构信息,常见的算法有PCA(主成分分析)、t-SNE(t-分布随机邻域嵌入)、自编码器等。

  3. 关联规则学习:用于发现数据集中项之间的关系,如Apriori算法和Eclat算法。

  4. 异常检测算法:用于识别数据集中的异常点或离群点,如Isolation Forest、Local Outlier Factor等。

  5. 自组织映射(SOM):一种神经网络模型,用于数据可视化和聚类,可以将高维数据映射到低维空间中。

  6. 生成模型:如变分自编码器(VAE)和生成对抗网络(GAN),它们可以生成类似训练数据的新样本。

非监督学习在很多场景中都有广泛应用,如客户细分、图像识别、自然语言处理、生物信息学和推荐系统等。由于其灵活性和在处理大量未标注数据时的优势,非监督学习是数据科学和人工智能领域的重要组成部分。


二、K-均值 (K-Means)

(一)、定义

K-Means是一种无监督学习的聚类算法,主要用于将数据集分割成K个互不相交的子集(或簇),每个子集中的数据点彼此相似,而不同子集间的数据点差异较大。K-Means算法通过最小化簇内数据点到簇中心(均值)的平方距离之和来达到聚类的目的。

(二)、基本概念

  1. 簇 (Cluster):数据集中形成的每个分组称为一个簇,算法的目标是创建K个这样的簇。
  2. 质心 (Centroid):每个簇的中心点,通常定义为该簇中所有数据点的平均位置。
  3. 距离度量:K-Means通常使用欧几里得距离来衡量数据点之间的相似性或差异性。
  4. 初始化:K-Means开始时需要随机选择K个数据点作为初始质心。
  5. 收敛条件:算法在质心不再发生显著变化或达到预定的迭代次数时停止。

(三)、训练过程

K-Means算法是一种迭代型的聚类算法,其训练过程主要包括以下几个关键步骤:

1. 初始化
  • 选择K个初始质心:随机选取数据集中的K个点作为初始质心。这些点可以是随机选择的数据点,也可以是数据集中的随机位置。选择的方式会影响到后续迭代的速度和最终聚类的结果。
2. 分配数据点
  • 计算距离:对于数据集中的每一个点,计算其到所有K个质心的距离。通常采用欧几里得距离,但也可以使用其他距离度量,如曼哈顿距离。
  • 分配簇:将每个数据点分配给距离最近的质心所代表的簇。这意味着数据点将加入到与其最近的质心相同的簇中。
3. 更新质心
  • 计算新质心:对于每个簇,计算其所有数据点的平均值,这个平均值将成为新的质心。如果簇为空,则可能需要采取某种策略来处理,比如将其保持不变或重新初始化。
4. 判断收敛
  • 检查质心变化:比较新旧质心的位置,如果质心的位置变化小于某个阈值或者达到预设的最大迭代次数,则认为算法已经收敛,可以停止迭代。
  • 迭代:如果质心仍在显著变化,回到步骤2,重复分配数据点和更新质心的过程。
5. 结果输出
  • 输出聚类结果:一旦算法收敛,输出最终的K个质心以及每个数据点所属的簇。这构成了K-Means算法的最终输出。
扩展:处理特定情况
  • 空簇处理:在某些迭代中,可能会出现某个簇没有数据点的情况,这时需要决定如何处理,常见的做法是将最近的未分配数据点分配给该簇,或者重新随机选择一个新的质心。
  • 随机初始化的影响:由于K-Means对初始质心的选择很敏感,可以使用多次随机初始化和运行算法,然后选择最佳的聚类结果。例如,使用K-Means++初始化方法可以改善算法的性能。
性能考虑
  • 优化算法:在大数据集上,可以使用近似算法或优化技巧来加速K-Means,如Mini-Batch K-Means,它每次只使用数据集的一小部分来更新质心,从而减少计算成本。

K-Means算法的训练过程是迭代和渐进的,直到满足收敛条件为止。在整个过程中,算法试图最小化每个数据点到其所属簇质心的距离平方和,以此来优化聚类结果。

(四)、特点

  • 简单快速:算法实现简单,计算效率高。
  • 局部最优:容易陷入局部最优解,结果受初始质心选择影响。
  • K值选择:需要事先确定K的值,这可能需要领域知识或试错。
  • 球形簇假设:假设簇是球形的,且大小相似,对于其他形状的簇效果不佳。
  • 敏感性:对异常值敏感,异常值可能显著影响质心的位置。

(五)、适用场景

  • 市场细分:在市场营销中对客户进行分类。
  • 图像压缩:用于颜色量化,减少图像中颜色的数量。
  • 文档分类:基于词频将文档分成不同主题的类别。
  • 推荐系统:通过对用户行为进行聚类,为用户推荐相似兴趣的内容。
  • 基因表达分析:在生物信息学中,对基因表达数据进行聚类分析。

(六)、扩展

K-Means存在一些限制,因此有许多变种和扩展,例如:

  • K-Medoids:使用簇中实际的数据点作为质心,而不是平均值,更健壮于异常值。
  • Gaussian Mixture Models (GMM):使用概率模型,可以处理不同大小和形状的簇。
  • Fuzzy C-Means (FCM):允许数据点属于多个簇,具有隶属度的概念。
  • Mini-Batch K-Means:在大数据集上使用随机样本批次来更新质心,提高效率。
  • Bisecting K-Means:通过递归地将簇一分为二来寻找最优聚类。

三、总结

K-Means及其变种在数据科学和机器学习中占据重要地位,广泛应用于各种数据聚类问题。

相关推荐
这个男人是小帅32 分钟前
【GAT】 代码详解 (1) 运行方法【pytorch】可运行版本
人工智能·pytorch·python·深度学习·分类
__基本操作__34 分钟前
边缘提取函数 [OPENCV--2]
人工智能·opencv·计算机视觉
Doctor老王38 分钟前
TR3:Pytorch复现Transformer
人工智能·pytorch·transformer
热爱生活的五柒38 分钟前
pytorch中数据和模型都要部署在cuda上面
人工智能·pytorch·深度学习
HyperAI超神经3 小时前
【TVM 教程】使用 Tensorize 来利用硬件内联函数
人工智能·深度学习·自然语言处理·tvm·计算机技术·编程开发·编译框架
扫地的小何尚4 小时前
NVIDIA RTX 系统上使用 llama.cpp 加速 LLM
人工智能·aigc·llama·gpu·nvidia·cuda·英伟达
埃菲尔铁塔_CV算法7 小时前
深度学习神经网络创新点方向
人工智能·深度学习·神经网络
艾思科蓝-何老师【H8053】7 小时前
【ACM出版】第四届信号处理与通信技术国际学术会议(SPCT 2024)
人工智能·信号处理·论文发表·香港中文大学
秀儿还能再秀7 小时前
机器学习——简单线性回归、逻辑回归
笔记·python·学习·机器学习
weixin_452600697 小时前
《青牛科技 GC6125:驱动芯片中的璀璨之星,点亮 IPcamera 和云台控制(替代 BU24025/ROHM)》
人工智能·科技·单片机·嵌入式硬件·新能源充电桩·智能充电枪