基于EM期望最大化算法的GMM參數估計與三維數據分類系統python源碼

目錄

1.算法運行效果圖預覽

2.算法運行軟件版本

3.部分核心程序

4.算法理論概述

4.1 EM算法

E步:期望步

M步:最大化步

4.2 GMM模型

5.算法完整程序工程


1.算法運行效果圖預覽

(完整程序運行后無水印)

2.算法運行軟件版本

程序運行配置環境:

人工智能算法python程序運行環境安裝步驟整理-CSDN博客

3.部分核心程序

(完整版代碼包含部分中文注釋和操作步驟視頻)

.........................................................................for z in range(k):err       += (abs(Old_mu[z, 0] - mu[z, 0]) + abs(Old_mu[z, 1] - mu[z, 1]) + abs(Old_mu[z, 2] - mu[z, 2]))  # 計算誤差err_alpha += abs(Old_alpha[z] - alpha_[z])err_cov   += abs(Old_cov[z,0,0] - sigma4_[z,0,0])+abs(Old_cov[z,0,1] - sigma4_[z,0,1])+abs(Old_cov[z,0,2] - sigma4_[z,0,2])+abs(Old_cov[z,1,0] - sigma4_[z,1,0])+abs(Old_cov[z,1,1] - sigma4_[z,1,1])+abs(Old_cov[z,1,2] - sigma4_[z,1,2])+abs(Old_cov[z,2,0] - sigma4_[z,2,0])+abs(Old_cov[z,2,1] - sigma4_[z,2,1])+abs(Old_cov[z,2,2] - sigma4_[z,2,2])if (err <= 0.001) and (err_alpha < 0.001):  # 達到精度退出迭代print(err, err_alpha)breakLearn_process[i] = err;alpha_process[i] = err_alpha;cov_process[i]  = err_cov;print("observable data:\n", X)  # 輸出可觀測樣本order = np.zeros(N)color = ['b', 'r', 'y']ax = plt.figure().add_subplot(111, projection='3d')for i in range(N):for j in range(k):if excep[i, j] == max(excep[i, :]):order[i] = j  # 選出X[i,:]屬于第幾個高斯模型probility[i] += alpha_[int(order[i])] * math.exp(-(X[i, :] - mu[j, :]) * sigma.I * np.transpose(X[i, :] - mu[j, :])) / (np.sqrt(np.linalg.det(sigma)) * 2 * np.pi)  # 計算混合高斯分布ax.scatter(X[i, 0], X[i, 1], X[i, 2],c=color[int(order[i])], s=25 ,marker='.')plt.title('classfiy random 3D generated data from R,G,B')ax.set_xlabel('x')ax.set_ylabel('y')ax.set_zlabel('z')plt.show()plt.plot(Learn_process[2:iter_num]);plt.title('Learning process:error')plt.xlabel('Iteration numbers')plt.ylabel('error')plt.show()plt.plot(alpha_process[2:iter_num]);plt.title('Learning process:alpha')plt.xlabel('Iteration numbers')plt.ylabel('alpha error')plt.show()plt.plot(cov_process[2:iter_num]);plt.title('Learning process:cov')plt.xlabel('Iteration numbers')plt.ylabel('cov error')plt.show()
0Y_002

4.算法理論概述

? ? ? ?EM期望最大化算法是一種用于含有隱變量(latent variable)的概率模型參數估計的迭代算法。在許多實際問題中,數據的生成過程可能涉及一些無法直接觀測到的變量,這些變量被稱為隱變量。例如在混合高斯模型(Gaussian Mixture Model,GMM)中,每個數據點具體來自哪個高斯分布就是一個隱變量。EM算法通過交替執行兩個步驟:E步(期望步)和M步(最大化步),逐步逼近最優的參數估計。

4.1 EM算法

E步:期望步

M步:最大化步

? ? ? ?這是因為在E步中,我們計算的是在當前參數下關于隱變量的期望,而在M步中,我們通過最大化這個期望來更新參數,使得似然函數單調遞增。理論上,當似然函數的變化小于某個閾值時,算法收斂到局部最優解。

4.2 GMM模型

? ? ? ?混合高斯模型(Gaussian Mixture Model,簡稱 GMM) 是一種概率模型,通過將數據視為由多個高斯分布(正態分布)的加權組合而生成,適用于聚類、密度估計、數據分布建模等場景。相比常見的 K-Means 聚類,混合高斯模型能夠捕捉到數據分布的方差差異和協方差結構。

5.算法完整程序工程

OOOOO

OOO

O

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/72466.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/72466.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/72466.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

制服小程序的“滑手”:禁用頁面左右滑動全攻略

哈哈&#xff0c;看來你已經很聰明地發現了小程序中左右滑動的“頑皮”行為&#xff01;&#x1f604; 沒錯&#xff0c;我們可以通過設置 disableScroll 屬性來“管教”它&#xff0c;同時結合 CSS 樣式讓頁面既禁得住橫向“亂跑”&#xff0c;又能順暢地上下滾動。你的方案已…

docker學習筆記(1)從安裝docker到使用Portainer部署容器

docker學習筆記第一課 先交代背景 docker宿主機系統&#xff1a;阿里云ubuntu22.04 開發機系統&#xff1a;win11 docker鏡像倉庫&#xff1a;阿里云&#xff0c;此阿里云與宿主機系統沒有關系&#xff0c;是阿里云提供的一個免費的docker倉庫 代碼托管平臺&#xff1a;github&…

stable-diffusion-webui 加載模型文件

背景 stable-diffusion-webui 安裝完畢后&#xff0c;默認的模型生成的效果圖并不理想&#xff0c;可以根據具體需求加載指定的模型文件。國內 modelscope 下載速度較快&#xff0c;以該站為例進行介紹 操作步驟 找到指定的模型文件 在 https://modelscope.cn/models 中查找…

kotlin高級用法總結

Kotlin 是一門功能強大且靈活的編程語言&#xff0c;除了基礎語法外&#xff0c;它還提供了許多高級特性&#xff0c;可以幫助你編寫更簡潔、高效和可維護的代碼。以下是 Kotlin 的一些高級用法&#xff0c;涵蓋了協程、擴展函數、屬性委托、內聯類、反射等內容。 協程&#x…

Linux網絡 NAT、代理服務、內網穿透

NAT 技術 IPv4 協議中存在 IP 地址數量不充足的問題&#xff0c;而 NAT 技術是當前解決 IP 地址不夠用的主要手段 , 是路由器的一個重要功能。NAT 能夠將私有 IP 對外通信時轉為全局 IP&#xff0c;也就是就是一種將私有 IP 和全局 IP 相互轉化的技術方法。 這可以讓很多學…

世界模型在塑造自動駕駛中的作用:綜述

25年2月來自華中理工和百度的論文“”The Role of World Models in Shaping Autonomous Driving: A Comprehensive Survey“。 駕駛世界模型 (DWM) 專注于預測駕駛過程中的場景演變&#xff0c;已成為實現自動駕駛一個有前途的范例。這些方法使自動駕駛系統能夠更好地感知、理…

全向廣播揚聲器在油氣田中的關鍵應用 全方位守護安全

油氣田作為高風險作業場所&#xff0c;安全生產始終是重中之重。在緊急情況下&#xff0c;如何快速、有效地傳達信息&#xff0c;確保人員安全撤離&#xff0c;是油氣田安全管理的關鍵環節。全向廣播揚聲器憑借其全方位覆蓋、高音質輸出和強大的環境適應性&#xff0c;成為油氣…

【AI大模型】AI賦能,使用DeepSeek 高效制作PPT實戰詳解

目錄 一、前言 二、傳統 PPT 制作問題 2.1 傳統方式制作 PPT 2.2 AI 大模型輔助制作 PPT 2.3 適用場景對比分析 2.4 最佳實踐與推薦 三、DeepSeek Kimi 高效制作PPT操作實踐 3.1 Kimi 簡介 3.2 DeepSeek Kimi 制作PPT優勢 3.2.1 DeepSeek 優勢 3.2.2 Kimi 制作PPT優…

【51單片機】程序實驗13.串口通信

主要參考學習資料&#xff1a;B站【普中官方】51單片機手把手教學視頻 開發資料下載鏈接&#xff1a;http://www.prechin.cn/gongsixinwen/208.html 前置知識&#xff1a;C語言 單片機套裝&#xff1a;普中STC51單片機開發板A4標準版套餐7 目錄 通信的基本概念串行通信與并行通…

論文閱讀筆記:ArcFace: Additive Angular Margin Loss for Deep Face Recognition

論文閱讀筆記&#xff1a;ArcFace: Additive Angular Margin Loss for Deep Face Recognition 1 背景2 創新點3 方法4 模塊4.1 Softmax4.2 權重歸一化4.3 乘性角度間隔4.4 特征歸一化4.5 加性余弦間隔4.6 加性角度間隔4.7 二值化情況下的比較4.8 目標Logit分析 5 效果5.1 消融實…

代碼隨想錄算法訓練營 | 圖論 | DFS

98. 所有可達路徑// DFS #include <bits/stdc.h> using namespace std;vector<vector<int>> result; vector<int> path;void dfs(const vector<list<int>> &graph, int i, int target) {if (i target) {result.push_back(path);retu…

GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks

GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks KDD22 推薦指數&#xff1a;#paper/??#? 動機 本文探討了圖神經網絡&#xff08;GNN&#xff09;在遷移學習中“預訓練-微調”框架的局限性及改進方向。現有方法通過預訓練&#xff08…

迷你世界腳本方塊接口:Block

方塊接口&#xff1a;Block 彼得兔 更新時間: 2024-08-27 11:04:56 具體函數名及描述如下&#xff1a; 序號 函數名 函數描述 1 isSolidBlock(...) 是否是固體方塊 2 isLiquidBlock(...) 是否是液體方塊 3 isAirBlock(...) 是否是氣體方塊 4 getBl…

Windows下git疑難:有文件無法被跟蹤

Windows下git疑難&#xff1a;有文件無法被跟蹤 最近在寫一個c# WinFrom程序&#xff0c; 奇怪的是&#xff0c;frmMain.cs這個文件一直無法被跟蹤 研究了很久&#xff0c; 參考這一篇 https://blog.csdn.net/m0_37315653/article/details/83064810 git rm --cached ./ -r 之…

Live2d官方項目運行

Live2d官方項目運行 1-參考網址 教程網址&#xff1a;https://blog.csdn.net/qq_39123467/article/details/131735085live2d官方地址&#xff1a;https://live2d.com/cubism-sdk/download/ 2-上手實踐 1&#xff09;先打開官方項目-全部路徑打開2&#xff09;cd /CubismSdkFo…

BUU43 [BJDCTF2020]The mystery of ip 1

前置知識&#xff1a; X - Forwarded - For注入 X - Forwarded - For&#xff08;XFF&#xff09;是一個 HTTP 頭字段&#xff0c;用于記錄客戶端的真實 IP 地址。當客戶端請求經過代理服務器時&#xff0c;代理服務器會將客戶端的 IP 地址添加到 X - Forwarded - For 頭中。…

張岳教授:語言模型推理與泛化研究 | ICLR 2025 特邀報告與團隊專場

點擊藍字 關注我們 AI TIME歡迎每一位AI愛好者的加入&#xff01; AITIME 01 ICLR 2025預講會特邀報告 AITIME 02 ICLR 2025預講會西湖大學張岳老師實驗室專場 01 AI生成文本的自動化檢測 Glimpse: Enabling White-Box Methods to Use Proprietary Models for Zero-Shot LLM-Ge…

MySQL SQL 優化專題

MySQL SQL 優化專題 1. 插入數據優化 -- 普通插入&#xff08;不推薦&#xff09; INSERT INTO tb_user VALUES(1,tom); INSERT INTO tb_user VALUES(2,cat); INSERT INTO tb_user VALUES(3,jerry);-- 優化方案1&#xff1a;批量插入&#xff08;推薦&#xff0c;不建議超過1…

【AI深度學習基礎】NumPy完全指南進階篇:核心功能與工程實踐(含完整代碼)

NumPy系列文章 入門篇進階篇終極篇 一、引言 在掌握NumPy基礎操作后&#xff0c;開發者常面臨真實工程場景中的三大挑戰&#xff1a;如何優雅地處理高維數據交互&#xff1f;如何在大規模計算中實現內存與性能的平衡&#xff1f;怎樣與深度學習框架實現高效協同&#xff1f;…

Python學習第十八天之深度學習之Tensorboard

Tensorboard 1.TensorBoard詳解2.安裝3.使用4.圖像數據格式的一些理解 后續會陸續在詞博客上更新Tensorboard相關知識 1.TensorBoard詳解 TensorBoard是一個可視化的模塊&#xff0c;該模塊功能強大&#xff0c;可用于深度學習網絡模型訓練查看模型結構和訓練效果&#xff08;…