Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Polynomial fitting
📖 Scenario: You have collected some data points from a small experiment measuring temperature over time. You want to find a smooth curve that fits these points well. This will help you understand the trend and make predictions.
🎯 Goal: Build a polynomial model that fits the given data points using numpy. You will create the data, set the polynomial degree, fit the polynomial, and then print the polynomial coefficients.
📋 What You'll Learn
Create a dictionary called data_points with exact keys time and temperature and their respective lists of values
Create a variable called degree and set it to the exact integer 2
Use numpy to fit a polynomial of degree degree to the data points
Store the polynomial coefficients in a variable called coefficients
Print the coefficients variable
💡 Why This Matters
🌍 Real World
Polynomial fitting is used in science and engineering to find smooth curves that describe data trends, such as temperature changes, stock prices, or sensor readings.
💼 Career
Data scientists and analysts use polynomial fitting to model relationships in data, make predictions, and communicate insights clearly.
Progress0 / 4 steps
1
DATA SETUP: Create the data points dictionary
Create a dictionary called data_points with two keys: 'time' and 'temperature'. Set data_points['time'] to the list [0, 1, 2, 3, 4] and data_points['temperature'] to the list [1, 3, 7, 13, 21].
SciPy
Hint
Use a dictionary with keys 'time' and 'temperature'. Each key should have a list of numbers as its value.
2
CONFIGURATION: Set the polynomial degree
Create a variable called degree and set it to the integer 2.
SciPy
Hint
Just assign the number 2 to a variable named degree.
3
CORE LOGIC: Fit the polynomial to the data
Import numpy as np and polyfit from numpy.polynomial.polynomial. Use polyfit with data_points['time'], data_points['temperature'], and degree to fit the polynomial. Store the result in a variable called coefficients.
SciPy
Hint
Use polyfit from numpy.polynomial.polynomial to fit the polynomial. The order of arguments is x values, y values, then degree.
4
OUTPUT: Print the polynomial coefficients
Print the variable coefficients to display the polynomial coefficients.
SciPy
Hint
Use print(coefficients) to show the polynomial coefficients.
Practice
(1/5)
1. What does the scipy.polyfit function do in polynomial fitting?
easy
A. It calculates the coefficients of the polynomial that best fits the data.
B. It plots the data points on a graph.
C. It predicts future data points without fitting.
D. It normalizes the data before fitting.
Solution
Step 1: Understand the purpose of polyfit
polyfit takes data points and finds polynomial coefficients that best fit those points.
Step 2: Differentiate from other functions
Plotting or normalization are not done by polyfit; it only calculates coefficients.
Final Answer:
It calculates the coefficients of the polynomial that best fits the data. -> Option A
Quick Check:
polyfit = coefficients [OK]
Hint: Remember: polyfit finds coefficients, not plots or predictions [OK]
Common Mistakes:
Confusing polyfit with plotting functions
Thinking polyfit predicts future points directly
Assuming polyfit normalizes data automatically
2. Which of the following is the correct syntax to fit a 3rd degree polynomial to data arrays x and y using SciPy?
easy
A. coeffs = scipy.polyfit(y, x, 3)
B. coeffs = scipy.polyfit(x, y, 3)
C. coeffs = scipy.polyfit(x, y)
D. coeffs = scipy.polyfit(x, y, degree=3)
Solution
Step 1: Check the order of arguments in polyfit
The correct order is polyfit(x, y, degree).
Step 2: Confirm the degree argument is positional, not keyword
polyfit expects degree as the third positional argument, not as a keyword.
Final Answer:
coeffs = scipy.polyfit(x, y, 3) -> Option B
Quick Check:
Correct syntax = coeffs = scipy.polyfit(x, y, 3) [OK]
Hint: Remember: polyfit(x, y, degree) with degree as positional [OK]
Common Mistakes:
Swapping x and y arguments
Omitting the degree argument
Using degree as a keyword argument
3. Given the code:
import numpy as np
from scipy import polyfit, polyval
x = np.array([0, 1, 2, 3])
y = np.array([1, 3, 7, 13])
coeffs = polyfit(x, y, 2)
fitted = polyval(coeffs, x)
print(fitted)
What is the output printed?
medium
A. [ 1. 4. 9. 16.]
B. [ 1. 2. 4. 8.]
C. [ 0. 1. 4. 9.]
D. [ 1. 3. 7. 13.]
Solution
Step 1: Fit a 2nd degree polynomial to points
The points (x, y) fit exactly to y = 1 + 2x + x^2, so polyfit finds coefficients close to [1, 2, 1].
Step 2: Use polyval to compute fitted values at x
Evaluating the polynomial at x gives the original y values: [1, 3, 7, 13].
Final Answer:
[ 1. 3. 7. 13.] -> Option D
Quick Check:
polyval(coeffs, x) = original y [OK]
Hint: polyval with polyfit coeffs returns fitted y values [OK]
Common Mistakes:
Confusing input arrays order
Expecting different output than original y
Misunderstanding polynomial degree effect
4. What is wrong with this code snippet for polynomial fitting?
import numpy as np
from scipy import polyfit, polyval
x = np.array([1, 2, 3])
y = np.array([2, 4, 6])
coeffs = polyfit(x, y, 2)
fitted = polyval(coeffs, x)
print(fitted)
medium
A. The code is correct and will run without errors.
B. The arrays x and y must be lists, not numpy arrays.
C. The degree 2 polynomial is too high for 3 points; use degree 1 instead.
D. polyval cannot be used with coefficients from polyfit.
Solution
Step 1: Check polynomial degree vs data points
Fitting a degree 2 polynomial to 3 points is mathematically valid and will produce a polynomial that fits all points exactly.
Step 2: Validate data types and function usage
Using numpy arrays is correct; polyval works with polyfit coefficients; no syntax errors present.
Final Answer:
The code is correct and will run without errors. -> Option A
Quick Check:
Degree 2 polynomial with 3 points = code runs fine [OK]
Hint: Degree equal to number of points minus one fits exactly [OK]
Common Mistakes:
Using too high polynomial degree for few points
Thinking numpy arrays are invalid input
Believing polyval can't use polyfit output
5. You have noisy data points and want to fit a polynomial that smooths the noise but avoids overfitting. Which approach is best?
hard
A. Use polyfit with degree zero to get a constant fit.
B. Fit a high-degree polynomial to capture all fluctuations.
C. Fit a low-degree polynomial and check the fit visually.
D. Fit multiple polynomials of different degrees and average coefficients.
Solution
Step 1: Understand overfitting and noise smoothing
High-degree polynomials fit noise too closely, causing overfitting; low-degree polynomials smooth data better.
Step 2: Use visual check to confirm fit quality
Plotting fitted curve helps decide if degree is appropriate and avoids overfitting.
Final Answer:
Fit a low-degree polynomial and check the fit visually. -> Option C