1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y56Wmpty
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
在社交网络中,情感传播与信息传播类似。第一,信息传播的研究主体是信息,信息中包含着各种各样的情境,情感传播的研究主体是情感,情感蕴含着丰富多样的类型。第二,情感的传播依赖于信息的传播,所以情感的生命周期同样经历着:潜伏期-爆发期-蔓延期-衰退期。第三,信息传播存在着相互竞争,情感传播存在着相互影响。近年来,网络情感传播研究吸引了信息管理、传播学、心理学、社会学、公共管理等不同领域的学者参与,是一个跨学科研究领域。情感的传播涉及到个体认知、情感、行为多重作用,只有深入理解社会学理论,准确把握情感动力学机制,才能对情感传播进行深入有效的研究。
4.部分源码
function [Mu,LL]=func_hmm(X,T,K,Iteration,tol)
p = length(X(1,:));
N = length(X(:,1));
N = N/T;
Cov = diag(diag(cov(X)));
Mu = randn(K,p)*sqrtm(Cov)+ones(K,1)*mean(X);
Pi = rand(1,K);
Pi = Pi/sum(Pi);
P = rand(K);
P = rdiv(P,rst_sum(P));
LL = [];
lik = 0;
alpha = zeros(T,K);
beta = zeros(T,K);
gamma = zeros(T,K);
B=zeros(T,K);
k1=(2*pi)^(-p/2);
for ij=1:Iteration
ij
Gamma = [];
Gammasum= zeros(1,K);
Scale = zeros(T,1);
Xi = zeros(T-1,K*K);
for n=1:N
iCov = inv(Cov);
k2 = k1/sqrt(det(Cov));
for i=1:T
for l=1:K
d = Mu(l,:)-X((n-1)*T+i,:);
B(i,l) = k2*exp(-0.5*d*iCov*d');
end;
end;
scale = zeros(T,1);
alpha(1,:)= Pi.*B(1,:);
scale(1) = sum(alpha(1,:));
alpha(1,:)= alpha(1,:)/scale(1);
for i=2:T
alpha(i,:) = (alpha(i-1,:)*P).*B(i,:);
scale(i) = sum(alpha(i,:));
alpha(i,:) = alpha(i,:)/scale(i);
end;
beta(T,:) = ones(1,K)/scale(T);
for i=T-1:-1:1
beta(i,:) = (beta(i+1,:).*B(i+1,:))*(P')/scale(i);
end;
gamma = (alpha.*beta);
gamma = rdiv(gamma,rst_sum(gamma));
gammasum = sum(gamma);
xi = zeros(T-1,K*K);
for i=1:T-1
t = P.*( alpha(i,:)' * (beta(i+1,:).*B(i+1,:)));
xi(i,:) = t(:)'/sum(t(:));
end;
Scale = Scale+log(scale);
Gamma = [Gamma; gamma];
Gammasum = Gammasum+gammasum;
Xi = Xi+xi;
end;
Mu =zeros(K,p);
Mu = Gamma'*X;
Mu = rdiv(Mu,Gammasum');
sxi= rst_sum(Xi')';
sxi= reshape(sxi,K,K);
P = rdiv(sxi,rst_sum(sxi));
Pi = zeros(1,K);
for i=1:N
Pi=Pi+Gamma((i-1)*T+1,:);
end
Pi=Pi/N;
Cov=zeros(p,p);
for l=1:K
d=(X-ones(T*N,1)*Mu(l,:));
Cov=Cov+rprod(d,Gamma(:,l))'*d;
end;
Cov=Cov/(sum(Gammasum));
oldlik = lik;
lik = sum(Scale);
LL = [LL lik/T];
end
end
function Z=rst_sum(X)
Z=zeros(size(X(:,1)));
for i=1:length(X(1,:))
Z=Z+X(:,i);
end
end
function Z=rdiv(X,Y)
Z=zeros(size(X));
for i=1:length(X(1,:))
Z(:,i)=X(:,i)./Y;
end
end
function Z=rprod(X,Y)
[n m]=size(X);
Z=X.*(Y*ones(1,m));
end
05_101_m