Fingerübungen: *args, **kwargs

Fingerübungen: *args, **kwargs#

zugehöriges Notebook: e_r2_funktionsparameter_AUTO

Abgeleitete Metriken der Confusion Matrix#

Fallbeispiel: http://www.jbusse.de/dsci-ml/x_jockey.html

Gegeben:

  • die Confusion Matrix eines KI-basierten Klassifikators als Dict

  • z.B. confusion_matrix = { "TP": 48, "FP": 4, "TN": 36, "FN": 12 }

Gesucht:

  • eine Funktion CM_Metriken(), die typische davon abgeleitete Metriken zum solch einem Dict hinzufügt, insbesondere prevalence, FNR, TNR, FPR, PPV.d

def CM_Metriken(CM):  # CM ist ein Dict mit den keys TP, FP, TN, FN
    CM['P'] = CM['TP'] + CM['FN']
    CM['N'] = CM['TN'] + CM['FP']
    prevalence = CM['P'] / (CM['P'] + CM['N'])
    # usw.
    
    # kein return an dieser Stelle,
    # weil wir als beabsichtigten Seiteneffekt den Parameter CM verändern:
    # das geht, ist aber schlechter Programmierstil
def CM_Metriken_2(TP, FP, TN, FN):
    P = TP + FN
    N = TN + FP
    prevalence = P / (P + N)
    TPR = TP / P
    FNR = FN / P
    TNR = TN / N
    FPR = FP / N
    PP = TP + FP
    PPV = TP / PP
    PN = TN + FN
    FOR = FN / PN
    
    ... # 
confusion_matrix = { "TP": 48, "FP": 4, "TN": 36, "FN": 12 }
CM_Metriken_2(**confusion_matrix)