Add remaining metrics
fun confusionMatrix() {
TODO("")
}
fun f1() {
// requireSameShape(test, predicted)
TODO("")
}
// precision = TP / (TP + FP)
fun <T : Number> precision(test: D2Array<T>, predicted: D2Array<T>): Double {
requireSameShape(test, predicted)
val truePositive = (0 until test.shape[0]).fold(0) {
acc, row ->
if (test[row] == predicted[row]) acc + 1 else acc
}
return truePositive / test.shape[0].toDouble()
}
// recall = TP / (TP + FN)
fun <T : Number> recall(test: D2Array<T>, predicted: D2Array<T>) {
requireSameShape(test, predicted)
TODO("")
}
Add remaining metrics