def gen_report(M, name, obj, err, L_test, S_test, L_true, S_true,
y_true):
lam = 1.0/np.sqrt(np.max(M.shape))
nn = norm(L_test, 'nuc')
on = np.sum(np.abs(S_test))
o = nn + lam*on
print('Rank = %d, NNZs = %d' % (matrix_rank(L_test),
np.count_nonzero(S_test)))
print('Nuclear Norm = %e' % nn)
print('One Norm = %e' % on)
print('Objective = %e' % o)
if L_true is not None:
print('Recovery Error = %e' %
(norm(L_test - L_true, 'fro')/norm(L_true, 'fro')))
if y_true is not None:
y_test = np.linalg.norm(S_test, axis=1)
tp, fp, _ = metrics.roc_curve(y_true, y_test)
score = metrics.roc_auc_score(y_true, y_test)
auc_ax.plot(tp, fp, label=name + ' AUC=' + str(score))
obj_ax.plot(obj, label=name + ' Objective')
评论列表
文章目录