【机器学习】聚类算法——K-Means算法(理论+图解)

简介: 【机器学习】聚类算法——K-Means算法(理论+图解)

简 介:下面是我在学习时候的记录并加上自己的理解。本文意在记录自己近期学习过程中的所学所得,如有错误,欢迎大家指正。

 

关键词:Python、机器学习、K-Means聚类

一、K-Means聚类

其实它是一种基于质心的聚类,为什么这么说呢?因为它的设计思想就是从总样本中找到几个标志性的数据,将其定为每个簇的数据中心,然后分别判断每个数据的距离状况,然后进行更新每个簇内的质心。

对于样本集 D = { x 1 , x 2 . . . x n } D=\{x_1,x_2...x_n\}D={x1,x2...xn} 来说,我们要将其分成k个数据簇,也就是对应 C = { C 1 , C 2 , . . . C k } C=\{C_1,C_2,...C_k\}C={C1,C2,...Ck} ,如果是这样,那么我们的目标优化函数就是:

E = ∑ i = 1 k ∑ x ∈ C i ∣ ∣ x − μ i ∣ ∣ 2 2 E=\sum_{i=1}^k\sum_{x\in C_i}||x-\mu_i||_2^2E=i=1kxCixμi22

我们就是要优化该函数,也就是要E越小越好,但是该函数我们是很难进行优化的,因为如果我们要想计算出它的最优解,那么就要穷举出所有的簇分类可能,但是这在实际中是很难进行的,所以就要考虑局部最优采用贪心算法进行优化,我们每次只是进行更新该簇内的质心,然后不断迭代此过程。

二、算法详细流程

  1. 首先确定样本集和待划分的簇类数k
  2. 从样本集中随机初始k个数据中心点
  3. 迭代每一个样本,计算每一个样本对k个数据中心的距离
  4. 标记样本为距离该样本最近的类别簇中
  5. 第一轮遍历数据完成,所有的样本已经找到了自己所属的簇,但这还不是最终的类别,所以还要进行第二轮迭代
  6. 在第二轮迭代之前,需要更新每个簇内的质心
  7. 计算每个簇内的质心 μ = 1 C ∑ x ∈ C x \mu=\frac{1}{C}\sum_{x\in C}xμ=C1xCx
  8. 然后重复3-7的步骤,知道达到预期迭代次数或者两次迭代结果,簇内数据不发生任何变化

算法实现需要注意的几个问题:

  • 类中心向量的初值一般是采用随机初始化的,所以这可能导致每一次的模型聚类效果不同,因为算法内部使用了采用贪心,所以可能导致每次的效果分类不一样。
  • 簇的个数的确定,因为簇的个数事先是无法确定的,我们也不清楚到底将数据分为几个类别,所以我们需要不断地调整k的个数,来判断聚类的效果
  • 迭代终止原则,一般是会定义一个阈值,如果我们两次迭代后发现每个簇的类中心的变化距离小于我们设定的阈值,就说明本次迭代没有发生较大的数据变动,则迭代终止。
目录
相关文章
|
2月前
|
机器学习/深度学习 算法 数据挖掘
8个常见的机器学习算法的计算复杂度总结
8个常见的机器学习算法的计算复杂度总结
8个常见的机器学习算法的计算复杂度总结
|
15天前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
20 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
28天前
|
机器学习/深度学习 数据采集 算法
数据挖掘和机器学习算法
数据挖掘和机器学习算法
|
1月前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
163 1
|
2月前
|
机器学习/深度学习 存储 算法
图解最常用的 10 个机器学习算法!
图解最常用的 10 个机器学习算法!
|
13天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
43 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
2月前
|
机器学习/深度学习 存储 人工智能
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
本文是关于2022-2023年知能科技公司机器学习算法工程师岗位的秋招笔试题,包括简答题和编程题,简答题涉及神经网络防止过拟合的方法、ReLU激活函数的使用原因以及条件概率计算,编程题包括路径行走时间计算和两车相向而行相遇时间问题。
62 2
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
基于python 机器学习算法的二手房房价可视化和预测系统
文章介绍了一个基于Python机器学习算法的二手房房价可视化和预测系统,涵盖了爬虫数据采集、数据处理分析、机器学习预测以及Flask Web部署等模块。
基于python 机器学习算法的二手房房价可视化和预测系统
|
2月前
|
机器学习/深度学习 算法 数据挖掘
机器学习必知必会10大算法
机器学习必知必会10大算法
|
2月前
|
机器学习/深度学习 算法 数据挖掘
【白话机器学习】算法理论+实战之决策树
【白话机器学习】算法理论+实战之决策树
下一篇
无影云桌面