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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
高斯混合模型里面的参数可以用到混核主元分析里面吗?有混合概率主元分析的EM算法的程序吗
5 ^9 n1 s6 s" vfunction ppca_mixture  0 R3 k4 T/ T) ]4 E2 V) M( t
filename = 'virus3.dat';7 _0 ]# _7 E5 O6 }& }8 |1 S) H9 h
    T = importdata(filename);. S- Y# c; t0 t* Q; y
    [N, d] = size(T);4 z7 b" j1 {# _0 r, k' X
    M = 3;  % number of ppca analysers considered 考虑的ppca分析仪数量
) M1 m) j5 b( V' w    q = 2;  % dimension of ppcas  ppca的维数
8 Y0 ^8 A; [& Y7 M+ z    % init& V+ v3 g" Q# f0 o2 f
    % initializing the posteriors (p(i|t_n), indexed by (n, i). R in text)
9 u5 l+ k2 d) H7 N  _  |    %初始化后验(p(i|t_n),在文本中由(n, i). R索引     " r" n6 E" @+ N$ D: P# [; b
    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];
. n9 H/ g) ^& Z7 `0 {3 L    for n=1:N% @! P. U/ v) G7 z
        for i=1:M
: z$ K8 ], H# T  O2 F" C3 v            if(i==classes(n))! W4 ?" a5 I6 }* R6 l* P5 n
                posteriors(n, i) = 1;
0 M+ i, h/ ]6 \- [) @, N0 a            else* l; x. d6 n4 ^$ i, N7 U
                posteriors(n, i) = 0;
. {0 H% I( O6 j3 e% B: U& ~            end& H8 g3 ~5 ^) y: \0 o5 r8 e' k
        end  [* M; o" m0 w3 c6 o3 `8 m
    end
4 j9 X5 y  e9 v    % precision for convergence checking 收敛检验精度; P: g; y8 j# n0 ]
    epsilon = 0.01;
6 a: E- n. j$ T    entered = false;
* w2 d- Q. t, T" u
4 Z* \; ~/ d. _. a. w6 \    % loop
, R" Y$ m" R; T* N    while(true)% F, {9 e. w9 {7 g, j$ z
        % updating priors (p(i), pi in text) and mean vectors (mu in text)( D& Q& Q: P6 u* g9 y
        % 更新先验(p(i),文本中的pi)和平均向量(文本中的mu)
! Z  T2 w! I+ [7 P* X3 o  r9 f& e        new_priors = 1/N * sum(posteriors);* |+ V& T: [; l& V
        new_mus = zeros(M, d);
, g* k  V3 k5 f7 _0 C        for i=1:M/ ?$ k$ C4 c( i) e
            for n=1:N
# ?. H2 {; @. O$ N                new_mus(i, = new_mus(i, + posteriors(n, i) * T(n, ;
8 ]4 ^5 t& J/ Q8 E& P2 \( [0 ^; o0 Y            end
6 k7 ?# Z% r' Z! d% a            new_mus(i, :) = new_mus(i, :) / sum(posteriors(:, i));
- g1 p3 m% B7 M% u1 ^        end( L: |; z, M& V3 w# c

+ g- I. H! C4 Q4 Y2 b) L        % computing covariance matrices (S in text)计算协方差矩阵(文本中的S)' T; q; |! r7 b: @6 q0 T
        covariances = cell(M);
: U/ U+ M8 `0 |' F7 ^5 Q$ @        for i=1:M
. W& V0 h+ [4 ~4 W' R4 @' Q            covariances{i} = zeros(d, d);
" D- ?! d( h. O$ a            for n=1:N+ h( q& b1 q3 L3 W+ }" p& q
                covariances{i} = covariances{i} + posteriors(n, i)*(T(n, :)' - new_mus(i, :)')*(T(n, :)' - new_mus(i, :)')';7 V: k1 Y- G$ t; c1 o
            end
) m* Y4 W. g5 I  x            covariances{i} = covariances{i} / (new_priors(i) * N);
8 K  S5 ^6 I, e- ~7 H4 r3 C        end
! i1 Z  {$ a+ E. z" D1 j$ W( F% W
7 z1 f; y* F9 X3 c, e
1 Y# k8 r; [4 ]& C* T1 e' y- g& Q% V        % applying ppca using covariance matrices 使用协方差矩阵应用ppca
1 ?6 G7 K& ?$ r* |: ]        % (Ws are weight matrices; sigmas are variances) (Ws为权重矩阵;(差异)
! l8 j% F% k: W* B6 y* X        new_Ws = cell(M);
& e  J# t# d0 R: \# c0 S! ]        for i=1:M
( ^6 c2 k* Y4 R. f            [new_Ws{i}, new_sigmas{i}] = ppca_from_covariance(covariances{i}, q);  H- z( j, E) p8 i, h: E' @- m* S
        end/ _8 R; p9 W: s1 W
; Z2 U# k( h  n9 F
        % convergence check 收敛性检查5 p7 |. Y% k6 @* G  x  H7 \' U6 _
        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)9 h5 b, J; @3 i
            break;& {) u+ B( z* a
        end
0 v4 n* d2 m# W3 Y% a. T$ Y" W( i  A" W+ S0 ?3 d- ?4 H: Y
        % replacing old parameter values 替换旧的参数值
  y* c9 G3 |2 s: p        priors = new_priors;
9 f2 Y( x) j1 G        mus = new_mus;2 M7 X/ h5 G2 ~" p9 f1 Q* h
        Ws = new_Ws;; S/ t4 x' O  x- `
        sigmas = new_sigmas;( \$ n7 F  g/ Y2 e% P8 M
5 }+ t' y+ ^- _% z. H5 b
        % computing the likelihoods (p(t_n|i)) 计算概率(p(t_n|i))8 T; x+ M6 |0 Y( k5 B% P9 I3 r
        for i=1:M
& O5 T& x! {- [; N* b' C' o) ?1 s            C = sigmas{i}^2 * eye(d) + Ws{i}*Ws{i}';
4 w& r7 w: K7 b4 M            detC = det(C);" Y$ X2 R# u2 M2 \$ t; N) U! c
            invC = inv(C);2 a! Y0 ]7 }1 x4 \
            for n=1:N+ o4 s3 ^+ O% r" c" Z
                likelihoods(n, i) = (2*pi)^(-d/2)*detC^(-1/2)*exp(-1/2*(T(n, :)' - mus(i, :)')'*invC*(T(n, :)' - mus(i, :)'));" o; G" Q. Q" b, H. t) {
            end* d# J4 R0 T* R$ z
        end6 W  U/ K% l2 y8 B% Q' S) J5 w  y
        % computing the joint probabilities (p(t_n, i)) 计算联合概率(p(t_n, i))
! W' ~0 i: j$ W, f1 Q; l        for i=1:M6 U( G# R" e' O
            joint(:, i) = likelihoods(:, i) * priors(i);, [4 [: \! B9 ^$ w' {; g
        end. G8 {5 L# m7 m% Y9 O0 e" k, ~
        % computing the data priors (p(t_n)) 计算数据先验(p(t_n))
2 d: C" {+ o' [5 \1 M* g6 E8 f        data_priors = sum(joint');/ V! `9 p0 B% K
        % computing and displaying the likelihood of the data set 计算和显示数据集的可能性8 s; {0 @- K* }1 h! R  m
        disp(sum(log(data_priors)));
/ S5 U5 ], T/ s7 N: c        % computing the posteriors (p(i|t_n), indexed by (n, i). R in text)
1 f$ g) S) p/ ^& `; q0 R' p        % 计算后验(p(i|t_n),用(n, i)索引。R在文本中)+ k+ B: `$ [3 |, [' @, y. D+ Y1 m
        for n=1:N8 h: e! O( F0 {
            posteriors(n, :) = joint(n, :) / data_priors(n);
7 P; o# v1 ^0 o1 o8 P: h        end
) ]/ z; f+ K/ P+ `) Y: Q4 |& ?/ W) @( i; S
        % we went through the loop at least once 我们至少做了一次循环0 D+ X# n1 }) O, F- n
        entered = true;6 q8 i2 l* h- B, R
    end
: X/ W/ F- |' n  ~$ {" C& G. V, q& \9 ^5 v1 M
/ W% x( ]& {. Z- b+ p% I
    % computing the latent variables 计算潜变量
0 p: p( C! c: t, e7 a! g: A- U    latent = cell(M);! f+ @7 \$ T: q1 D1 Q
    for i=1:M3 W  P# z5 F9 b! _8 m: B9 V' y
        latent{i} = ppca_latent(T, Ws{i}, sigmas(i));
. T  [+ x5 U6 P0 Z( O+ ?    end% O9 Y  ]6 v6 t
    % selecting likely points for each ppca analyser 为每个ppca分析器选择可能的点
6 r: B; U) F2 ]    for n=1:N" V: }7 G, K  X! u6 _& m
        [~, i] = sort(posteriors(n, :), 'descend');  o, h  f  ]/ S: K- P
        points_to_classes(n) = i(1);
. W1 e- L' i; [    end
) r5 G6 g, K% M8 }1 Y    classes_to_points = cell(M);
4 l! @/ m- I2 v, A$ f. O    classes_to_point_numbers = cell(M);3 G- O( L$ {( a
    for n=1:N; Q: ~& v" D$ y6 ]  a+ x- Q" L
        classes_to_points{points_to_classes(n)}(:, end+1) = latent{points_to_classes(n)}(:, n);
7 Y  Q9 r* q, A/ D4 I        classes_to_point_numbers{points_to_classes(n)}(end+1) = n;; u. ]; `3 V5 q
    end' J! b' i, U" \- b3 w
6 Q1 u- ~$ e" x, p4 D4 {
    % display the results of the automatic classification 显示自动分类结果
! A' w1 J% k, O! g) P: O    for i=1:M
' a2 H$ [. E+ [6 y& s        disp(classes_to_point_numbers{i});
0 `- N5 [& P' p    end
. I- E, e' r' q5 H( Z
! _, n: U, _9 l    ppca_plot2d(classes_to_points{1});
+ d, ?$ i* p8 Mend
0 v7 E3 C: D' Q6 p; F

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-1 05:54 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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