GMM_example(3)
生活随笔
收集整理的這篇文章主要介紹了
GMM_example(3)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
下面實(shí)現(xiàn)高斯混合模型的軟聚類,其步驟為
(1)計(jì)算每個(gè)樣本點(diǎn)關(guān)于每個(gè)簇的后驗(yàn)概率, 這個(gè)概率可用來描述這個(gè)點(diǎn)和每個(gè)類
的相似度;(2)根據(jù)后驗(yàn)概率值大小進(jìn)行排序;
(3)通過分?jǐn)?shù)決定這個(gè)點(diǎn)的所屬類別;
首先生成訓(xùn)練樣本數(shù)據(jù)X,然后調(diào)用函數(shù) fitgmdist() 擬合一個(gè)高斯混合模型,最后調(diào)用函數(shù) posterior 計(jì)算每個(gè)樣本對(duì)于每個(gè)簇的后驗(yàn)概率并進(jìn)行可視化顯示。 % 高斯混合模型軟聚類的例子 clear; close all k = 2; %高斯混合成分?jǐn)?shù) rng (0) %為了可重復(fù)性 mu1 = [1 2]; sigma1 = [3 0.2; 0.2 2]; %第一個(gè)高斯分布的均值和協(xié)方差 mu2 = [-1 -2]; sigma2 = [2 0; 0 1]; %第二個(gè)高斯分布的均值和協(xié)方差 X = [mvnrnd(mu1,sigma1,300); mvnrnd(mu2,sigma2,300)];%生成樣本集 gm = fitgmdist(X,k); %高斯混合模型擬合 t = [0.4,0.6]; %后驗(yàn)概率如果在[0.4 0.6]范圍內(nèi),則認(rèn)為可以同時(shí)屬于兩個(gè)類 p = posterior(gm,X); %用函數(shù)posterior求樣本集X關(guān)于每個(gè)成分的后驗(yàn)概率,p是n*k矩陣 n = size(X,1); %n是樣本數(shù)%下面用sort函數(shù)對(duì)每個(gè)類的后驗(yàn)概率大小排序,這里只有兩個(gè)類 [~,order]=sort(p(:,1)); %order返回隸屬度從小到大的對(duì)應(yīng)樣本的索引 figure (1); plot(1:n,p(order,1),'r-',1:n,p(order,2),'b-','LineWidth',1.5); legend('簇1','簇2'); ylabel('后驗(yàn)概率'); xlabel('樣本點(diǎn)'); title('高斯混合聚類的后驗(yàn)概率曲線');idx = cluster(gm,X); %對(duì)高斯混合模型進(jìn)行聚類 idx_both = find(p(:,1)>=t(1)&p(:,1)<=t(2));%確定同時(shí)屬于兩個(gè)類的點(diǎn) num_both = numel(idx_both) %返回同時(shí)屬于兩個(gè)簇的樣本個(gè)數(shù) figure(2); gscatter(X(:,1),X(:,2),idx,'rb','po',5); hold on scatter(X(idx_both,1),X(idx_both,2),30,'k','filled'); legend({'簇1','簇2','兩個(gè)簇'},'Location','SE','FontSize',8); title('高斯混合模型軟聚類'); xlabel('$x$','Interpreter','Latex'); ylabel('$y$','Interpreter','Latex'); hold off?
?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的GMM_example(3)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GMM_example(1)
- 下一篇: ML---Simple Linear R