Python贝叶斯高斯混合模型GMM聚类分析数据和混合密度可视化

简介: Python贝叶斯高斯混合模型GMM聚类分析数据和混合密度可视化

全文链接 :https://tecdat.cn/?p=33821


混合模型是另一种生成模型,它将数据点的分布建模为多个单独分布的组合("混合")点击文末“阅读原文”获取完整代码数据


客户常见的混合模型类型是高斯混合模型,其中数据生成分布被建模为多个高斯分布的组合。

import numpy as np
import matplotlib.pyplot as plt

下面是通过三个二维高斯分布的一些数据:

......
# 绘制数据
plt.plot(X[:, 0], X[:, 1], '.', alpha=0.2)

image.png

让我们使用贝叶斯高斯混合模型对这些数据进行建模。


点击标题查阅往期内容


R语言使用混合模型GMM进行聚类


01

02

03

04



数据点生成于混合成分的概率由分类分布进行建模,根据权重来决定:

image.png

然后,数据点观测值的似然性由混合成分的分布决定:

image.png

构建这个模型。与相关模型一样,这是一个生成模型,而只是拟合数据生成分布 - 因此__call__方法没有输入参数。

class GaussianMixtureModel(pf.Model):
 ......
        return pf.Mixture(dists, probs=self.theta())

使用ProbFlow构建上述模型的复杂性与使用“原始”TensorFlow和TensorFlow Probability构建模型的复杂性进行比较。

然后,我们可以实例化该模型并将其拟合到数据中!

......model.fit(X, lr=0.03, epochs=500, batch_size=1024)

要查看混合密度在可能的值范围上的拟合情况,我们可以计算并绘制模型在网格上的概率:

# 在网格上计算每个点的对数似然
Np = 100 # 网格点数量
......
# 显示拟合的混合密度
plt.imshow(probs,
......           origin='lower')

image.png

混合密度线与用于拟合模型的数据点非常吻合!

# 绘制密度和原始数据点
......plt.contour(xx, xx, probs)

image.png

相关文章
|
1天前
|
存储 数据可视化 算法
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
|
1天前
|
数据采集 数据可视化 Python
Python分析香港26281套在售二手房数据
Python分析香港26281套在售二手房数据
|
1天前
|
数据可视化 数据挖掘 Python
【Python DataFrame专栏】DataFrame的可视化探索:使用matplotlib和seaborn
【5月更文挑战第20天】本文介绍了使用Python的pandas、matplotlib和seaborn库进行数据可视化的步骤,包括创建示例数据集、绘制折线图、柱状图、散点图、热力图、箱线图、小提琴图和饼图。这些图表有助于直观理解数据分布、关系和趋势,适用于数据分析中的探索性研究。
【Python DataFrame专栏】DataFrame的可视化探索:使用matplotlib和seaborn
|
2天前
|
数据采集 存储 数据挖掘
Python DataFrame初学者指南:轻松上手构建数据表格
【5月更文挑战第19天】本文是针对初学者的Pandas DataFrame指南,介绍如何安装Pandas、创建DataFrame(从字典或CSV文件)、查看数据(`head()`, `info()`, `describe()`)、选择与操作数据(列、行、缺失值处理、数据类型转换、排序、分组聚合)以及保存DataFrame到CSV文件。通过学习这些基础,你将能轻松开始数据科学之旅。
|
2天前
|
数据挖掘 数据处理 Python
【Python DataFrame 专栏】Python DataFrame 入门指南:从零开始构建数据表格
【5月更文挑战第19天】本文介绍了Python数据分析中的核心概念——DataFrame,通过导入`pandas`库创建并操作DataFrame。示例展示了如何构建数据字典并转换为DataFrame,以及进行数据选择、添加修改列、计算统计量、筛选和排序等操作。DataFrame适用于处理各种规模的表格数据,是数据分析的得力工具。掌握其基础和应用是数据分析之旅的重要起点。
【Python DataFrame 专栏】Python DataFrame 入门指南:从零开始构建数据表格
|
2天前
|
机器学习/深度学习 数据处理 Python
如何利用Python实现高效的数据清理与预处理
数据清理和预处理是数据科学家和分析师工作中不可或缺的一环,而Python作为一门强大的编程语言,可以使这个过程变得更加高效和便捷。本文将介绍一些常见的数据清理和预处理技术,并演示如何使用Python来实现这些技术。
|
1天前
|
机器学习/深度学习 缓存 人工智能
令你膛目结舌的代码技巧 —— Python编程代码技巧
令你膛目结舌的代码技巧 —— Python编程代码技巧
7 2
|
1天前
|
数据采集 算法 Python
2024年Python最全python基础入门:高阶函数,小米面试编程题
2024年Python最全python基础入门:高阶函数,小米面试编程题
|
1天前
|
数据采集 人工智能 前端开发
干货满满,转行逆袭,0编程基础学Python拿高薪offer如何做?都在这里!
干货满满,转行逆袭,0编程基础学Python拿高薪offer如何做?都在这里!
|
4天前
|
Python
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏