MATLAB用“fitgmdist”函數擬合高斯混合模型(一維數據)

来源:https://www.cnblogs.com/kailugaji/archive/2020/01/06/12158825.html
-Advertisement-
Play Games

MATLAB用“fitgmdist”函數擬合高斯混合模型(一維數據) 作者:凱魯嘎吉 - 博客園 http://www.cnblogs.com/kailugaji/ 在MATLAB中“fitgmdist”的用法及其GMM聚類演算法中介紹過"fitgmdist"函數的用法,這次用"fitgmdist"擬 ...


MATLAB用“fitgmdist”函數擬合高斯混合模型(一維數據)

作者:凱魯嘎吉 - 博客園 http://www.cnblogs.com/kailugaji/

    在MATLAB中“fitgmdist”的用法及其GMM聚類演算法中介紹過"fitgmdist"函數的用法,這次用"fitgmdist"擬合一維數據。

1. 一維高斯混合數據的產生

function data=generate_GMM()
%前兩列是數據,最後一列是類標簽
%數據規模
N=300;
%數據維度
% dim=1;
%%
%混合比例
para_pi=[0.3 0.2 0.5];
%第一類數據
mul=0; % 均值
S1=1; % 協方差
data1=mvnrnd(mul, S1, para_pi(1)*N); % 產生高斯分佈數據
%第二類數據
mu2=4;
S2=2;
data2=mvnrnd(mu2,S2,para_pi(2)*N);
%第三類數據
mu3=-4;
S3=1;
data3=mvnrnd(mu3,S3,para_pi(3)*N);
data = [data1, ones(para_pi(1)*N,1); data2, 2*ones(para_pi(2)*N,1); data3, 3*ones(para_pi(3)*N,1)];
save data_gauss data

2. 擬合高斯混合模型

load data_gauss
data=data(:,1);
K=3;
gmm=fitgmdist(data, K);
% 自定義參數
% RegularizationValue=0.001;   %正則化繫數,協方差矩陣求逆
% MaxIter=1000;   %最大迭代次數
% TolFun=1e-8;   %終止條件
% gmm=fitgmdist(data, K, 'RegularizationValue', RegularizationValue, 'CovarianceType', 'diagonal', 'Start', 'plus', 'Options', statset('Display', 'final', 'MaxIter', MaxIter, 'TolFun', TolFun));
[N, D]=size(data);
mu=gmm.mu;  %均值
Sigma=gmm.Sigma;   %協方差矩陣
ComponentProportion=gmm.ComponentProportion;  %混合比例
Y=zeros(N, K);
for k=1:K
    Y(:,k)=ComponentProportion(k).*normpdf(data, mu(k), Sigma(:,:,k));
end
YY=sum(Y, 2);
plot(data,YY,'r.')

3. 結果

4. 參考

[1] MATLAB高斯混合數據的生成

[2] MATLAB中“fitgmdist”的用法及其GMM聚類演算法


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.代碼生成器: [正反雙向](單表、主表、明細表、樹形表,快速開發利器)freemaker模版技術 ,0個代碼不用寫,生成完整的一個模塊,帶頁面、建表sql腳本、處理類、service等完整模塊2.多數據源:(支持同時連接無數個資料庫,可以不同的模塊連接不同數的據庫)支持N個數據源3.阿裡資料庫連 ...
  • LineNumberTable 屬性表存放方法的行號信息 ;屬於調試信息,不是運行時必需的。在使用javac編譯器編譯Java程式時,預設會在class文件中生成這些信息。可以使用javac提供的-g:none選項來關閉該信息的生成 ...
  • 0-前言 碼農人生,實踐為王!在介紹spring cloud之前,先不談理論,先教大家怎麼新建項目以及打包發佈; 實際開發中,我們基本都是用多模塊的的方式構建項目,尤其微服務中,一個系統拆分成很多個微服務項目,在加上基礎模塊,那一個系統的模塊項目就不少了,這個時候,肯定得需要用多模塊的方式構建項目, ...
  • 前言 保留小數位是我們經常會碰到的問題,尤其是刷題過程中。那麼在python中保留小數位的方法也非常多,但是筆者的原則就是什麼簡單用什麼,因此這裡介紹幾種比較簡單實用的保留小數位的方法: 方法一:format函數 >>> print('{:.3f}'.format(1.23456)) 1.235 > ...
  • 本系列筆記主要基於《深入理解Java虛擬機:JVM高級特性與最佳實踐 第2版》,是這本書的讀書筆記。 JVM的參數類型,大致可以分為標準參數、X參數、XX參數,而XX參數又可以分為Boolean類型、非Boolean類型。 標準參數 標準參數就是各個JVM的版本中不變的,相對穩定的參數。 例如: < ...
  • Java選擇結構,Java迴圈結構,return、break、continue ...
  • parameterType、resultType的數據類型要寫全限定類名或者別名。 mybatis已經給常用的數據類型起好了別名,參考mybatis.pdf 3.1.1小節: 基本數據類型很少用,一般都是用包裝類。總結下來就是:字母全小寫。 ...
  • 這篇文章介紹的內容是關於PHP 經典面試題集 PHP 經典面試題集,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下 結合我自己面試情況,面對的一些php面試題列舉出來,基本上結合自己的看法回答的,不妥的地方請大家指出去,與大家一起討論分析,也希望能幫到正在面試的童鞋們: 1.表單提交中 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...