"""Lesson 18 starter: confusion-matrix metrics."""
import numpy as np

y = np.array([1, 0, 1, 1, 0, 0, 1, 0])
p = np.array([.8, .7, .6, .4, .3, .2, .9, .1])
threshold = 0.5

pred = (p >= threshold).astype(int)

TP = np.sum((pred == 1) & (y == 1))
FP = np.sum((pred == 1) & (y == 0))
FN = np.sum((pred == 0) & (y == 1))
TN = np.sum((pred == 0) & (y == 0))

accuracy = (TP + TN) / len(y)
precision = TP / (TP + FP)
recall = TP / (TP + FN)
specificity = TN / (TN + FP)
f1 = 2 * precision * recall / (precision + recall)

print("TP FP FN TN =", TP, FP, FN, TN)
print("accuracy =", accuracy)
print("precision =", precision)
print("recall =", recall)
print("specificity =", specificity)
print("F1 =", f1)
