Constructing a k-nearest neighbors regressor
We learned how to use k-nearest neighbors algorithm to build a classifier. The good thing is that we can also use this algorithm as a regressor. Let's see how to use it as a regressor.
How to do it…
Create a new Python file, and import the following packages:
import numpy as np import matplotlib.pyplot as plt from sklearn import neighbors
Let's generate some sample Gaussian-distributed data:
# Generate sample data amplitude = 10 num_points = 100 X = amplitude * np.random.rand(num_points, 1) - 0.5 * amplitude
We need to add some noise into the data to introduce some randomness into it. The goal of adding noise is to see whether our algorithm can get past it and still function in a robust way:
# Compute target and add noise y = np.sinc(X).ravel() y += 0.2 * (0.5 - np.random.rand(y.size))
Let's visualize it as follows:
# Plot input data plt.figure() plt.scatter(X, y, s=40, c='k', facecolors='none') plt.title('Input data')
We just generated some data and evaluated...