%matplotlib inline
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn import neighbors

    # Generate sample data
    amplitude = 10
    num_points = 100
    X = amplitude * np.random.rand(num_points, 1) - 0.5 * amplitude

    # Compute target and add noise
    y = np.sinc(X).ravel()
    y += 0.2 * (0.5 - np.random.rand(y.size))

    # Plot input data
    plt.figure()
    plt.scatter(X, y, s=40, c='k', facecolors='none')
    plt.title('Input data')

    # Create the 1D grid with 10 times the density of the input data
    x_values = np.linspace(-0.5*amplitude, 0.5*amplitude, 10*num_points)[:, np.newaxis]

    # Number of neighbors to consider
    n_neighbors = 8

    # Define and train the regressor
    knn_regressor = neighbors.KNeighborsRegressor(n_neighbors, weights='distance')
    y_values = knn_regressor.fit(X, y).predict(x_values)

    plt.figure()
    plt.scatter(X, y, s=40, c='k', facecolors='none', label='input data')
    plt.plot(x_values, y_values, c='k', linestyle='--', label='predicted values')
    plt.xlim(X.min() - 1, X.max() + 1)
    plt.ylim(y.min() - 0.2, y.max() + 0.2)
    plt.axis('tight')
    plt.legend()
    plt.title('K Nearest Neighbors Regressor')

    plt.show()