Polynomial regression

 

 In this problem, we write a program to estimate the parameters for an unknown polynomial using the polyfit() function of the numpy package. 1

)Please plot the noisy data and the polynomial you found (in the same figure). You can use any value of m selected from 2, 3, 4, 5, 6.

2)Plot MSE versusorder m,for m = 1, 2, 3, 4, 5, 6, 7, 8respectively.Identify the best choice of m.

3)Change variable noise_scaleto 150, 200, 400, 600, 1000 respectively,re-run the algorithmand plot the polynomialswith the m found in 2). Discuss the impact of noise scale to the accuracy of the returned parameters.[You need to plot a figure like in 1) for each choice of noise_scale.]

4)Change variable number_of_samplesto 40, 30, 20, 10 respectively, re-ran the algorithm and plot the polynomialswith the m found in 2). Discuss the impact of the number of samples to the accuracy of the returned parameters.[You need to plot a figure like in 1) for each choice of number_of_samples.]

A simulateddataset will be providedas below.The polynomial used is y = 5 * x + 20 * x^2+ x^3.

Simulated data is given as follows in Python:

import matplotlib.pyplot as plt

plt.style.use(‘seaborn-whitegrid’)

import numpy as np

noise_scale = 100

number_of_samples = 50

x =  25*(np.random.rand(number_of_samples, 1) -0.8)

y = 5 * x + 20 * x**2 + 1 * x**3 + noise_scale*np.random.randn(number_of_samples, 1)

plt.plot(x,y,’ro’)