找回密码
 注册
关于网站域名变更的通知
查看: 477|回复: 3
打印 上一主题 下一主题

高斯混合模型里面的参数可以用到混核主元分析里面吗?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-12-24 11:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
高斯混合模型里面的参数可以用到混核主元分析里面吗?有混合概率主元分析的EM算法的程序吗
) n$ h3 N' ~3 efunction ppca_mixture  # t! {' P" z3 c4 k0 ^) n% [1 B
filename = 'virus3.dat';
) C+ ^/ G" [- W2 i6 J" j    T = importdata(filename);
$ b/ n  h" z- D% h    [N, d] = size(T);6 @! |- @" u% K+ I! A' a( p
    M = 3;  % number of ppca analysers considered 考虑的ppca分析仪数量
3 G: g& M- x2 o+ Z1 X# c- p' [) [' [' y    q = 2;  % dimension of ppcas  ppca的维数6 U% F; ?# ^# u+ c4 G8 d* B
    % init
( o  @$ [! Y8 \2 P7 y4 t0 u! f    % initializing the posteriors (p(i|t_n), indexed by (n, i). R in text)
( U  o# y9 C+ n; r* p    %初始化后验(p(i|t_n),在文本中由(n, i). R索引     ' C+ K  {, ?5 X: D# }0 y" p* ?8 c
    classes = [3, 3, 3, 3, 2, 2, 3, 1, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2];' {( {9 A+ Z- D6 J$ O. ^
    for n=1:N' B3 M; |9 @3 a! ^- z  q( N
        for i=1:M
" l' q2 w  `$ _( T6 A            if(i==classes(n))- i& }5 u! y9 p
                posteriors(n, i) = 1;
, `  t/ r( M; F; C0 H8 i: w! V            else
5 r  q" X& e' t$ F$ G2 S9 e; j                posteriors(n, i) = 0;
' h' @' ]/ K" e$ V# R, n1 X            end$ @6 i* ]: Q: J
        end
# x/ |* y0 s8 c- C    end
2 I6 i. o. }2 Y# S3 W+ D    % precision for convergence checking 收敛检验精度
" C) B, B2 J, B+ l& f# o1 n    epsilon = 0.01;
6 y+ o& O& Q8 f3 M4 m    entered = false;7 A  N9 i, }: X4 d5 p
+ T+ `$ f# ^5 W* Y0 X
    % loop
. T. R& y% Q2 s6 g* Y3 s9 H' O$ H3 P8 S    while(true)! o, V$ ^: H, u0 k. g' E2 A
        % updating priors (p(i), pi in text) and mean vectors (mu in text)
( v- s$ f3 v4 M7 L        % 更新先验(p(i),文本中的pi)和平均向量(文本中的mu)- S: ^7 G  B/ U3 i! f8 X
        new_priors = 1/N * sum(posteriors);
) p5 \4 j) p8 |+ u  A        new_mus = zeros(M, d);
/ {0 ~$ x3 y9 {" r        for i=1:M
! V% Q) v" G" C4 s/ f& `  k            for n=1:N
! d: q; u( P! u$ F                new_mus(i, = new_mus(i, + posteriors(n, i) * T(n, ;$ ?0 O  D2 R0 s
            end
' E2 T5 |' v: ~+ N& N4 O) m            new_mus(i, :) = new_mus(i, :) / sum(posteriors(:, i));8 B3 Q- b& q) ?1 |, x. K
        end  l3 e# Q1 [5 i6 N
1 u9 H1 @) m3 L/ W6 @
        % computing covariance matrices (S in text)计算协方差矩阵(文本中的S)
* l1 ~' @8 f5 N. g  r1 s        covariances = cell(M);
# Y" s( f1 H4 j- f9 J        for i=1:M
- y# }% ^/ o/ a( I            covariances{i} = zeros(d, d);/ F/ a$ Y8 ~7 C) e/ F
            for n=1:N4 O/ s; j6 N9 y+ s
                covariances{i} = covariances{i} + posteriors(n, i)*(T(n, :)' - new_mus(i, :)')*(T(n, :)' - new_mus(i, :)')';
* ~9 i$ s' J$ U) @$ D  Z2 S            end3 m% A6 Z. ^) ]$ m# V  b" q
            covariances{i} = covariances{i} / (new_priors(i) * N);( E! s* n8 Y8 s: P; z" f
        end5 Q9 @+ k; P3 n/ O, w; u, P, F$ _

2 ]0 P  k! \/ s' k$ m# l2 }0 M6 L! h
        % applying ppca using covariance matrices 使用协方差矩阵应用ppca# k9 {8 `+ _6 W" @
        % (Ws are weight matrices; sigmas are variances) (Ws为权重矩阵;(差异)
5 _8 H0 m  r  M& v% A  [! B        new_Ws = cell(M);
( q& C0 f% d( ~. q" s# w        for i=1:M
; |3 X0 D0 r( ~; P1 H8 j6 e& t            [new_Ws{i}, new_sigmas{i}] = ppca_from_covariance(covariances{i}, q);
0 l  a$ ~  W, B, t% t" D3 E        end
8 q& D( L! r- @; V* M% `3 u+ `, M, A8 \, M+ C
        % convergence check 收敛性检查
9 z2 T, w& ]7 I) |0 T' c        if(entered && max(abs(new_priors - priors)) < epsilon && max(max(abs(new_mus - mus))) < epsilon && max(max(max(abs(cell2mat(new_Ws) - cell2mat(Ws))))) < epsilon && max(abs(new_sigmas - sigmas)) < epsilon): I8 v7 V% _/ v& c& V' @
            break;
( c0 ?4 X" r5 x9 p5 P# w        end% W2 u" _. |% |
; M' I5 Z! B4 w- P/ |$ m) m) a
        % replacing old parameter values 替换旧的参数值1 n& T& }9 w' R9 ?9 U% O
        priors = new_priors;( y% L1 a8 r: @8 @. t% z# I
        mus = new_mus;  w0 {  i# V* @3 R
        Ws = new_Ws;" U* G1 B, b  r; v$ R6 P
        sigmas = new_sigmas;& i0 i9 u/ [& ?) m

* i  u! O2 V' X2 T6 m2 k9 J8 b        % computing the likelihoods (p(t_n|i)) 计算概率(p(t_n|i))
5 r( Q. p7 |& {4 j$ x        for i=1:M/ z; A+ y7 l0 u" J& Z9 p
            C = sigmas{i}^2 * eye(d) + Ws{i}*Ws{i}';
$ i2 o2 ?4 V1 ]( ^5 ?/ V) ?            detC = det(C);
% H5 W$ `0 z. `1 b$ c            invC = inv(C);
3 }8 b" i) E/ A3 D            for n=1:N
2 ^9 @! t4 @9 ]( t                likelihoods(n, i) = (2*pi)^(-d/2)*detC^(-1/2)*exp(-1/2*(T(n, :)' - mus(i, :)')'*invC*(T(n, :)' - mus(i, :)'));
# H" K' T8 ]4 v# p, S7 }8 V) Q            end9 j  ]  Z% f4 D  c9 H
        end4 X. W$ \9 J9 F1 [
        % computing the joint probabilities (p(t_n, i)) 计算联合概率(p(t_n, i))
5 x! h# e" G( X1 m        for i=1:M- P# [1 @6 D" P2 j7 S; n( B
            joint(:, i) = likelihoods(:, i) * priors(i);
4 U, @( t! [6 F1 A  C- v        end
! }6 c- t6 O% n; l0 t3 }        % computing the data priors (p(t_n)) 计算数据先验(p(t_n))+ r2 W$ l" O+ v- _5 X; V
        data_priors = sum(joint');2 S7 U* [! C5 j& Z9 [
        % computing and displaying the likelihood of the data set 计算和显示数据集的可能性
2 Y& Z$ o. b4 {9 ]        disp(sum(log(data_priors)));
1 S% E7 P/ t$ g6 p& V  ]: Q        % computing the posteriors (p(i|t_n), indexed by (n, i). R in text)
9 g8 Y( w& T( b        % 计算后验(p(i|t_n),用(n, i)索引。R在文本中)
2 z0 ]3 b' Q/ T- }        for n=1:N
- x% H# Q$ l! T9 k8 I7 ^5 H6 t            posteriors(n, :) = joint(n, :) / data_priors(n);
9 `  q. ]' G, |' _        end8 R: f' t# _/ |. }8 b

- N, |- C% B$ X) F8 x5 r        % we went through the loop at least once 我们至少做了一次循环
( A' l0 T5 q' c: }2 a/ t* \% S1 `        entered = true;* S7 z+ ?; b! o2 Y# U
    end5 V5 b# o' c9 n# H& G( G

2 V& n7 m2 j/ @' Z! W* I% B- r' f" Y3 N  M9 ?, r1 H4 V
    % computing the latent variables 计算潜变量
: ^: Y* j5 \3 C5 G! b    latent = cell(M);
( E( k3 p, m" I: Z% x5 d    for i=1:M- w' t$ D6 o1 i! }
        latent{i} = ppca_latent(T, Ws{i}, sigmas(i));
' s0 {2 `/ f& y( k/ ~    end
  f: l1 r0 i2 |4 |6 o% d, F    % selecting likely points for each ppca analyser 为每个ppca分析器选择可能的点: `; X+ J! X# R* o. I6 O, {
    for n=1:N* q/ y% j' Q0 I1 @. c4 o
        [~, i] = sort(posteriors(n, :), 'descend');! f6 p9 ^2 P) [( @/ g3 c
        points_to_classes(n) = i(1);4 E, A7 L% m% T
    end% a6 Z# I! i2 j/ N+ Y# _
    classes_to_points = cell(M);
' t* `% t' j7 W$ m) o/ i    classes_to_point_numbers = cell(M);3 A% d8 [& p. M% z) b
    for n=1:N
' b( V7 {' Z6 f* d6 e6 L8 q/ L- ]4 w        classes_to_points{points_to_classes(n)}(:, end+1) = latent{points_to_classes(n)}(:, n);0 b/ A5 _' z& U; Y' c" G) I# N
        classes_to_point_numbers{points_to_classes(n)}(end+1) = n;1 s. g- M3 t. {" \* O
    end
0 h. B& s  Z8 O  n  H& G* s4 w: Z% g( ~7 ^5 w+ O
    % display the results of the automatic classification 显示自动分类结果
9 V& x' [0 N; x    for i=1:M
& v5 T! d0 s' V: A        disp(classes_to_point_numbers{i});- X# F& e) i+ e  U0 a! |
    end
( U; \& P7 _$ ?5 V' _
$ s3 T; y! y" i1 k' I% X    ppca_plot2d(classes_to_points{1});% ], e* p$ Z" l# L& w2 J2 b# S4 _
end, c, N1 S& e: l- ]

该用户从未签到

2#
发表于 2020-12-24 13:13 | 只看该作者
帮你顶一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-22 16:55 , Processed in 0.093750 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表