How does gradient boosting work? a. It forms a strong learner by discarding mistakes from prior test iterations. b. It generates a range of input conditions for a machine learning model to test with. c. It combines weak learners together to form a strong learner by improving on mistakes from prior test iterations. d. It generates boundary conditions for a machine learning model to test with.