def results(db, model, comp_func, k=1, expand_label=False):
if k < 1:
raise ValueError
score_matrix = generate_cross_scores(local_db, model, comp_func, expand_label)
labels = np.array(get_labels())
# Sort scores in descending order
top_score_ind = np.argsort(score_matrix[:, :score_matrix.shape[1]-2,], axis=1)
top_score_ind = np.fliplr(top_score_ind)
# Get top K guesses
y_hat = []
for i in range(k):
y_hat.append(labels[top_score_ind[:,i]])
y_hat = np.vstack(y_hat).T
y = score_matrix[:, score_matrix.shape[1]-1]
score_pool = []
for i in range(k):
score_pool.append((y == y_hat[:, i]).astype(int))
score_pool = np.vstack(score_pool).T
r = np.max(score_pool, axis=1)
return float(np.count_nonzero(r)) / float(len(r)), score_matrix
评论列表
文章目录