-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTrainModel2.m
More file actions
68 lines (62 loc) · 1.86 KB
/
TrainModel2.m
File metadata and controls
68 lines (62 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
function [ModelInfo]= TrainModel2(trSet,TWopt,TS)
if (~exist('TS','var') || isempty(TS))
TS=TWopt;
end
M=length(trSet);
nTrajectoryXY=trSet{1};
N=size(nTrajectoryXY{1},1);
for i=2:M
TrajectoryXY=trSet{i};
nTrajectoryXY{1}=[nTrajectoryXY{1},TrajectoryXY{1}];
nTrajectoryXY{2}=[nTrajectoryXY{2},TrajectoryXY{2}];
end
flag=0;
ModelExtension; % ==== add model here
M1=length(gMats);
KappaTHSVec(1,:)=zeros(1,M1);
k=2;
for itr1=2:(M1+1)
KappaTHSVec(k,:)=zeros(1,M1);
KappaTHSVec(k,itr1-1)=0.5;
k=k+1;
end
for itr1=2:(M1+1)
KappaTHSVec(k,:)=[0,0,0];
KappaTHSVec(k,itr1-1)=1;
k=k+1;
end
ModelInfo.N=N;
ModelInfo.DirMat=DirMat;
ModelInfo.gMats=gMats;
ModelInfo.InitRankOrderMat=InitRankOrderMat;
ModelInfo.prINFLNet=prINFLNet;
ModelInfo.nTrajectoryXY=nTrajectoryXY;
ModelInfo.KappaTHSVec=KappaTHSVec;
ModelInfo.W=GetModelFitting(KappaTHSVec,ModelInfo);
ModelInfo.fullprINFLNet=fullprINFLNet;
ModelInfo.TWopt=TWopt;
ModelInfo.avgNeighborMat=avgNeighborMat;
end
function [W]=GetModelFitting(KappaTHSVec,ModelInfo)
N=ModelInfo.N;
M1=length(ModelInfo.gMats);
for i=1:max(size(KappaTHSVec))
WVec=zeros(N,max(size(KappaTHSVec(i,:))));
for ID=1:N
filter = isnan(ModelInfo.DirMat(ID,:));
for itr=1:M1
filter=filter | isnan(ModelInfo.gMats{itr}(ID,:)) ;% ~( | isnan(ModelInfo.glocalMat(ID,:)) | isnan(ModelInfo.grMat(ID,:)) | isnan(ModelInfo.DirMat(ID,:)));
end
filter=~filter;
XMat=ModelInfo.DirMat(ID,filter)';
GMat=[];
for itr=1:M1
GMat=[GMat,ModelInfo.gMats{itr}(ID,filter)'];
end
%GMat=[ModelInfo.ghinMat(ID,filter)',ModelInfo.glocalMat(ID,filter)',ModelInfo.grMat(ID,filter)'];
[ w ] = ModelWeightFitting( GMat,XMat,KappaTHSVec(i,:) );
WVec(ID,:)=w;
end
W{i}=WVec;
end
end