NumPy allowed · plain Python earns 10 bonus points
θ ← θ − 0.14 · ∂L/∂θ
Implement logistic regression's full forward pass and cost function -- the actual thing being minimized during training, distinct from just the sigmoid function itself.
Implement logistic_regression_loss(X, y, weights, bias): for every row, compute z = w.x + b, squash it with sigmoid, then average the binary cross-entropy loss -(y*log(p) + (1-y)*log(1-p)) across all rows.
logistic_regression_loss(X: list[list[float]], y: list[int], weights: list[float], bias: float) -> float