Although we have so far focused on using decision trees in classification tasks, you can also use them for regression. But you will need to use scikit-learn again, as OpenCV does not provide this flexibility. We will therefore only briefly review its functionality here:
- Let's say we wanted to use a decision tree to fit a sin wave. To make things interesting, we will also add some noise to the data points using NumPy's random number generator:
In [1]: import numpy as np
... rng = np.random.RandomState(42)
- We then create 100 randomly spaced x values between 0 and 5 and calculate the corresponding sin values:
In [2]: X = np.sort(5 * rng.rand(100, 1), axis=0)
... y = np.sin(X).ravel()
- We then add noise to every other data point in y (using y[::2]), scaled by 0.5 so we don't introduce too much jitter:
In [3]: y[::2] +=...