def compute_scores(self,Y):
if Y.shape[1]==1:
Y=self.get_Y_from_y(Y)
P,N=Y.shape
R=Y*Y.H/N
S,U=lg.eig(R)
eigenvalues=np.sort(np.real(S))[::-1]
scores=np.zeros(len(self.L_vect))
for index,L in enumerate(self.L_vect):
if self.corrected==1:
nb_free_parameters=L*(2*P-1-L) #see [WIL94]
else:
nb_free_parameters=L*(2*P-L) #see [WAX85]
num=np.prod(eigenvalues[L:])
den=np.mean(eigenvalues[L:])**(P-L)
penalty_term=penalty_term_IC(nb_free_parameters,N,method=self.method)
scores[index]=-2*N*np.log(num/den)+penalty_term
self.scores=scores
评论列表
文章目录