楼主: casey_c
6607 1

[程序分享] Scikit-Learn 高斯混合模型 [推广有奖]

  • 0关注
  • 10粉丝

博士生

92%

还不是VIP/贵宾

-

威望
0
论坛币
96 个
通用积分
2.1003
学术水平
2 点
热心指数
15 点
信用等级
2 点
经验
11502 点
帖子
278
精华
0
在线时间
94 小时
注册时间
2016-11-22
最后登录
2022-5-2

楼主
casey_c 发表于 2017-7-11 10:57:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币



以下内容转自 数析学院,只节选了部分,有需要的同学可以直接查看原文



高斯混合模型(Gaussian mixture model,GMM)是常见的一种概率模型类统计学习方法,它通过样本的概率密度分布估计来解决数据样本的聚类问题,在生物学统计与医学统计领域有着广泛的应用。今天将向大家介绍在 Python 中如何利用 Scikit-Learn 库中的相关工具构建高斯混合模型,以及这个模型在 Python 中使用的相关技巧。


首先,我们需要导入相关的可视化以及运算工具库,并构建示例数据:


  1. %matplotlib inline
  2. import matplotlib.pyplot as plt
  3. import seaborn as sns; sns.set()
  4. import numpy as np
复制代码
  1. # 构建示例数据集
  2. from sklearn.datasets.samples_generator import make_blobs
  3. X, y_true = make_blobs(n_samples=400, centers=4,
  4.                        cluster_std=0.60, random_state=0)
  5. X = X[:, ::-1] # 为了更好地绘制图像,我们对坐标轴进行了翻转
复制代码
在 Python 中,我们可以利用 Scikit-Learn 的 GMM 模块中的 GMM 函数构建对应的模型对象,从而进行高斯混合模型聚类:


  1. from sklearn.mixture import GMM
  2. gmm = GMM(n_components=4).fit(X)
  3. labels = gmm.predict(X)
  4. plt.scatter(X[:, 0], X[:, 1], c=labels, s=40, cmap='viridis');
复制代码
1.jpg

聚类的结果如上图所示,我们可以调用 predict_proba 函数,计算每一个样本点的分类概率:
  1. probs = gmm.predict_proba(X)
  2. print(probs[:5].round(3))
复制代码
[[ 0.     0.     0.475  0.525] [ 0.     1.     0.     0.   ] [ 0.     1.     0.     0.   ] [ 0.     0.     0.     1.   ] [ 0.     1.     0.     0.   ]]
  1. size = 50 * probs.max(1) ** 2  # 由圆点面积反应概率值的差异
  2. plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis', s=size);
复制代码
2.jpg


以上内容节选自 数析学院,原文还有 k-means 聚类效果对比、双月牙形的数据样本聚类效果评价、手写数字像素图聚类处理等,内容较多,先搬运到这,有需要的同学可以先直接到 数析学院 查看原文
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


沙发
casey_c 发表于 2017-7-14 10:21:27

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-14 01:02