Background Data is the fuel of machine learning. No data, no learning! There are two major ways we can obtain the data. The more natural way is to record daily events via different types of sensors. Those are called real-world data. However, the real world is complicated; we have little control over them. Whenever we want to demonstrate a phenomenon, such as overfitting, or study the properties of our model, we can use synthetic data like the one we used to study the polynomial regression. Requirement In this task, we need to create the synthetic sine data used in Chapter 1. 1. Make sure you install python correctly; Any version above 3.5 should work. https://www.python.org/downloads/release/python-370/ 2. [optional]. You are highly encouraged to use an IDE such as Jupiter(https://jupyter.org/) or spyder(https://www.spyder-ide.org/) for a better coding experience. 3. You need to install numpy(https:/umpy.org/) in your environment. So you will have access to comprehensive mathematical functions, random number generators, linear algebra routines, Fourier transforms, and many more. 4. You need to install matplotlib(https://matplotlib.org/) to visualize your data. 5. You need to install sklearn(https://scikit-learn.org/stable/index.html)to help you build regression models and conduct feature extraction easily. 6. Follow the instructions in the template script to finish the program. Note: You might want to carefully check the numpy API to make sure you get the general idea of scientific computation. For example, most of the functions in numpy are dimension adaptive(or elementwise function). Suppose you give sin() a vector input. The sin() will apply to each element of the input vector