-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathModelSelection2.m
More file actions
62 lines (57 loc) · 1.78 KB
/
ModelSelection2.m
File metadata and controls
62 lines (57 loc) · 1.78 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
function [ ValdInfo ] = ModelSelection2( valSet,ModelInfo,TS )
%MODELSELECTION Summary of this function goes here
% Detailed explanation goes here
if (~exist('TS','var') || isempty(TS))
TS=ModelInfo.TWopt;
end
M=length(valSet);
nTrajectoryXY=valSet{1};
for i=2:M
TrajectoryXY=valSet{i};
nTrajectoryXY{1}=[nTrajectoryXY{1},TrajectoryXY{1}];
nTrajectoryXY{2}=[nTrajectoryXY{2},TrajectoryXY{2}];
end
flag=1;
ModelExtension;
M=size(ModelInfo.KappaTHSVec,1);
T=size(DirMat,2);
N=ModelInfo.N;
errMatList={};
scoreMat=zeros(N,M);
D=size(ModelInfo.W{1},2);
for i=1:M
WVec=ModelInfo.W{i};
errMat=zeros(N,T);
for ID=1:N
%filter=~( isnan(ModelInfo.ghinMat(ID,:))| isnan(ModelInfo.glocalMat(ID,:))|isnan(ModelInfo.gilMat(ID,:)) | isnan(ModelInfo.grMat(ID,:)) | isnan(ModelInfo.DirMat(ID,:)));
ActualVec=DirMat(ID,:)';
modelMats = [];
for itr=1:length(gMats)
modelMats=[modelMats,gMats{itr}(ID,:)'];
end
PredVec=WVec(ID,:)*modelMats';
errMat(ID,:)=abs(ActualVec'-PredVec);
for k=1:length(errMat(ID,:))
if errMat(ID,k)>180
errMat(ID,k)=360-errMat(ID,k);
end
end
end
errMatList{i}=errMat;
scoreMat(:,i)=nanmean(errMat,2);
end
[~,OPTmodel]=min(scoreMat');
ValdInfo.errMatList=errMatList;
ValdInfo.scoreMat=scoreMat;
ValdInfo.OPTmodel=OPTmodel;
ValdInfo.avgNeighborMat=avgNeighborMat;
Wopt=zeros(N,D);
for i=1:N
Wopt(i,:)=ModelInfo.W{OPTmodel(i)}(i,:);
end
ValdInfo.Wopt=Wopt;
[ prINFLNet2,fullprINFLNet2,InitRankOrderMat2 ] = GetProbInfluenceNet3( DirMat,ModelInfo.TWopt,TS );
ValdInfo.prINFLNet=prINFLNet2;
ValdInfo.fullprINFLNet=fullprINFLNet2;
ValdInfo.InitRankOrderMat=InitRankOrderMat2;
end