以下内容转自 数析学院,只节选了部分,有需要的同学可以直接查看原文
高斯混合模型(Gaussian mixture model,GMM)是常见的一种概率模型类统计学习方法,它通过样本的概率密度分布估计来解决数据样本的聚类问题,在生物学统计与医学统计领域有着广泛的应用。今天将向大家介绍在 Python 中如何利用 Scikit-Learn 库中的相关工具构建高斯混合模型,以及这个模型在 Python 中使用的相关技巧。
首先,我们需要导入相关的可视化以及运算工具库,并构建示例数据:
- %matplotlib inline
- import matplotlib.pyplot as plt
- import seaborn as sns; sns.set()
- import numpy as np
- # 构建示例数据集
- from sklearn.datasets.samples_generator import make_blobs
- X, y_true = make_blobs(n_samples=400, centers=4,
- cluster_std=0.60, random_state=0)
- X = X[:, ::-1] # 为了更好地绘制图像,我们对坐标轴进行了翻转
- from sklearn.mixture import GMM
- gmm = GMM(n_components=4).fit(X)
- labels = gmm.predict(X)
- plt.scatter(X[:, 0], X[:, 1], c=labels, s=40, cmap='viridis');
聚类的结果如上图所示,我们可以调用 predict_proba 函数,计算每一个样本点的分类概率:
- probs = gmm.predict_proba(X)
- print(probs[:5].round(3))
- size = 50 * probs.max(1) ** 2 # 由圆点面积反应概率值的差异
- plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis', s=size);
以上内容节选自 数析学院,原文还有 k-means 聚类效果对比、双月牙形的数据样本聚类效果评价、手写数字像素图聚类处理等,内容较多,先搬运到这,有需要的同学可以先直接到 数析学院 查看原文


雷达卡




京公网安备 11010802022788号







