diff --git a/modules/deeplearning/srcnn_cld_frac.py b/modules/deeplearning/srcnn_cld_frac.py index a9895659daf5a0ed9a823a2f37e844abc801bac7..c45a69d8fbf56f30ae9a7f2fcd3e73471956fee3 100644 --- a/modules/deeplearning/srcnn_cld_frac.py +++ b/modules/deeplearning/srcnn_cld_frac.py @@ -904,28 +904,73 @@ def analyze(file='/Users/tomrink/cld_opd_frac.npy'): lbls_1_2 = np.where(lbls_1_2 == 2, 1, lbls_1_2) pred_1_2 = pred[msk_1_2] - pred_1_2 = np.where(pred_1_2 == 0, 1, pred_1_2) + pred_1_2 = np.where(pred_1_2 == 0, -9, pred_1_2) pred_1_2 = np.where(pred_1_2 == 1, 0, pred_1_2) pred_1_2 = np.where(pred_1_2 == 2, 1, pred_1_2) + pred_1_2 = np.where(pred_1_2 == -9, 1, pred_1_2) # ---- lbls_0_2 = lbls[msk_0_2] - lbls_0_2 = np.where(lbls_0_2 == 0, 0, lbls_0_2) lbls_0_2 = np.where(lbls_0_2 == 2, 1, lbls_0_2) pred_0_2 = pred[msk_0_2] - pred_0_2 = np.where(pred_0_2 == 0, 0, pred_0_2) - pred_0_2 = np.where(pred_0_2 == 1, 1, pred_0_2) pred_0_2 = np.where(pred_0_2 == 2, 1, pred_0_2) cm_0_1 = confusion_matrix_values(lbls_0_1, pred_0_1) cm_1_2 = confusion_matrix_values(lbls_1_2, pred_1_2) cm_0_2 = confusion_matrix_values(lbls_0_2, pred_0_2) - return cm_0_1, cm_1_2, cm_0_2 + true_0_1 = (lbls_0_1 == 0) & (pred_0_1 == 0) + false_0_1 = (lbls_0_1 == 1) & (pred_0_1 == 0) + true_no_0_1 = (lbls_0_1 == 1) & (pred_0_1 == 1) + false_no_0_1 = (lbls_0_1 == 0) & (pred_0_1 == 1) + true_0_2 = (lbls_0_2 == 0) & (pred_0_2 == 0) + false_0_2 = (lbls_0_2 == 1) & (pred_0_2 == 0) + true_no_0_2 = (lbls_0_2 == 1) & (pred_0_2 == 1) + false_no_0_2 = (lbls_0_2 == 0) & (pred_0_2 == 1) + + true_1_2 = (lbls_1_2 == 0) & (pred_1_2 == 0) + false_1_2 = (lbls_1_2 == 1) & (pred_1_2 == 0) + + true_no_1_2 = (lbls_1_2 == 1) & (pred_1_2 == 1) + false_no_1_2 = (lbls_1_2 == 0) & (pred_1_2 == 1) + + tp_0 = np.sum(true_0_1) + tp_1 = np.sum(true_1_2) + tp_2 = np.sum(true_0_2) + + tn_0 = np.sum(true_no_0_1) + tn_1 = np.sum(true_no_1_2) + tn_2 = np.sum(true_no_0_2) + + fp_0 = np.sum(false_0_1) + fp_1 = np.sum(false_1_2) + fp_2 = np.sum(false_0_2) + + fn_0 = np.sum(false_no_0_1) + fn_1 = np.sum(false_no_1_2) + fn_2 = np.sum(false_no_0_2) + + recall_0 = tp_0 / (tp_0 + fn_0) + recall_1 = tp_1 / (tp_1 + fn_1) + recall_2 = tp_2 / (tp_2 + fn_2) + + precision_0 = tp_0 / (tp_0 + fp_0) + precision_1 = tp_1 / (tp_1 + fp_1) + precision_2 = tp_2 / (tp_2 + fp_2) + + mcc_0 = ((tp_0 * tn_0) - (fp_0 * fn_0)) / np.sqrt((tp_0 + fp_0) * (tp_0 + fn_0) * (tn_0 + fp_0) * (tn_0 + fn_0)) + mcc_1 = ((tp_1 * tn_1) - (fp_1 * fn_1)) / np.sqrt((tp_1 + fp_1) * (tp_1 + fn_1) * (tn_1 + fp_1) * (tn_1 + fn_1)) + mcc_2 = ((tp_2 * tn_2) - (fp_2 * fn_2)) / np.sqrt((tp_2 + fp_2) * (tp_2 + fn_2) * (tn_2 + fp_2) * (tn_2 + fn_2)) + + print(recall_0, precision_0, mcc_0) + print(recall_1, precision_1, mcc_1) + print(recall_2, precision_2, mcc_2) + + return cm_0_1, cm_1_2, cm_0_2 if __name__ == "__main__":