Python sklearn.metrics.precision_score() Examples
The following are 30
code examples of sklearn.metrics.precision_score().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
sklearn.metrics
, or try the search function
.
Example #1
Source File: multi_class_classification.py From edge2vec with BSD 3-Clause "New" or "Revised" License | 11 votes |
def multi_class_classification(data_X,data_Y): ''' calculate multi-class classification and return related evaluation metrics ''' svc = svm.SVC(C=1, kernel='linear') # X_train, X_test, y_train, y_test = train_test_split( data_X, data_Y, test_size=0.4, random_state=0) clf = svc.fit(data_X, data_Y) #svm # array = svc.coef_ # print array predicted = cross_val_predict(clf, data_X, data_Y, cv=2) print "accuracy",metrics.accuracy_score(data_Y, predicted) print "f1 score macro",metrics.f1_score(data_Y, predicted, average='macro') print "f1 score micro",metrics.f1_score(data_Y, predicted, average='micro') print "precision score",metrics.precision_score(data_Y, predicted, average='macro') print "recall score",metrics.recall_score(data_Y, predicted, average='macro') print "hamming_loss",metrics.hamming_loss(data_Y, predicted) print "classification_report", metrics.classification_report(data_Y, predicted) print "jaccard_similarity_score", metrics.jaccard_similarity_score(data_Y, predicted) # print "log_loss", metrics.log_loss(data_Y, predicted) print "zero_one_loss", metrics.zero_one_loss(data_Y, predicted) # print "AUC&ROC",metrics.roc_auc_score(data_Y, predicted) # print "matthews_corrcoef", metrics.matthews_corrcoef(data_Y, predicted)
Example #2
Source File: metrics_util.py From DeepLearningSmells with Apache License 2.0 | 8 votes |
def get_all_metrics_(eval_labels, pred_labels): fpr, tpr, thresholds_keras = roc_curve(eval_labels, pred_labels) auc_ = auc(fpr, tpr) print("auc_keras:" + str(auc_)) precision = precision_score(eval_labels, pred_labels) print('Precision score: {0:0.2f}'.format(precision)) recall = recall_score(eval_labels, pred_labels) print('Recall score: {0:0.2f}'.format(recall)) f1 = f1_score(eval_labels, pred_labels) print('F1 score: {0:0.2f}'.format(f1)) average_precision = average_precision_score(eval_labels, pred_labels) print('Average precision-recall score: {0:0.2f}'.format(average_precision)) return auc_, precision, recall, f1, average_precision, fpr, tpr
Example #3
Source File: link_prediction.py From edge2vec with BSD 3-Clause "New" or "Revised" License | 7 votes |
def evaluation_analysis(true_label,predicted): ''' return all metrics results ''' print "accuracy",metrics.accuracy_score(true_label, predicted) print "f1 score macro",metrics.f1_score(true_label, predicted, average='macro') print "f1 score micro",metrics.f1_score(true_label, predicted, average='micro') print "precision score",metrics.precision_score(true_label, predicted, average='macro') print "recall score",metrics.recall_score(true_label, predicted, average='macro') print "hamming_loss",metrics.hamming_loss(true_label, predicted) print "classification_report", metrics.classification_report(true_label, predicted) print "jaccard_similarity_score", metrics.jaccard_similarity_score(true_label, predicted) print "log_loss", metrics.log_loss(true_label, predicted) print "zero_one_loss", metrics.zero_one_loss(true_label, predicted) print "AUC&ROC",metrics.roc_auc_score(true_label, predicted) print "matthews_corrcoef", metrics.matthews_corrcoef(true_label, predicted)
Example #4
Source File: tool.py From lightNLP with Apache License 2.0 | 6 votes |
def get_score(self, model, texts, labels, score_type='f1'): metrics_map = { 'f1': f1_score, 'p': precision_score, 'r': recall_score, 'acc': accuracy_score } metric_func = metrics_map[score_type] if score_type in metrics_map else metrics_map['f1'] assert len(texts) == len(labels) vec_predict = model(texts) soft_predict = torch.softmax(vec_predict, dim=1) predict_prob, predict_index = torch.max(soft_predict.cpu().data, dim=1) # print('prob', predict_prob) # print('index', predict_index) # print('labels', labels) labels = labels.view(-1).cpu().data.numpy() return metric_func(predict_index, labels, average='micro')
Example #5
Source File: textpro.py From comparable-text-miner with Apache License 2.0 | 6 votes |
def evaluate(trueValues, predicted, decimals, note): print note label = 1 avg = 'weighted' a = accuracy_score(trueValues, predicted) p = precision_score(trueValues, predicted, pos_label=label, average=avg) r = recall_score(trueValues, predicted, pos_label=label, average=avg) avg_f1 = f1_score(trueValues, predicted, pos_label=label, average=avg) fclasses = f1_score(trueValues, predicted, average=None) f1c1 = fclasses[0]; f1c2 = fclasses[1] fw = (f1c1 + f1c2)/2.0 print 'accuracy:\t', str(round(a,decimals)) print 'precision:\t', str(round(p,decimals)) print 'recall:\t', str(round(r,decimals)) print 'avg f1:\t', str(round(avg_f1,decimals)) print 'c1 f1:\t', str(round(f1c1,decimals)) print 'c2 f1:\t', str(round(f1c2,decimals)) print 'avg(c1,c2):\t', str(round(fw,decimals)) print '------------' ################################################################################### # split a parallel or comparable corpus into two parts
Example #6
Source File: conv_featuremaps_visualization.py From MCF-3D-CNN with MIT License | 6 votes |
def accuracy(y_true, y_pred): # 计算混淆矩阵 y = np.zeros(len(y_true)) y_ = np.zeros(len(y_true)) for i in range(len(y_true)): y[i] = np.argmax(y_true[i,:]) y_[i] = np.argmax(y_pred[i,:]) cnf_mat = confusion_matrix(y, y_) # Acc = 1.0*(cnf_mat[1][1]+cnf_mat[0][0])/len(y_true) # Sens = 1.0*cnf_mat[1][1]/(cnf_mat[1][1]+cnf_mat[1][0]) # Spec = 1.0*cnf_mat[0][0]/(cnf_mat[0][0]+cnf_mat[0][1]) # # 绘制ROC曲线 # fpr, tpr, thresholds = roc_curve(y_true[:,0], y_pred[:,0]) # Auc = auc(fpr, tpr) # 计算多分类评价值 Sens = recall_score(y, y_, average='macro') Prec = precision_score(y, y_, average='macro') F1 = f1_score(y, y_, average='weighted') Support = precision_recall_fscore_support(y, y_, beta=0.5, average=None) return Sens, Prec, F1, cnf_mat
Example #7
Source File: pcnn_model.py From PCNN with Apache License 2.0 | 6 votes |
def run_evaluate(self, test): """Evaluates performance on test set Args: test: dataset that yields tuple of (sentences, relation tags) Returns: metrics: (dict) metrics["acc"] = 98.4, ... """ y_true, y_pred = [], [] for data in minibatches(test, self.config.batch_size): word_batch, pos1_batch, pos2_batch, pos_batch, y_batch = data relations_pred = self.predict_batch(word_batch, pos1_batch, pos2_batch, pos_batch) assert len(relations_pred) == len(y_batch) y_true += y_batch y_pred += relations_pred.tolist() acc = accuracy_score(y_true, y_pred) p = precision_score(y_true, y_pred, average='macro') r = recall_score(y_true, y_pred, average='macro') f1 = f1_score(y_true, y_pred, average='macro') return {"acc":acc, "p":p, "r":r, "f1":f1}
Example #8
Source File: metrics.py From toxic_comments with MIT License | 6 votes |
def calc_metrics(y_true, y_hat, max_steps=1000): y_true = np.array(y_true) y_hat = np.array(y_hat) metrics = {} metrics['Logloss'] = float(log_loss(y_true, y_hat)) metrics['AUC'] = roc_auc_score(y_true, y_hat) metrics['F1'] = [] metrics['Precision'] = [] metrics['Recall'] = [] for i in range(1, max_steps): threshold = float(i) / max_steps y_tmp = y_hat > threshold metrics['F1'].append(f1_score(y_true, y_tmp)) metrics['Precision'].append(precision_score(y_true, y_tmp)) metrics['Recall'].append(recall_score(y_true, y_tmp)) max_idx = np.argmax(metrics['F1']) metrics['F1'] = metrics['F1'][max_idx] metrics['Precision'] = metrics['Precision'][max_idx] metrics['Recall'] = metrics['Recall'][max_idx] metrics['Threshold'] = float(max_idx + 1) / max_steps return metrics
Example #9
Source File: utils.py From Attention-Gated-Networks with MIT License | 6 votes |
def classification_scores(gts, preds, labels): accuracy = metrics.accuracy_score(gts, preds) class_accuracies = [] for lab in labels: # TODO Fix class_accuracies.append(metrics.accuracy_score(gts[gts == lab], preds[gts == lab])) class_accuracies = np.array(class_accuracies) f1_micro = metrics.f1_score(gts, preds, average='micro') precision_micro = metrics.precision_score(gts, preds, average='micro') recall_micro = metrics.recall_score(gts, preds, average='micro') f1_macro = metrics.f1_score(gts, preds, average='macro') precision_macro = metrics.precision_score(gts, preds, average='macro') recall_macro = metrics.recall_score(gts, preds, average='macro') # class wise score f1s = metrics.f1_score(gts, preds, average=None) precisions = metrics.precision_score(gts, preds, average=None) recalls = metrics.recall_score(gts, preds, average=None) confusion = metrics.confusion_matrix(gts,preds, labels=labels) #TODO confusion matrix, recall, precision return accuracy, f1_micro, precision_micro, recall_micro, f1_macro, precision_macro, recall_macro, confusion, class_accuracies, f1s, precisions, recalls
Example #10
Source File: utils.py From TensorFlow_DCIGN with MIT License | 6 votes |
def evaluate_precision_recall(y, target, labels): import sklearn.metrics as metrics target = target[:len(y)] num_classes = max(target) + 1 results = [] for i in range(num_classes): class_target = _extract_single_class(i, target) class_y = _extract_single_class(i, y) results.append({ 'precision': metrics.precision_score(class_target, class_y), 'recall': metrics.recall_score(class_target, class_y), 'f1': metrics.f1_score(class_target, class_y), 'fraction': sum(class_target)/len(target), '#of_class': int(sum(class_target)), 'label': labels[i], 'label_id': i # 'tp': tp }) print('%d/%d' % (i, num_classes), results[-1]) accuracy = metrics.accuracy_score(target, y) return accuracy, results
Example #11
Source File: metrics_util.py From DeepLearningSmells with Apache License 2.0 | 6 votes |
def get_all_metrics(model, eval_data, eval_labels, pred_labels): fpr, tpr, thresholds_keras = roc_curve(eval_labels, pred_labels) auc_ = auc(fpr, tpr) print("auc_keras:" + str(auc_)) score = model.evaluate(eval_data, eval_labels, verbose=0) print("Test accuracy: " + str(score[1])) precision = precision_score(eval_labels, pred_labels) print('Precision score: {0:0.2f}'.format(precision)) recall = recall_score(eval_labels, pred_labels) print('Recall score: {0:0.2f}'.format(recall)) f1 = f1_score(eval_labels, pred_labels) print('F1 score: {0:0.2f}'.format(f1)) average_precision = average_precision_score(eval_labels, pred_labels) print('Average precision-recall score: {0:0.2f}'.format(average_precision)) return auc_, score[1], precision, recall, f1, average_precision, fpr, tpr
Example #12
Source File: predict.py From xgboost-operator with Apache License 2.0 | 6 votes |
def predict(args): """ This is the demonstration for the batch prediction :param args: parameter for model related config """ addr, port, rank, world_size = extract_xgbooost_cluster_env() dmatrix, y_test = read_predict_data(rank, world_size, None) model_path = args.model_path storage_type = args.model_storage_type booster = read_model(storage_type, model_path, args) preds = booster.predict(dmatrix) best_preds = np.asarray([np.argmax(line) for line in preds]) score = precision_score(y_test, best_preds, average='macro') logging.info("Predict accuracy: %f", score)
Example #13
Source File: local_test.py From xgboost-operator with Apache License 2.0 | 6 votes |
def test_model_predict(booster): """ test xgboost train in the single node :return: true if pass the test """ rank = 1 world_size = 10 place = "/tmp/data" dmatrix, y_test = read_predict_data(rank, world_size, place) preds = booster.predict(dmatrix) best_preds = np.asarray([np.argmax(line) for line in preds]) score = precision_score(y_test, best_preds, average='macro') assert score > 0.99 logging.info("Predict accuracy: %f", score) return True
Example #14
Source File: test_precision.py From tf_metrics with Apache License 2.0 | 6 votes |
def test_precision_op(generator_fn, y_true_all, y_pred_all, pos_indices, average): # Precision on the whole dataset pr_sk = precision_score( y_true_all, y_pred_all, pos_indices, average=average) # Create Tensorflow graph ds = tf.data.Dataset.from_generator( generator_fn, (tf.int32, tf.int32), ([None], [None])) y_true, y_pred = ds.make_one_shot_iterator().get_next() pr_tf = tf_metrics.precision(y_true, y_pred, 4, pos_indices, average=average) with tf.Session() as sess: # Initialize and run the update op on each batch sess.run(tf.local_variables_initializer()) while True: try: sess.run(pr_tf[1]) except OutOfRangeError as e: break # Check final value assert np.allclose(sess.run(pr_tf[0]), pr_sk)
Example #15
Source File: main.py From AutoOut with MIT License | 6 votes |
def calculate_scores(y_predicted, y_true): """ Function to calculate different performance scores """ accuracy = accuracy_score(y_pred=y_predicted, y_true=y_true) precision = precision_score(y_pred=y_predicted, y_true=y_true) average_precision_score1 = average_precision_score(y_score=y_predicted, y_true=y_true) f1_score1 = f1_score(y_pred=y_predicted, y_true=y_true) print("Accuracy score:", accuracy) print("Precision score:", precision) print("Average Precision score:", average_precision_score1) print("F1 score:", f1_score1) print("Outlier detection and/or treatment completed.") return {"accuracy": accuracy, "precision": precision, "average_precision_score": average_precision_score1, "f1_score": f1_score1, }
Example #16
Source File: test_classification.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def test_zero_precision_recall(): # Check that pathological cases do not bring NaNs old_error_settings = np.seterr(all='raise') try: y_true = np.array([0, 1, 2, 0, 1, 2]) y_pred = np.array([2, 0, 1, 1, 2, 0]) assert_almost_equal(precision_score(y_true, y_pred, average='macro'), 0.0, 2) assert_almost_equal(recall_score(y_true, y_pred, average='macro'), 0.0, 2) assert_almost_equal(f1_score(y_true, y_pred, average='macro'), 0.0, 2) finally: np.seterr(**old_error_settings)
Example #17
Source File: test_classification.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def test_precision_warnings(): clean_warning_registry() with warnings.catch_warnings(record=True) as record: warnings.simplefilter('always') precision_score(np.array([[1, 1], [1, 1]]), np.array([[0, 0], [0, 0]]), average='micro') assert_equal(str(record.pop().message), 'Precision is ill-defined and ' 'being set to 0.0 due to no predicted samples.') precision_score([0, 0], [0, 0]) assert_equal(str(record.pop().message), 'Precision is ill-defined and ' 'being set to 0.0 due to no predicted samples.') assert_no_warnings(precision_score, np.array([[0, 0], [0, 0]]), np.array([[1, 1], [1, 1]]), average='micro')
Example #18
Source File: test_multiclass.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def test_ovr_multilabel_dataset(): base_clf = MultinomialNB(alpha=1) for au, prec, recall in zip((True, False), (0.51, 0.66), (0.51, 0.80)): X, Y = datasets.make_multilabel_classification(n_samples=100, n_features=20, n_classes=5, n_labels=2, length=50, allow_unlabeled=au, random_state=0) X_train, Y_train = X[:80], Y[:80] X_test, Y_test = X[80:], Y[80:] clf = OneVsRestClassifier(base_clf).fit(X_train, Y_train) Y_pred = clf.predict(X_test) assert clf.multilabel_ assert_almost_equal(precision_score(Y_test, Y_pred, average="micro"), prec, decimal=2) assert_almost_equal(recall_score(Y_test, Y_pred, average="micro"), recall, decimal=2)
Example #19
Source File: stats_metrics.py From fanci with GNU General Public License v3.0 | 6 votes |
def add_run(self, y_true, y_pred, domains_test): """ Add a completed run :param domains_test: :param y_true: true labels :param y_pred: predicted labels :return: """ log.verbose('Adding run.\ny_true: {!s}\ny_pred: {!s}'.format(y_true, y_pred)) self.ys.append((y_true, y_pred)) self.y_true = numpy.concatenate((self.y_true, y_true)) self.y_pred = numpy.concatenate((self.y_pred, y_pred)) self.cms.append(confusion_matrix(y_true, y_pred)) self.scores = {'accuracy': [accuracy_score(y_true, y_pred)], 'precision': [precision_score(y_true, y_pred)], 'recall': [recall_score(y_true, y_pred)], 'roc': [roc_auc_score(y_true, y_pred)], 'f1': [f1_score(y_true, y_pred)]} for i in range(len(y_true)): if y_true[i] != y_pred[i]: self.missclassified.append((domains_test[i], y_true[i]))
Example #20
Source File: tool.py From lightNLP with Apache License 2.0 | 6 votes |
def get_score(self, model, texta, textb, labels, score_type='f1'): metrics_map = { 'f1': f1_score, 'p': precision_score, 'r': recall_score, 'acc': accuracy_score } metric_func = metrics_map[score_type] if score_type in metrics_map else metrics_map['f1'] assert texta.size(1) == textb.size(1) == len(labels) vec_predict = model(texta, textb) soft_predict = torch.softmax(vec_predict, dim=1) predict_prob, predict_index = torch.max(soft_predict.cpu().data, dim=1) # print('prob', predict_prob) # print('index', predict_index) # print('labels', labels) labels = labels.view(-1).cpu().data.numpy() return metric_func(predict_index, labels, average='micro')
Example #21
Source File: tool.py From lightNLP with Apache License 2.0 | 6 votes |
def get_score(self, model, texta, textb, labels, score_type='f1'): metrics_map = { 'f1': f1_score, 'p': precision_score, 'r': recall_score, 'acc': accuracy_score } metric_func = metrics_map[score_type] if score_type in metrics_map else metrics_map['f1'] assert texta.size(1) == textb.size(1) == len(labels) predict_prob = model(texta, textb) # print('predict', predict_prob) # print('labels', labels) predict_labels = torch.gt(predict_prob, 0.5) predict_labels = predict_labels.view(-1).cpu().data.numpy() labels = labels.view(-1).cpu().data.numpy() return metric_func(predict_labels, labels, average='micro')
Example #22
Source File: tool.py From lightNLP with Apache License 2.0 | 6 votes |
def get_score(self, model, x, y, pos, rel, field_x, field_y, field_pos, score_type='f1'): metrics_map = { 'f1': f1_score, 'p': precision_score, 'r': recall_score, 'acc': accuracy_score } metric_func = metrics_map[score_type] if score_type in metrics_map else metrics_map['f1'] vec_x = torch.tensor([field_x.stoi[i] for i in x]) len_vec_x = torch.tensor([len(vec_x)]).to(DEVICE) vec_pos = torch.tensor([field_pos.stoi[i] for i in pos]) vec_rel = torch.tensor([int(x) for x in rel]) predict_y = model(vec_x.view(-1, 1).to(DEVICE), vec_pos.view(-1, 1).to(DEVICE), vec_rel.view(-1, 1).to(DEVICE), len_vec_x)[0] true_y = [field_y.stoi[i] for i in y] assert len(true_y) == len(predict_y) return metric_func(predict_y, true_y, average='micro')
Example #23
Source File: tool.py From lightNLP with Apache License 2.0 | 6 votes |
def get_score(self, model, x, y, score_type='f1'): metrics_map = { 'f1': f1_score, 'p': precision_score, 'r': recall_score, 'acc': accuracy_score } metric_func = metrics_map[score_type] if score_type in metrics_map else metrics_map['f1'] outputs, dep_graph, actions_done = model(x) assert len(actions_done) == len(y) predict_y = actions_done true_y = y.cpu().view(-1).tolist() # print(actions_done, y) # print(actions_done) # print(true_y) return metric_func(predict_y, true_y, average='micro')
Example #24
Source File: tool.py From lightNLP with Apache License 2.0 | 6 votes |
def get_score(self, model, src, src_lens, trg, score_type='f1'): metrics_map = { 'f1': f1_score, 'p': precision_score, 'r': recall_score, 'acc': accuracy_score } metric_func = metrics_map[score_type] if score_type in metrics_map else metrics_map['f1'] output = model(src, src_lens, trg) output = output[1:].contiguous() output = output.view(-1, output.shape[-1]) trg = trg.transpose(1, 0) trg = trg[1:].contiguous() trg = trg.view(-1) soft_predict = torch.softmax(output, dim=1) predict_prob, predict_index = torch.max(soft_predict.cpu().data, dim=1) labels = trg.cpu().data.numpy() return metric_func(predict_index, labels, average='micro')
Example #25
Source File: tool.py From lightNLP with Apache License 2.0 | 6 votes |
def get_score(self, model, src, src_lens, trg, score_type='f1'): metrics_map = { 'f1': f1_score, 'p': precision_score, 'r': recall_score, 'acc': accuracy_score } metric_func = metrics_map[score_type] if score_type in metrics_map else metrics_map['f1'] output = model(src, src_lens, trg) output = output[1:].contiguous() output = output.view(-1, output.shape[-1]) trg = trg.transpose(1, 0) trg = trg[1:].contiguous() trg = trg.view(-1) soft_predict = torch.softmax(output, dim=1) predict_prob, predict_index = torch.max(soft_predict.cpu().data, dim=1) labels = trg.cpu().data.numpy() return metric_func(predict_index, labels, average='micro')
Example #26
Source File: tool.py From lightNLP with Apache License 2.0 | 6 votes |
def get_score(self, model, texts, labels, score_type='f1'): metrics_map = { 'f1': f1_score, 'p': precision_score, 'r': recall_score, 'acc': accuracy_score } metric_func = metrics_map[score_type] if score_type in metrics_map else metrics_map['f1'] assert texts.size(0) == len(labels) vec_predict = model(texts) soft_predict = torch.softmax(vec_predict, dim=1) predict_prob, predict_index = torch.max(soft_predict.cpu().data, dim=1) # print('prob', predict_prob) # print('index', predict_index) # print('labels', labels) labels = labels.view(-1).cpu().data.numpy() return metric_func(predict_index, labels, average='micro')
Example #27
Source File: evaluate.py From text-classifier with Apache License 2.0 | 6 votes |
def simple_evaluate(y_true, y_pred): """ evaluate precision, recall, f1 :param y_true: :param y_pred: :return:score """ assert len(y_true) == len(y_pred), \ "the count of pred label should be same with true label" classify_report = metrics.classification_report(y_true, y_pred) confusion_matrix = metrics.confusion_matrix(y_true, y_pred) overall_accuracy = metrics.accuracy_score(y_true, y_pred) acc_for_each_class = metrics.precision_score(y_true, y_pred, average=None) average_accuracy = np.mean(acc_for_each_class) score = metrics.accuracy_score(y_true, y_pred) print('classify_report : \n', classify_report) print('confusion_matrix : \n', confusion_matrix) print('acc_for_each_class : \n', acc_for_each_class) print('average_accuracy: {0:f}'.format(average_accuracy)) print('overall_accuracy: {0:f}'.format(overall_accuracy)) print('score: {0:f}'.format(score)) return score
Example #28
Source File: metrics.py From gnn-benchmark with MIT License | 5 votes |
def precision(ground_truth, predictions): return precision_score(ground_truth, predictions, average='macro')
Example #29
Source File: metrics.py From nlp_research with MIT License | 5 votes |
def metrics(labels, logits): auc = roc_auc_score(labels, logits) loss = log_loss(labels, logits) acc = accuracy_score(labels, logits.round()) precision = precision_score(labels, logits.round()) recall = recall_score(labels, logits.round()) f1 = f1_score(labels, logits.round()) return auc, loss, acc, precision, recall, f1
Example #30
Source File: tool.py From lightNLP with Apache License 2.0 | 5 votes |
def get_score(self, model, x, y, score_type='f1'): metrics_map = { 'f1': f1_score, 'p': precision_score, 'r': recall_score, 'acc': accuracy_score } metric_func = metrics_map[score_type] if score_type in metrics_map else metrics_map['f1'] vec_x = x predict_y = model(vec_x.view(-1, 1).to(DEVICE)) predict_index = torch.max(torch.softmax(predict_y, dim=1).cpu().data, dim=1)[1] predict_index = predict_index.data.numpy() true_y = y.view(-1).cpu().data.numpy() assert len(true_y) == len(predict_index) return metric_func(predict_index, true_y, average='micro')