sklearn之高斯混合模型

article/2025/10/12 7:29:36

什么是高斯分布?

高斯分布也叫正态分布,也就是常态分布,什么意思呢?比如说男性的身高,假如说有10000个男性的身高,如果再坐标系上标记出来就是一个正态分布,如果形状还不是和上面的图形一样,那说明数据量还不够,如果数据量足够多的情况下,

就会生成上面的正态分布图。事实上任何一种单一的概率分布都符合正态分布,正态分布的形状由平均值 μ \muμ和方差σ 2 \sigma^2σ2所决定。

 

一维正态分布公式:正态分布有两个参数,即期望(均数)μ和标准差σ,σ2为方差。

标准正态分布:

面积分布:一个sigmas是68%,俩个sigma是95%,三个sigma是99%(如上图)

举个例子:

公式是概率密度函数,也就是在已知参数的情况下,输入变量指x,可以获得相对应的概率密度。还要注意一件事,就是在实际使用前,概率分布要先进行归一化,也就是说曲线下面的面积之和需要为1,这样才能确保返回的概率密度在允许的取值范围内。

 

高斯混合模型(GMM)

高斯混合模型是对高斯模型进行简单的扩展,GMM使用多个高斯分布的组合来刻画数据分布。

但高斯不仅局限于一维,很容易将均值扩展为向量,标准差扩展为协方差矩阵,用n-维高斯分布来描述多维特征。

使用sklearn机器学习方法对高斯混合模型编程练习:

from sklearn import mixture
def test_GMM(dataMat, components=3,iter = 100,cov_type="full"):clst = mixture.GaussianMixture(n_components=n_components,max_iter=iter,covariance_type=cov_type)clst.fit(dataMat)predicted_labels =clst.predict(dataMat)return clst.means_,predicted_labels     # clst.means_返回均值

GaussianMixture的超参数介绍: 

sklearn.mixture.GaussianMixture(n_components=1, covariance_type='full', tol=0.001, reg_covar=1e-06, max_iter=100,
n_init=1, init_params='kmeans', weights_init=None, means_init=None, precisions_init=None, random_state=None, warm_start=False,
verbose=0, verbose_interval=10)
  • n_components: 混合高斯模型个数,默认为 1
  • covariance_type: 协方差类型,包括 {‘full’,‘tied’, ‘diag’, ‘spherical’} 四种,full 指每个分量有各自不同的标准协方差矩阵,完全协方差矩阵(元素都不为零), tied 指所有分量有相同的标准协方差矩阵(HMM 会用到),diag 指每个分量有各自不同对角协方差矩阵(非对角为零,对角不为零), spherical 指每个分量有各自不同的简单协方差矩阵,球面协方差矩阵(非对角为零,对角完全相同,球面特性),默认‘full’ 完全协方差矩阵
  • tol:EM 迭代停止阈值,默认为 1e-3.
  • reg_covar: 协方差对角非负正则化,保证协方差矩阵均为正,默认为 0
  • max_iter: 最大迭代次数,默认 100
  • n_init: 初始化次数,用于产生最佳初始参数,默认为 1
  • init_params: {‘kmeans’, ‘random’}, defaults to ‘kmeans’. 初始化参数实现方式,默认用 kmeans 实现,也可以选择随机产生
  • weights_init: 各组成模型的先验权重,可以自己设,默认按照 7 产生
  • means_init: 初始化均值,同 8
  • precisions_init: 初始化精确度(模型个数,特征个数),默认按照 7 实现
  • random_state : 随机数发生器
  • warm_start : 若为 True,则 fit()调用会以上一次 fit()的结果作为初始化参数,适合相同问题多次 fit 的情况,能加速收敛,默认为 False。
  • verbose : 使能迭代信息显示,默认为 0,可以为 1 或者大于 1(显示的信息不同)
  • verbose_interval : 与 13 挂钩,若使能迭代信息显示,设置多少次迭代后显示信息,默认 10 次。

参数介绍:

aic(X)         输入 X 上当前模型的 aic(X)Akaike 信息标准。
bic(X)            输入 X 上当前模型的 bic(X)贝叶斯信息准则。
fit(X[, y])        fit(X [,y])使用 EM 算法估算模型参数。
get_params([deep])        获取此估算器的参数。
predict(X)       预测(X)使用训练模型预测 X 中数据样本的标签。
predict_proba(X)           预测给定数据的每个组件的后验概率。
sample([n_samples])    从拟合的高斯分布生成随机样本。
score(X[, y])                 计算给定数据 X 的每样本平均对数似然。
score_samples(X)       计算每个样本的加权对数概率。
set_params(**params)  设置此估算器的参数。 

最主要的步骤是fit,然后内部在用em算法进行迭代求参数了。

首先,初始随机选择各参数的值。然后,重复下述两步,直到收敛。

  • E步骤。根据当前的参数,计算每个点由某个分模型生成的概率。
  • M步骤。使用E步骤估计出的概率,来改进每个分模型的均值,方差和权重。

高斯混合模型与K均值算法的相同点是:

  • 它们都是可用于聚类的算法;
  • 都需要 指定K值;
  • 都是使用EM算法来求解;
  • 都往往只能收敛于局部最优。

而它相比于K 均值算法的优点是,可以给出一个样本属于某类的概率是多少;不仅仅可以用于聚类,还可以用于概率密度的估计;并且可以用于生成新的样本点。

KMEANs聚类首先,我们先确定目标分组数量,这是K的数值,根据需要划分的族或分组的数量,随机初始化k个质心。然后将数据点指定给最近的质心,形成一个簇,接着更新质心,重新分配数据点。这个过程不断重复,直到质心的位置不再改变。

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

 

参考https://www.cnblogs.com/dahu-daqing/p/9456137.html

参考:https://www.cnblogs.com/nuochengze/p/12541550.html

参考:https://www.jianshu.com/p/94943da6102d

 


http://chatgpt.dhexx.cn/article/pNKoW1H0.shtml

相关文章

基于高斯混合模型的目标检测算法matlab仿真

目录 一、理论基础 二、核心程序 三、仿真结论 一、理论基础 高斯模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。 对图像背景建立…

高斯混合模型 GMM 的详细解释

高斯混合模型(后面本文中将使用他的缩写 GMM)听起来很复杂,其实他的工作原理和 KMeans 非常相似,你甚至可以认为它是 KMeans 的概率版本。 这种概率特征使 GMM 可以应用于 KMeans 无法解决的许多复杂问题。 因为KMeans的限制很多…

高斯混合模型学习笔记

高斯混合模型学习笔记 根据师兄(王延凯的博客)以及其他博主大佬的总结学习高斯混合模型,自己也作一下学习记录。 目录 高斯混合模型学习笔记1、模型介绍2、模型求解步骤举个栗子通用背景模型UBM[\[2\]](https://blog.csdn.net/weixin_44278…

机器学习笔记之高斯混合模型(一)模型介绍

机器学习笔记之高斯混合模型——模型介绍 引言高斯混合模型介绍示例介绍从几何角度观察高斯混合模型从混合模型的角度观察 概率混合模型的引出从概率生成模型的角度观察高斯混合模型 引言 上一系列介绍了EM算法,本节将介绍第一个基于EM算法求解的概率生成模型——高…

图像处理之高斯混合模型

一、高斯混合模型 现有的图像中目标的分类常用深度学习模型处理,但是深度学习需要大量模型处理。对于明显提取的目标,常常有几个明显特征,利用这几个明显特征使用少量图片便可以完成图像目标分类工作。这里介绍使用高斯混合模型GMM处理图像。…

机器学习 高斯混合模型

高斯混合模型 前言高斯混合模型高斯分布混合模型高斯模型单高斯模型高斯混合模型高斯混合模型训练EM算法 应用图像背景的高斯混合模型智能监控系统 参考 前言 之前在一次技术讨论当中,针对文本处理的时候被问到高斯混合模型。当时我对“高斯混合模型”都是比较懵圈…

高斯混合模型GMM

1. 高斯混合模型概念 高斯混合模型(Gaussian Mixture Model)是一种聚类算法,它是多个高斯分布函数的线性组合,通常用于解决同一集合下的数据包含多种不同的分布情况。 2.高斯混合模型的一个例子 在校园里随机抽取2000个学生&#…

高斯混合模型

一、什么是高斯混合模型(GMM) 高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,通常用于解决同一集合下的数据包含多个不同的分布的情况,如解决分类情况 如下图,明显分成两…

【技术分享】高斯混合模型

本文原作者:尹迪,经授权发布。 原文链接:https://cloud.tencent.com/developer/article/1480731 导语:现有的高斯模型有单高斯模型(SGM)和高斯混合模型(GMM)两种。从几何上讲&#…

高斯混合模型(GMM)

高斯混合模型 k-means 聚类模型非常简单并且易于理解,但是它的简单性也为实际应用带 来了挑战。特别是在实际应用中,k-means 的非概率性和它仅根据到簇中心点的距离来指 派簇的特点将导致性能低下。这一节将介绍高斯混合模型,该模型可以被看…

机器学习笔记 - 什么是高斯混合模型(GMM)?

1、高斯混合模型概述 高斯混合模型 (GMM) 是一种机器学习算法。它们用于根据概率分布将数据分类为不同的类别。高斯混合模型可用于许多不同的领域,包括金融、营销等等!这里要对高斯混合模型进行介绍以及真实世界的示例、它们的作用以及何时应该使用GMM。 高斯混合模型 (GMM) …

机器学习算法(二十九):高斯混合模型(Gaussian Mixed Model,GMM)

目录 1 混合模型(Mixture Model) 2 高斯模型 2.1 单高斯模型 2.2 高斯混合模型 3 模型参数学习 3.1 单高斯模型 3.2 高斯混合模型 4 高斯混合模型与K均值算法对比 1 混合模型(Mixture Model) 混合模型是一个可以用来表示在总…

重启虚拟机异常:Unmount and run xfs_repair

重启虚拟机异常:Unmount and run xfs_repair 解决办法: 原因:看出来应该是sda3分区损坏,修复就可以了 1:启动虚拟机E进入单用户模式 2:在linux16开头的哪一行后面添加rd.break,ctrlx进入救援模式…

Unmount and run xfs_repair

开启虚拟机报错:Unmount and run xfs_repair 从错误可以查看到是vda3错误。 解决办法: 1、umount /dev/vda3 2、xfs_repair -L /dev/vda3 3、reboot 就ok了。

Linux mount/unmount命令

开机自动挂载 如果我们想实现开机自动挂载某设备,只要修改/etc/fstab文件即可。 文件挂载的配置文件:/etc/fstab 查看此文件可知 每行定义一个要挂载的文件系统; 其每行的格式如下 要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项…

android.permission.MOUNT_UNMOUNT_FILESYSTEMS添加权限报错

<!--这是在sd卡内创建和删除文件权限--> <uses-permission android:name"android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name"android.permission.WRITE_SETTINGS" /> 出现报错有两种解决方法&#xff1…

Centos7 虚拟机非法关机导致系统无法启动报Unmount and run xfs_repair的解决方法

1&#xff0c;电脑不正常启动导致我的虚拟机无法启动&#xff0c;报以下错误Unmount and run xfs_repair&#xff0c;大概意思是xfs文件系统出现问题了&#xff0c;导致无法挂载&#xff0c;需要使用xfs_repair进行修复。 2&#xff0c;执行如下命令 xfs_repair /dev/mapper/c…

linux下unmount了移动硬盘之后,硬盘灯还是常亮并且硬盘还在一直转动

linux下unmount了移动硬盘之后&#xff0c;硬盘灯还是常亮并且硬盘还在一直转动 ​ 参考:https://www.zhihu.com/question/23362385 希捷2T移动硬盘 在windows下卸载硬盘之后硬盘灯就不亮了&#xff0c;手摸也没有震动感。 在ubuntu下卸载硬盘之后&#xff0c;硬盘灯仍然常…

centos7异常断电,重启提示Unmount and run xfs_repair

周末服务器由于阵列卡问题&#xff0c;异常重启&#xff0c;重启后前台异常报错&#xff0c;提示磁盘元数据问题&#xff0c;需要修复 如故障图所示&#xff0c;sdb1&#xff0c;sdf1&#xff0c;sdi1 3块磁盘出现问题&#xff0c; 下面的解决办法&#xff1a; 解决办法&…

Android/C/C++ 中解决 USB UnMount(禁止USB端口)

引&#xff1a;因为某些特殊需求&#xff0c;需要在某些设备接入车机的时候&#xff0c;动态UnMount USB设备&#xff0c;因为代码其中有一些方法是自定义过的&#xff0c;所以该文章仅供思路参考。 &#xff08;20200319 更新&#xff09;&#xff1a;在后续跟进中&#xff0…