def glassoBonaFidePartial(gl,X,TrueCov):
#take a
ep=EmpiricalCovariance().fit(X)
emp_cov=ep.covariance_
_,precs=graph_lasso_path(X, gl.cv_alphas_)
best_score = -np.inf
best_ind=0
for i in xrange(len(gl.cv_alphas_)):
try:
this_score = log_likelihood(TrueCov, precs[i])
if this_score >= .1 / np.finfo(np.float64).eps:
this_score = np.nan
if(this_score>best_score):
best_score=this_score
best_ind=i
except:
print 'exited:',best_score
continue
covariance_, precision_, n_iter_ = graph_lasso(
emp_cov, alpha=gl.cv_alphas_[best_ind], mode=gl.mode, tol=gl.tol*5., max_iter=gl.max_iter, return_n_iter=True)
return np.abs(toPartialCorr(precision_))
评论列表
文章目录