Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- from sklearn.metrics import accuracy_score
- from sklearn.metrics import confusion_matrix
- y_true = ['A']*100 + ['B']*100 + ['C']*100
- y_pred = ['A']*30 + ['B']*50 + ['C']*20 + ['A']*20 + ['B']*60 + ['C']*20 + ['A']*10 + ['B']*10 + ['C']*80
- accuracy_score(y_true, y_pred)
- bw@xps13 ~ $ def one_class_accuracy(actual, pred):
- ............ class_count = len(set(actual))
- ............ cm = confusion_matrix(actual, pred)
- ............ cm_total = cm
- ............
- ............ TP_sum, FP_sum, TN_sum, FN_sum = 0, 0, 0, 0
- ............ ACC_sum, SEN_sum, SPE_sum, ERR_sum = 0, 0, 0, 0
- ............ for c in range(class_count):
- ............ TP, FP, TN, FN = 0, 0, 0, 0
- ............ for i in range(class_count):
- ............ for j in range(class_count):
- ............ if i == c and j == c:
- ............ TP += cm_total[i, j]
- ............ elif i == c and j != c:
- ............ FN += cm_total[i, j]
- ............ elif i != c and j == c:
- ............ FP += cm_total[i, j]
- ............ else:
- ............ TN += cm_total[i, j]
- ............ # print(cm_total[i, j])
- ............ TP_sum += TP
- ............ FP_sum += FP
- ............ TN_sum += TN
- ............ FN_sum += FN
- ............
- ............ ACC = (TP + TN) / (TP + TN + FP + FN) * 100
- ............ SEN = TP / (TP + FN) * 100
- ............ SPE = TN / (TN + FP) * 100
- ............ ACC_sum += ACC
- ............ SEN_sum += SEN
- ............ SPE_sum += SPE
- ............
- ............ ACC_sum /= class_count
- ............ SEN_sum /= class_count
- ............ SPE_sum /= class_count
- ............
- ............ results = {
- ............ 'TP': int(TP_sum),
- ............ 'TN': int(TN_sum),
- ............ 'FP': int(FP_sum),
- ............ 'FN': int(FN_sum),
- ............ 'ACC': float(ACC_sum),
- ............ 'SEN': float(SEN_sum),
- ............ 'SPE': float(SPE_sum),
- ............ 'CM': cm_total,
- ............ }
- ............ return results['ACC']
- one_class_accuracy(y_true, y_pred)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement