GMM 高斯混合模型 聚类 Python实现

原型聚类之高斯混合聚类及Python实现 高斯混合模型聚类(Gaussian Mixture Mode,GMM) 高斯混合模型是一种概率式的聚类方法,它假定所有的数据样本 xxx由kkk个混合多元高斯分布组合成的混合分布生成。 p(x)=∑i=1kαi⋅p(x|μi,Σi)(1.1)(1.1)p(x)=∑i=1kαi⋅p(x|μi,Σi)p(x)=\sum_{i=1}^{k}\alpha _{i}\cdot p(x | \mu _{i... 阅读详情

原理也不多说了。。大致思路就是把数据建立成k个高斯分布,EM迭代N次。最后看每个点在哪个高斯分布的概率最高,就分到那个分布。


这里的computeGamma函数,用来算第i个簇的后验概率γji,用了2层循环,效率不高,本来想向量化的,搞了半天没搞出来。。干脆就先循环吧。。包括后面的fit方法也是一样。。用了很多循环。

X的shape是(n_samples,n_features)

mu的shape是(n_clusters,n_features)

sigma的shape是(n_clusters,n_features,n_features)

alpha的shape是(n_clusters,)

输出的gamma是(n_samples,n_clusters)


类方法fit里面,所有alpha初始为1/n_clusters,所有sigma协方差初始化为0.1,mu随机在样本里面选n_clusters个。

这里为了复现西瓜书的效果,所以指定mu为[[.403,.237],[.714,.346],[.532,.472]]。

import numpy as np
import matplotlib.pyplot as plt

def multiGaussian(x,mu,sigma):
    return 1/((2*np.pi)*pow(np.linalg.det(sigma),0.5))*np.exp(-0.5*(x-mu).dot(np.linalg.pinv(sigma)).dot((x-mu).T))

def computeGamma(X,mu,sigma,alpha,multiGaussian):
    n_samples=X.shape[0]
    n_clusters=len(alpha)
    gamma=np.zeros((n_samples,n_clusters))
    p=np.zeros(n_clusters)
    g=np.zeros(n_clust
用Python手把手实现高斯混合模型(GMM)聚类:从数学推导到代码实战 本文详细介绍了如何使用Python从零实现高斯混合模型(GMM)聚类,深入解析了其核心数学原理与期望最大化(EM)算法。通过完整的代码实战演示了GMM的参数估计、模型训练过程,并与scikit-learn实现进行对比,帮助读者掌握这一强大的概率聚类方法,以处理复杂形状的数据分布。 阅读详情

相关推荐

高斯混合模型 Gaussian Mixture Model | GMM

本文主要简单介绍了高斯混合模型的基本概念,优缺点,应用场景,建模时的注意事项,评价指标,实现方法,python示例和模型参数等。

JasonH2021的博客 1万+

使用Python实现高斯混合模型聚类算法

高斯混合模型算法假设数据集是由若干个高斯分布组成的,每个高斯分布都代表一个簇。算法的目标是通过最大化数据集的似然函数来找到最佳的高斯混合模型参数,包括每个簇的均值、协方差矩阵和权重。通过这些参数,我们可以计算每个数据点属于每个簇的概率,从而进行聚类。

Echo_Wish 1139

客户分群算法比较:K均值聚类与高斯混合模型(GMM),Python实现

然后,我们使用fit()方法对数据进行拟合,并使用predict()方法获取每个数据点所属的簇,使用means_和covariances_属性获取每个簇的参数。然后,我们使用fit()方法对数据进行聚类,并使用labels_属性获取每个数据点所属的簇,使用cluster_centers_属性获取每个簇的质心。K均值聚类是一种基于距离的聚类算法,其目标是将数据集划分为K个不同的簇,使得每个数据点与其所属簇的质心的距离最小化。需要注意的是,K均值聚类和GMM都需要事先指定簇的数量K,并且对初始参数敏感。

ByteHackerX的博客 353

高斯混合模型(GMM)的实战应用指南

在数据科学和统计学领域,高斯混合模型(Gaussian Mixture Model,简称GMM)是用于表示具有多峰分布的概率分布族的强大工具。GMM的理论基础在于它假设所有数据点都来自于若干个高斯分布的混合,其中每个高斯分布都可以理解为一个聚类中心。由于GMM能够捕捉数据中的多个分布特征,它在数据建模、聚类分析、概率密度估计以及异常检测等领域都发挥着重要作用。具体来说,GMM通过其灵活性和数学上的简洁性,在处理含有多个潜在分布的复杂数据集时表现尤为出色。

weixin_42181686的博客 1456

三种聚类方法(K-means、GMM、DBSCAN聚类)

一次手写作业,手写三种聚类算法,包含数据集和代码

ARM Memory Compiler实战指南:从参数配置到GDSII生成的全流程解析

本文详细解析了ARM Memory Compiler在SRAM设计中的全流程应用,从基础参数配置到GDSII文件生成。涵盖SRAM类型选择、核心参数配置策略、高级优化技巧及TSMC 28nm工艺下的实战案例,帮助IC设计工程师高效实现存储器模块的优化设计。

game4的博客 416

Linux密码破解(使用hydra工具和使用john暴力破解)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、使用hydra离线破解linux密码1.准备实验环境2.创建用户名字典3.hydra密码爆破二、复制shadow文件,使用john暴力破解1.实验环境1.复制linux的shadow文件2.john暴力破解 一、使用hydra离线破解linux密码 1.准备实验环境 ①攻击机:kali_linux 2021.2(ifconfig查询IP地址:192.168.119.132) ②靶机:Ubantu 16.04(ifconfig

weixin_46447549的博客 2万+

红外图像处理实战:用MATLAB实现时域高通滤波(THPF)去噪(附完整代码)

本文详细介绍了如何利用MATLAB实现时域高通滤波(THPF)算法进行红外图像去噪,包括核心原理、工程实现要点和完整代码示例。通过分析时间窗口选择、空域预处理优化和自适应参数调整等关键点,帮助开发者有效抑制固定图案噪声,适用于无人机载红外监测和安防监控等场景。

weixin_42783709的博客 183

MONAILabel in 3D Slicer 案例1: 在腹部CT中自动分割脾脏

MONAILabel in 3D Slicer 案例1: 在腹部CT中自动分割脾脏。

Tina姐的博客 1939

Golang实战:用Quic-Go v0.46.0搭建高性能文件传输服务(附完整代码)

本文详细介绍了如何使用Golang和Quic-Go v0.46.0构建高性能文件传输服务,涵盖服务端和客户端的完整实现。通过QUIC协议的多路复用、零RTT连接等特性,显著提升文件传输效率,特别适合高延迟或不稳定网络环境。文章提供完整代码示例和性能调优技巧,帮助开发者快速部署高效的文件传输解决方案。

weixin_33737134的博客 447

YOLO11实战 第010期-基于yolo11的农业杂草作物目标检测实战文档(详细教程)

通过这条曲线,用户可以评估模型的检测能力,分析模型在不同阈值下对真实目标的检测是否全面。通过这条曲线,可以评估模型在目标检测任务中的整体性能,并找到合适的置信度阈值,以在精确率和召回率之间做出最佳平衡。PR 曲线越接近右上角,模型性能越好,曲线下方的面积越大,说明模型在不同置信度下的。),它展示了不同置信度下的召回率。条曲线都显示了随着召回率的增加,精确度略有下降的趋势,但整体上精确度保持在很高的水平。通过这条曲线,可以选择合适的置信度阈值,以优化模型的检测结果,平衡精确率和召回率。反映了分类器的准确性。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 1522

基于数字图像处理方法的迷宫问题图解 : 基于骨架提取、四邻域

问题是,这条红色的线是人为标记出来的能通的路线,对计算机来看,黑色和红色的线没有任何差异,所以之前的想法压根不起作用。对应于数字图像的表达,就是从远离主干的分支端点出发,如果4邻域中只有一个可以通的道路,那么这个点在分支上。闪电划过,有一道连接了天空和大地,就是迷宫的解,其余的分支就是迷宫中对应的死路。类似这个闪电图,假设图中最粗的主干(迷宫解的路线)是最先形成的,其余的细小的分支是慢慢从主干上形成的。因此,只要在端点的4邻域中,找到可以走的道路,那么一定就是分支,也就是要移除的路线。

Henry的博客 2073

YOLOv11的物理信息神经网络(PINN):引入物理规律约束目标运动预测

本文介绍了YOLOv11目标检测与PINN物理信息神经网络的融合技术。YOLOv11采用增强特征提取和参数优化架构,在保持实时性的同时提升检测精度。PINN通过将物理方程嵌入损失函数,实现数据高效学习。两者的结合可显著提升运动预测准确性和遮挡处理鲁棒性。文章详细阐述了环境配置、YOLOv11模型验证方法,并提供了基础PINN框架代码实现,展示了物理约束如何通过自动微分整合到神经网络中。该融合技术适用于自动驾驶、无人机导航等需要物理规律建模的视觉感知场景。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 422

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: LVQ 学习向量量化 聚类 python 实现 以及 一些 思考
下一篇: DBSCAN 密度聚类 Python实现
csdn_inside
博客等级 码龄10年 52粉丝 33原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值