高斯混合模型(GMM)算法初探

高斯混合模型(Gaussian Mixture Model,GMM)是一种基于概率的无监督学习模型,通过假设数据由多个高斯分布组成来进行数据建模。它在机器学习、统计学和信号处理等领域有广泛的应用。

GMM 从整体来看,它可以表示对观测数据分布的表示、或者代表某一种复杂的分布,并且可以从这种分布中产生数据。从实现细节来看,内部由多个高斯分布组合而成,每一个高斯分布又可以理解为一个聚类中的簇。所以,也可以把 GMM 当做一个聚类算法。

import matplotlib.pyplot as plt
from sklearn.mixture import GaussianMixture
from sklearn.datasets import make_blobs
import numpy as np


def test():

    # 创建数据
    np.random.seed(0)
    x, y = make_blobs(n_samples=1000,
                      n_features=2,
                      centers=[(0, 1.5), [1, 0.5]],
                      cluster_std=[0.4, 0.5],
                      random_state=42)

    # 模型训练
    estimator = GaussianMixture(n_components=2, random_state=42)
    estimator.fit(x)

    # 1. 用于数据聚类
    y_pred = estimator.predict(x)
    print(y_pred)

    # 2. 用于产生数据
    data = estimator.sample(3)
    print(data)

    # 可视化
    plt.grid()
    plt.scatter(x[:, 0], x[:, 1], c=y_pred)
    plt.show()


if __name__ == '__main__':
    test()
未经允许不得转载:一亩三分地 » 高斯混合模型(GMM)算法初探
评论 (0)

1 + 9 =