成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

快速學會一個機器學習算法:高斯混合模型

發布于 2025-4-1 01:07
瀏覽
0收藏

在數據科學和機器學習領域,聚類分析是一種重要的無監督學習方法,用于發現數據中的潛在模式和結構。高斯混合模型(Gaussian Mixture Model,簡稱GMM)作為一種強大的概率模型,在聚類分析中具有廣泛的應用。本文將詳細介紹GMM聚類的算法原理、數學基礎,并通過一個案例分析展示其實際應用。

一、GMM算法簡介

        高斯混合模型(GMM)是一種基于概率的聚類方法,假設數據集由多個高斯分布(也稱為“成分”或“簇”)混合生成。與K-Means等傳統聚類算法不同,GMM不僅考慮簇的中心,還考慮簇的形狀和大小,通過估計每個數據點屬于各個簇的概率,實現更為靈活和準確的聚類效果。

GMM在以下場景中表現出色:

  • 復雜數據分布:適用于簇形狀不規則、大小不一的數據集。
  • 軟聚類:允許數據點屬于多個簇,適用于模糊邊界的聚類任務。
  • 概率解釋:提供每個數據點的聚類概率,有助于后續的統計分析和決策。

二、GMM算法原理

2.1 概率模型

快速學會一個機器學習算法:高斯混合模型-AI.x社區

2.2 期望最大化(EM)算法

GMM的參數估計通常采用期望最大化(Expectation-Maximization,EM)算法。EM算法是一種迭代優化方法,適用于含有隱含變量或不完全數據的概率模型。

EM算法包含兩個主要步驟,E步(期望步)和M步(最大化步),反復迭代直到收斂。

  • E步(Expectation Step)

在當前參數估計值 下,計算每個數據點屬于第 個高斯成分的后驗概率(即責任度):

  • M步(Maximization Step)

基于E步計算的責任度,重新估計模型參數:

  • 收斂條件

EM算法在每次迭代中都會增加似然函數的值,直到似然函數的增幅低于預設的閾值或達到最大迭代次數時停止。

三、案例分析:GMM聚類實戰

本文將通過一個簡單的案例,使用Python實現GMM聚類,展示其在模擬數據上的應用效果。

3.1 數據生成

首先,我們生成一個包含三個不同簇的二維數據集,每個簇的數據點服從不同的高斯分布。

import numpy as np
import matplotlib.pyplot as plt
from sklearn.mixture import GaussianMixture
import matplotlib.patches as patches
import matplotlib.colors as mcolors

# 設置隨機種子
np.random.seed(42)

# 生成三個高斯分布的樣本
n_samples = 500

# 第一個簇
mean1 = [2, 0]
cov1 = [[1, 0.2], [0.2, 1]]
X1 = np.random.multivariate_normal(mean1, cov1, n_samples)

# 第二個簇
mean2 = [3, 3]
cov2 = [[1, -0.3], [-0.3, 1]]
X2 = np.random.multivariate_normal(mean2, cov2, n_samples)

# 第三個簇
mean3 = [0, 3]
cov3 = [[1, 0], [0, 1]]
X3 = np.random.multivariate_normal(mean3, cov3, n_samples)

# 合并數據
X = np.vstack((X1, X2, X3))

# 繪制原始數據點圖
plt.figure(figsize=(10, 8))

plt.scatter(X1[:, 0], X1[:, 1], s=30, color='red', label='簇 1', alpha=0.6)
plt.scatter(X2[:, 0], X2[:, 1], s=30, color='green', label='簇 2', alpha=0.6)
plt.scatter(X3[:, 0], X3[:, 1], s=30, color='blue', label='簇 3', alpha=0.6)

plt.title('原始數據點分布', fontsize=16)
plt.xlabel('特征1', fontsize=14)
plt.ylabel('特征2', fontsize=14)
plt.legend(title='原始簇類別')
plt.grid(True, linestyle='--', alpha=0.5)
plt.tight_layout()
plt.show()

原始數據散點圖:

快速學會一個機器學習算法:高斯混合模型-AI.x社區

3.2 GMM聚類實現

使用Scikit-learn庫中的??GaussianMixture??類實現GMM聚類,并預測數據點的簇標簽。

# 定義GMM模型,假設有3個簇
gmm = GaussianMixture(n_compnotallow=3, covariance_type='full', random_state=42)

# 擬合GMM模型
gmm.fit(X)

# 預測簇標簽
labels = gmm.predict(X)

# 獲取GMM的參數
weights = gmm.weights_
means = gmm.means_
covariances = gmm.covariances_

print("GMM混合權重:", weights)
print("GMM均值:\n", means)
print("GMM協方差矩陣:\n", covariances)

輸出結果:

GMM混合權重: [0.34443739 0.3287613  0.32680131]
GMM均值:
 [[ 2.95728907  3.11741938]
 [-0.04155174  2.96571577]
 [ 1.9849524  -0.00788892]]
GMM協方差矩陣:
 [[[ 0.99816731 -0.25715754]
  [-0.25715754  1.02762528]]

 [[ 0.91888485 -0.01749   ]
  [-0.01749     0.96829226]]

 [[ 0.89100266  0.17762317]
  [ 0.17762317  0.95128116]]]

3.3 結果可視化

繪制聚類結果和高斯分布的等高線,直觀展示GMM的聚類效果。

# 定義顏色
colors = list(mcolors.TABLEAU_COLORS.values())

plt.figure(figsize=(12, 8))

# 繪制數據點
for i in range(gmm.n_components):
    plt.scatter(X[labels == i, 0], X[labels == i, 1],
                s=30, color=colors[i], label=f'簇 {i+1}', alpha=0.5)

# 繪制高斯分布的等高線
ax = plt.gca()

for i in range(gmm.n_components):
    mean = means[i]
    cov = covariances[i]
    eigenvalues, eigenvectors = np.linalg.eigh(cov)
    order = eigenvalues.argsort()[::-1]
    eigenvalues, eigenvectors = eigenvalues[order], eigenvectors[:, order]
    angle = np.degrees(np.arctan2(*eigenvectors[:,0][::-1]))
    width, height = 2 * np.sqrt(eigenvalues)
    ellipse = patches.Ellipse(mean, width, height, angle=angle,
                              edgecolor=colors[i], facecolor='none',
                              linewidth=3, linestyle='--')
    ax.add_patch(ellipse)

plt.title('GMM聚類結果', fnotallow=16)
plt.xlabel('特征1', fnotallow=14)
plt.ylabel('特征2', fnotallow=14)
plt.legend(title='簇類別')
plt.grid(True, linestyle='--', alpha=0.5)
plt.tight_layout()
plt.show()

GMM聚類結果圖:

快速學會一個機器學習算法:高斯混合模型-AI.x社區

結果分析

        通過上述代碼,我們生成了一個包含三個簇的二維數據集,并使用GMM進行聚類。結果顯示,GMM能夠準確地識別出數據中的三個簇,并通過等高線展示了各個高斯成分的分布情況。相比于K-Means,GMM在處理具有不同形狀和大小的簇時表現出更高的靈活性和準確性。

四、總結

        高斯混合模型(GMM)作為一種基于概率的聚類方法,能夠有效地處理復雜數據分布和模糊邊界的聚類任務。通過期望最大化(EM)算法,GMM能夠迭代地估計模型參數,實現對數據的準確聚類。本文通過理論介紹和實戰案例,展示了GMM在機器學習中的應用及其優勢。盡管GMM在處理高維數據和選擇適當的簇數時可能面臨挑戰,但其靈活性和概率解釋能力使其成為聚類分析中不可或缺的工具。

        在實際應用中,結合領域知識選擇合適的模型參數和評估指標,可以進一步提升GMM的聚類效果。同時,結合其他機器學習方法,如降維技術和特征工程,可以增強GMM在復雜數據場景下的表現。

本文轉載自寶寶數模AI,作者:BBSM


收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 欧美日韩综合精品 | 日本亚洲精品成人欧美一区 | aaaa网站 | 成人久久久久久久久 | 国产成人免费网站 | 午夜成人在线视频 | 国产91在线 | 欧美 | 国产精品久久国产精品 | 亚洲一区二区三区四区五区午夜 | 国产精品欧美日韩 | 日韩一区二区三区在线观看 | 久久精品一区二区 | 三级黄色网址 | 色资源在线 | 欧美在线a| 伊人精品 | 性高湖久久久久久久久aaaaa | 久久久成人网 | 成年人在线视频 | 91精品国产综合久久婷婷香蕉 | 亚洲国产成人在线观看 | 成人国产免费观看 | 日本久久精品视频 | 国产探花在线精品一区二区 | 国产一级电影网 | 岛国av一区二区三区 | 精品美女视频在免费观看 | 欧美国产日韩成人 | 激情五月婷婷综合 | 日本成人综合 | 欧美日韩专区 | 中文日韩字幕 | 逼逼视频 | 久久久av | 亚洲精品99999 | 国产不卡在线播放 | 中文字幕在线一区 | 成人免费视频7777777 | 在线免费视频一区 | 五月激情六月婷婷 | 一区二区三区免费 |