机器学习6——EM算法与高斯混合模型GMM

news2024/11/25 16:53:10

前置内容

Jensen不等式
高斯混合模型
多元高斯模型
拉格朗日乘子法

主要内容

在这里插入图片描述

EM算法(Expectation-Maximization),期望-最大化。 用于保证收敛到MLE(最大似然估计)。主要用于求解包含隐变量的混合模型,主要思想是把一个难于处理的似然函数最大化问题用一个易于最大化的序列取代,而其极限是原始问题的解。

高斯混合模型

高斯混合模型 (GMM) 是一种机器学习算法。它们用于根据概率分布将数据分类为不同的类别。
高斯混合模型 (GMM) 是一个概率概念,用于对真实世界的数据集进行建模。GMM是高斯分布的泛化,可用于表示可聚类为多个高斯分布的任何数据集。
GMM 有许多应用,例如密度估计、聚类和图像分割。对于密度估计,GMM 可用于估计一组数据点的概率密度函数。对于聚类,GMM 可用于将来自相同高斯分布的数据点组合在一起。对于图像分割,GMM 可用于将图像划分为不同的区域。
高斯混合模型可用于各种用例,包括识别客户群、检测欺诈活动和聚类图像。在这些示例中的每一个中,高斯混合模型都能够识别数据中可能不会立即明显的聚类。因此,高斯混合模型是一种强大的数据分析工具,应该考虑用于任何聚类任务。

GMM API

# 高斯混合的变分贝叶斯估计。
mixture.BayesianGaussianMixture(*[, ...]) Variational Bayesian estimation of a Gaussian mixture.
mixture.GaussianMixture([n_components, ...]) Gaussian Mixture.

详解

class sklearn.mixture.BayesianGaussianMixture(*, n_components=1, covariance_type='full', tol=0.001, reg_covar=1e-06, max_iter=100, n_init=1, init_params='kmeans', weight_concentration_prior_type='dirichlet_process', weight_concentration_prior=None, mean_precision_prior=None, mean_prior=None, degrees_of_freedom_prior=None, covariance_prior=None, random_state=None, warm_start=False, verbose=0, verbose_interval=10)
class 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)[source]

参数:

  • n_components:int, default=1
    混合物组分的数量。
  • covariance_type:{‘full’, ‘tied’, ‘diag’, ‘spherical’}, default=’full’
    描述要使用的协方差参数类型的字符串。必须是以下之一:
    “full”:每个组件都有自己的通用协方差矩阵。
    “tied”:所有组件共享相同的通用协方差矩阵。
    “diag”:每个组件都有自己的对角协方差矩阵。
    “spherical”:每个分量都有自己的单一方差。
  • tol:float, default=1e-3
    收敛阈值。当下限平均增益低于此阈值时,EM迭代将停止。
  • reg_covar:float, default=1e-6
    非负正则化添加到协方差的对角线上。允许确保协方差矩阵均为正。
  • max_iter:int, default=100
    要执行的EM迭代次数。
  • n_init:int, default=1
    要执行的初始化次数。保持最佳结果。
    init_params:{‘kmeans’,‘k-means++’,‘random_from_data’},default =‘kmeans’
    用于初始化权重、平均值和精度的方法。字符串必须是以下之一:
    “kmean”:使用kmean初始化职责。
    “k-means++”:使用k-means+方法进行初始化。
    “随机”:职责随机初始化。
    “random_from_data”:初始均值是随机选择的数据点。
  • weights_init:array-like of shape (n_components, ), default=None
    用户提供了初始权重。如果为None,则使用init_params方法初始化权重。
  • means_init:array-like of shape (n_components, n_features), default=None
    用户提供的初始方法,如果为None,则使用init_params方法初始化方法。
  • precisions_init:array-like, default=None
    用户提供了初始精度(协方差矩阵的倒数)。如果为None,则使用“init_params”方法初始化精度。形状取决于“协变类型”:
    (n_components,) if ‘spherical’,
    (n_features, n_features) if ‘tied’,
    (n_components, n_features) if ‘diag’,
    (n_components, n_features, n_features) if ‘full’
  • random_state:int, RandomState instance or None, default=None
    控制为所选方法提供的随机种子,以初始化参数(请参见init_params)。此外,它还控制从拟合分布生成随机样本(见方法样本)。在多个函数调用之间传递一个int以获得可复制的输出。请参阅词汇表。
  • warm_start:bool, default=False
    如果“warm_start”为True,则最后一次拟合的解决方案将用作下次调用fit()的初始化。当在类似问题上多次调用fit时,这可以加快收敛速度。在这种情况下,将忽略“n_init”,并且在第一次调用时只进行一次初始化。请参阅术语表。
  • verbose:int, default=0
    启用详细输出。如果为1,则打印当前初始化和每个迭代步骤。如果大于1,则还会打印日志概率和每个步骤所需的时间。
  • verbose_interval:int, default=10
    下一次打印前完成的迭代次数。

参考

1.EM算法视频:https://www.bilibili.com/video/BV1Ca411M7KA/?p=10&spm_id_from=333.880.my_history.page.click&vd_source=c35b16b24807a6dbe33f5473659062ac
2.机器学习笔记 - 什么是高斯混合模型(GMM)?:https://blog.csdn.net/bashendixie5/article/details/124891359

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/13790.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

R生成三线表

R生成三线表table1包测试数据生成制作三线表Tableone包加载包 探索数据类型数据整理分类构建Table函数Tableone函数细节主要基于table1 或tableone 包table1包 测试数据生成 datadata.frame(性别sample(c("男","女"), 1000,replaceT),年龄round(rnorm(10…

2021年认证杯SPSSPRO杯数学建模A题(第一阶段)医学图像的配准全过程文档及程序

2021年认证杯SPSSPRO杯数学建模 A题 医学图像的配准 原题再现: 图像的配准是图像处理领域中的一个典型问题和技术难点,其目的在于比较或融合同一对象在不同条件下获取的图像。例如为了更好地综合多种信息来辨识不同组织或病变,医生可能使用…

5年自动化测试,终于进字节跳动了,年薪30w其实也并非触不可及

一些碎碎念 什么都做了,和什么都没做其实是一样的,走出“瞎忙活”的安乐窝,才是避开弯路的最佳路径。希望我的经历能帮助到有需要的朋友。 在测试行业已经混了5个年头了,以前经常听到开发对我说,天天的点点点有意思没…

java计算机毕业设计springboot+vue+elementUI永加乡精准扶贫信息管理系统

项目介绍 系统设计的主要意义在于,一方面,对于网站来讲,系统上线后可以带来很大的便利性,精准扶贫网站管理属于非常细致的管理模式,要求数据量大,计算机管理可以提高精确性,更为便利的就是信息…

NF-κB 信号通路调节细胞因子转录

NF-κB 大家族哺乳动物 NF-κB 家族由五种成员组成:RelA/p65、c-Rel、RelB、p50 (NF-κB1) 和 p52 (NF-κB2),它们可以形成各种异源二聚体或者同源二聚体 (如常见 p50/RelA 异源二聚体),并通过与启动子的 κB 位点结合来激活大量基因。所有 N…

Mysql常用函数

Mysql常用函数 字段拼接(concat) CONCAT() 函数用于将多个字符串连接成一个字符串 格式: select CONCAT(str1,str2,…) from table_name; #查询商品表,返回一列:商品名称(价格)。 SELECT concat(prod_name,(,prod…

【论文阅读】Weakly Supervised Semantic Segmentation using Out-of-Distribution Data

一篇弱监督分割领域的论文,发表在CVPR2022上: 论文标题: Weakly Supervised Semantic Segmentation using Out-of-Distribution Data 作者信息: 代码地址: https://github.com/naver-ai/w-ood Abstract 作者认为…

专精特新小巨人的申报条件

专精特新企业分为市级专精特新、省级专精特新和国家级专精特新。 在2018年,开展了国家第一批专精特新“小巨人” 企业申报工作。为了引导中小企业积极走“专精特新”发展之路,加快新旧动能转 换步伐,提升自主创新能力、加快转型升级&#xf…

软考的网络工程师对就业有用吗?

考证只是一个结果,学会技能才是最重要的。 视工作而言,软考中级网络工程师的性价比还是非常高的,对于从事同类的技术人员,基础扎实一般可以裸考通过。 含金量嘛,计算机专业可以以考代凭,毕竟证书是人社部和…

安装谷歌服务框架2022最新版本22.45.15失败

在这里(谷歌play服务框架下载安装安卓版-谷歌服务框架2022最新版本(Google Play 服务)下载22.45.15官方手机版-蜻蜓手游网 (qt6.com)http://www.qt6.com/XiaZai/155507.html)下载了谷歌服务框架(Google Play 服务),其应用信息为: 包名:com.g…

Mutated 源代码解析 client (一)

Mutated , a C project https://github.com/scslab/mutated usage Main function in the client directory, mutated_synthetic.cc Line 14 parse the user arguments, such as “-h, -w, -c” parse_synthetic is implemented in client\opts_synthetic.cc Here, use th…

Dive into TensorFlow系列(3)- 揭开Tensor的神秘面纱

TensorFlow计算图是由op和tensor组成,那么tensor一般都用来代表什么呢?显然,像模型的输入数据、网络权重、输入数据经op处理后的输出结果都需要用张量或特殊张量进行表达。既然tensor在TensorFlow体系架构中如此重要,因此本文将带…

Redis通用命令和key的层级结构

目录 1 Redis数据结构介绍 2 Redis 通用命令 3 Redis命令-Key的层级结构 1 Redis数据结构介绍 Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样: value的数据类型共有8种,前面5中为基本数据类型&a…

5000立方米球罐设计

目 录 摘 要 I Abstract II 1 文献综述 1 1.1 课题研究的工程背景及理论、实际意义 1 1.2 球罐用钢 1 1.2.1 球罐用钢基本要求分析 1 1.2.2 国内外球罐的常用钢种 2 1.2.3 几种典型球罐用钢的优劣对比 2 1.3 球罐设计 3 1.3.1 球罐设计的执行标准及法规 3 1.3.2 球壳结构 4 1.3…

通过PLC网关如何实现三菱FX3U的远程上下载程序?

FX3U是三菱推出的高性能PLC品牌。基本性能大幅提升,晶体管输出型的基本单元内置了3轴独立最高100kHz的定位功能,并且增加了新的定位指令,从而使得定位控制功能更加强大,使用更为方便,受到企业的青睐。因此,…

PyQt5 QLabel标签

PyQt5 QLabel标签标签显示标签快捷键功能标签显示 QLabel背景色设置: palette QPalette() # 创建调色板 palette.setColor(QPalette.Window, Qt.green) # 设置调色板属性 label.setPalette(palette) # 标签设置Palette label.setAutoFillBackground(True) # 设为T…

【安全测试学习】数据库基础

以上来自学习极客时间《Web 安全攻防实战》课程内容,汇总整理思维导图。

记录多次安装mysql失败问题

首先说明一下,本人电脑已经安装过mysql,不过想从5.7版本升级到8.0 首先是卸载电脑上的mysql5.7版本,卸载过程如下: 进入控制面板,直接卸载所有mysql相关进入安装目录下删除mysql相关文件夹,通常在C:\Prog…

”互联网行业还在等金三银四或是金九银十?“,我劝你还是早做打算

对于今年的IT行业来说,可能真的根本没有所谓的“金三银四”或是“金九银十”。各大招聘网站或者软件上不管是大厂还是中小公司看似挂个招聘需求,但实际上这些公司并不非常缺人也不急着招人;我想今年程序员听的最多的一个词就是”互联网寒冬“…

二十九、Java 数据结构

Java 数据结构 Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration)位集合(BitSet)向量(Vector)栈(Stack)字典&#xff…