当前位置: 首页 > news >正文

sheng的学习笔记-AI-高斯混合模型(GMM)

AI目录:sheng的学习笔记-AI目录-CSDN博客

需要学习前置知识:

聚类,可参考  sheng的学习笔记-AI-聚类(Clustering)-CSDN博客

EM算法,可参考 sheng的学习笔记-AI-EM算法-CSDN博客

贝叶斯,可参考  sheng的学习笔记-AI-贝叶斯(Bayesian)分类-CSDN博客

基础知识

什么是高斯混合模型

高斯混合模型(Gaussian Mixture Models ,GMMs)假设存在一定数量的高斯分布,并且每个分布代表一个簇。高斯混合模型倾向于将属于同一分布的数据点分组在一起

它是一种基于概率分布的聚类算法,它是首先假设每个簇符合不同的高斯分布,也就是多元正态分布,说白了就是每个簇内的数据会符合一定的数据分布。

我们有三个簇,用三种颜色表示-蓝色、绿色和青色。我们用红色突出显示一个数据点,这个点划分进蓝色簇的概率为1,而划分进绿色簇或者青色簇的概率为0。

考虑另一个点-介于蓝色和青色簇之间(在下图中突出显示),这个点划分进绿色簇的概率为0,对吧?而划分进蓝色、青色簇的概率分别是0.2,0.8。

不再使用基于距离的模型,而是使用基于分布的模型,这就是高斯混合模型出现在本文的意义

举例

想象你在一个果园,这个果园里有苹果、梨和桃子三种水果。每种水果的大小和重量都有一定的特点。高斯混合就像是我们用来描述这些水果特点的工具。在这个模型中,我们用三个“高斯分布”(简单来说,就是一种特殊的图形或曲线)来分别描述苹果、梨和桃子的大小和重量。

每个高斯分布都可以被看作是一条“曲线”,这条曲线的形状由三个参数决定:均值(中心位置)、协方差(宽度或形状)和混合系数(高度)。算法的目标就是调整这些曲线,让它们尽可能准确地描述每种水果的特点。

数学知识

正态分布/高斯分布

正态分布(Normal distribution),也称“常态分布”,又叫高斯分布(Gaussian distribution),正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟形曲线

(多元)高斯分布

上述的只适用于单个变量,在两个变量的情况下,我们将得到如下所示的三维钟形曲线,而不是二维钟形曲线:

对n维样本空间X中的随机向量x,若x服从高斯分布,其概率密度函数为

其中的a,是代表我们选择每个簇的概率,那么它的和肯定是等于1的

流程

  1. 假设k个高斯分布,然后判断每个样本符合各个分布的概率,将该样本划为概率最大的那个分布簇内
  2. 然后一轮后,进行更新我们的高斯分布参数,就会用到我们的极大似然估计
  3. 然后再基于新的分布去计算符合各个分布的概率,不断迭代更新,直至模型收敛达到局部最优解,常见的算法就是EM算法,它会同时估计出每个样本所属的簇类别以及每个簇的概率分布的参数。

概率密度常记为:f(X)=p(x∣μi​,∑)   意思就是在参数为一定值的情况下符合的分布,对应相应的概率密度函数。

我们会求出数据 j 符合每个分布的概率,然后获得之中最大的概率,那么数据 j 就会被划分到与之对应的簇

在求该概率时,公式分子和分母都存在某一分布的概率密度,我们只是知道符合高斯分布,但是具体的参数是不知道的,

为了获得概率密度函数,采用极大似然的方式(常见的有EM算法),就是我们的样本数据出现在对应分布的概率乘积达到最大

最大化似然:

算法代码

上图中公式如下

解释如下 

示例

数据集:

参考文章

【机器学习】聚类算法——高斯混合聚类(理论+图解)-CSDN博客

独家 | 使用高斯混合模型,让聚类更好更精确(附数据&代码&学习资源)

书 :机器学习  周志华

http://www.lryc.cn/news/388746.html

相关文章:

  • OFDM的缺点与关键技术
  • 电脑录音软件哪个好?7款录制音频工具大盘点,赶快学起来!(2024)
  • 【Android面试八股文】你说你使用Leakcanary进行内存泄漏检测,那你能说一说Leakcanary的原理吗?
  • 蒂升电梯职业性格和Verify认知能力SHL测评答题攻略及薪资待遇解密!
  • window上部署sql server改动端口、和sqlserver的一些还原、批量插入存储过程的命令
  • 【单片机与嵌入式】stm32串口通信入门
  • 启动Redis服务器
  • uniapp中使用threejs加载几何体
  • 【SQL注入】 数据库基础
  • 文件操作~
  • 身边的故事(十二):阿文的故事:消失
  • 智能扫地机器人程序中出现的问题可以参考的解决方案
  • 如何借用物联网快速实现高标准农田信息化
  • 计算机网络基础入门
  • uniApp vue2 vue3配置代理
  • 运维锅总详解RocketMQ
  • 【Linux】使用ntp同步时间
  • 【FedMut】Generalized Federated Learning via Stochastic Mutation
  • 在线教育项目(一):如何防止一个账号多个地方登陆
  • 旋转变压器软件解码simulink仿真
  • LeetCode 1321, 209, 102
  • vant ( weapp ) - - - - - van-tabs组件选中下划线初始位置异常
  • 007 栈(lua)
  • SQL中Order by详解
  • 【git】存在git LFS文件时如何处理
  • 面向阿克曼移动机器人(自行车模型)的LQR(最优二次型调节器)路径跟踪方法
  • 【运维】在 Docker 容器中指定 UTF-8 编码:方法与技巧
  • primetime中cell和net的OCV
  • FlinkX学习
  • 新书速览|解密AI绘画与修图: Stable Diffusion+Photoshop