KNN Regression

profileLakku

Consider a single dimension.  Obtain N = 100 iid samples of x uniformly randomly between1 and 10.  The corresponding y values are obtained as the logarithm of x plus a Gaussiannoise (mean 0, standard deviation 0.1).  Now use K-NN regression (for each of the followingthree schemes, and with K = 1, 3, 50 for each scheme) to obtain estimates of y at x-values of1, 3, 5, 7 and 9:

•the K neighbors contribute equally
•each of the K neighbors has an influence that is inversely proportional to the distancefrom the point
•all the N points contribute,  with each contribution proportional to e−1/2d2,  where d represents distance.


Use Python as the implementation language. Please do not use an off-the-shelf implementation of K-NN regression from any package or library.  Use of packages/libraries for standard, simple tasks such as sorting or sampling froma distribution is fine.  Set the seed at the beginning of your program so that your results arereproducible.

    • 5 years ago
    • 20
    Answer(0)