首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

相关视频

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

import numpy as np

import matplotlib.pyplot as plt

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

python

......

# 绘制数据

plt.plot(X[:, 0], X[:, 1], '.', alpha=0.2)

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

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

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

构建这个模型。与相关模型一样,这是一个生成模型,而只是拟合数据生成分布 - 因此__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')

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

# 绘制密度和原始数据点

......plt.contour(xx, xx, probs)

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O4757_JbMu0jWxJ_RYKJ_zbg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券