#if(cur_exp_param=='cpu'): # labels_to_eval=y_test_all_labels[:,:math.floor(difference_percent*output_classes)] #else: # labels_to_eval=y_test_all_labels[:,:1] if (cur_exp_param == 'cpu'): top_k = 10 else: top_k = 5 while i < top_k: y_pred = test_predict_top_k[:, 0:i + 1] i = i + 1 ndcg_i = func_eval._NDCG_score(y_pred, labels_to_eval) ndcgs.append(ndcg_i) print(ndcg_i) #sys.exit(0) print("precision:") i = 0 precisions = [] while i < top_k: y_pred = test_predict_top_k[:, 0:i + 1] i = i + 1
for i, each in enumerate(test_labels): y_real.append(np.array([each])) y_real = np.array(y_real) print('current exper_param is : ', dataset) print("ncdg:") i = 0 ndcgs = [] top_k = 5 while i < top_k: y_pred = test_pred[:, 0:i + 1] i = i + 1 ndcg_i = func_eval._NDCG_score(y_pred, y_real) ndcgs.append(ndcg_i) print(ndcg_i) #sys.exit(0) print("precision:") i = 0 precisions = [] while i < top_k: y_pred = test_pred[:, 0:i + 1] i = i + 1
for j,label in enumerate(new_sort_list): indices = [i for i, l in enumerate(y_test) if l == label] each_label_real=[y_test[i] for i in indices] # if(each_label_real==[]): # f1_score[j]=0 # print(f1_score[j]) # continue each_label_predict=np.array([test_predict_top_k[i] for i in indices]) each_labels_to_eval=np.array([labels_to_eval[i] for i in indices]) precision=func_eval._precision_score(each_label_predict,each_labels_to_eval) precisions[j]=precision recall=func_eval.new_recall(each_label_predict,each_labels_to_eval) recalls[j]=recall ncdg=func_eval._NDCG_score(each_label_predict,each_labels_to_eval) ncdgs[j]=ncdg #print('\nrecalls:',recalls) #print('precisions:',precisions) #print('ncdgs:',ncdgs) #----------3. split labels into group by label frequency------------------------- #-----------get the evaluation of each group------------------------------ group_recalls=[] group_precisions=[] group_ncdgs=[]