Bird
Raised Fist0
Data Analysis Pythondata~5 mins

Polynomial features in Data Analysis Python

Choose your learning style10 modes available
Introduction

Polynomial features help us find patterns that are not just straight lines. They let us use curves to better understand data.

When you want to predict something that changes in a curve, not a straight line.
When simple straight-line models don't fit your data well.
When you want to add more detail to your model by including powers of your features.
When you want to explore relationships between features by multiplying them together.
Syntax
Data Analysis Python
from sklearn.preprocessing import PolynomialFeatures

poly = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly.fit_transform(X)

degree sets the highest power of features to include.

include_bias=False means we don't add a column of ones automatically.

Examples
This creates features with powers up to 2, including the bias (column of ones).
Data Analysis Python
poly = PolynomialFeatures(degree=2)
X_poly = poly.fit_transform(X)
This creates features with powers up to 3, without adding a bias column.
Data Analysis Python
poly = PolynomialFeatures(degree=3, include_bias=False)
X_poly = poly.fit_transform(X)
This creates only interaction features (products of different features), no powers like x².
Data Analysis Python
poly = PolynomialFeatures(degree=2, interaction_only=True)
X_poly = poly.fit_transform(X)
Sample Program

This code takes a simple list of numbers and creates new features: the original number and its square.

Data Analysis Python
import numpy as np
from sklearn.preprocessing import PolynomialFeatures

# Sample data: one feature with 3 values
X = np.array([[1], [2], [3]])

# Create polynomial features of degree 2
poly = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly.fit_transform(X)

print('Original data:')
print(X)
print('\nPolynomial features (degree=2):')
print(X_poly)
OutputSuccess
Important Notes

Polynomial features can make your model more complex, so watch out for overfitting.

Always scale your data before creating polynomial features for better results.

Higher degree means more features, which can slow down your model.

Summary

Polynomial features add powers and combinations of your original data to capture curves.

Use them when straight lines don't fit your data well.

Be careful: more features can mean more complexity and slower models.

Practice

(1/5)
1. What is the main purpose of using Polynomial features in data analysis?
easy
A. To reduce the number of features in the dataset
B. To capture non-linear relationships by adding powers and combinations of features
C. To remove outliers from the data
D. To convert categorical data into numerical data

Solution

  1. Step 1: Understand what polynomial features do

    Polynomial features create new features by raising existing features to powers and combining them, which helps model curves.
  2. Step 2: Identify the purpose in modeling

    This helps capture non-linear relationships that simple linear features cannot represent.
  3. Final Answer:

    To capture non-linear relationships by adding powers and combinations of features -> Option B
  4. Quick Check:

    Polynomial features = capture curves [OK]
Hint: Polynomial features add powers to model curves, not reduce features [OK]
Common Mistakes:
  • Thinking polynomial features reduce feature count
  • Confusing polynomial features with data cleaning
  • Assuming polynomial features handle categorical data
2. Which of the following is the correct way to create polynomial features of degree 2 using scikit-learn in Python?
easy
A. from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(1) X_poly = poly.transform(X)
B. from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(degree=2) X_poly = poly.fit(X)
C. from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(degree=3) X_poly = poly.fit_transform(X)
D. from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(degree=2) X_poly = poly.fit_transform(X)

Solution

  1. Step 1: Import and initialize PolynomialFeatures correctly

    Use degree=2 to specify the polynomial degree.
  2. Step 2: Use fit_transform to fit and transform the data in one step

    fit_transform returns the transformed feature matrix, which is needed for modeling.
  3. Final Answer:

    from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(degree=2) X_poly = poly.fit_transform(X) -> Option D
  4. Quick Check:

    Use degree=2 and fit_transform() [OK]
Hint: Use fit_transform() with degree=2 to create polynomial features [OK]
Common Mistakes:
  • Using transform() without fitting first
  • Setting wrong degree value
  • Calling fit() without transform or fit_transform()
3. Given the code below, what is the shape of X_poly?
import numpy as np
from sklearn.preprocessing import PolynomialFeatures
X = np.array([[2, 3]])
poly = PolynomialFeatures(degree=2)
X_poly = poly.fit_transform(X)
medium
A. (1, 6)
B. (1, 3)
C. (2, 3)
D. (2, 6)

Solution

  1. Step 1: Count original features and polynomial features

    Original X has 2 features. Degree 2 polynomial features include: - bias (1) - original features (2) - squared features and interaction (3): x1^2, x1*x2, x2^2 Total = 1 + 2 + 3 = 6 features.
  2. Step 2: Check number of samples

    X has 1 sample (row), so output shape is (1, 6).
  3. Final Answer:

    (1, 6) -> Option A
  4. Quick Check:

    Features after degree 2 = 6 [OK]
Hint: Degree 2 with 2 features gives 6 output features [OK]
Common Mistakes:
  • Ignoring bias (constant) term
  • Counting only squared terms, missing interactions
  • Confusing samples with features in shape
4. Identify the error in the following code that tries to create polynomial features of degree 3:
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(3)
X_poly = poly.fit_transform([[1, 2], [3, 4]])
medium
A. PolynomialFeatures requires degree to be specified as a keyword argument
B. fit_transform cannot be used on lists, input must be a numpy array
C. No error, the code runs correctly
D. PolynomialFeatures does not support degree 3

Solution

  1. Step 1: Check PolynomialFeatures initialization

    Degree can be passed as positional argument, so PolynomialFeatures(3) is valid.
  2. Step 2: Check input type for fit_transform

    fit_transform accepts array-like inputs, including lists, so [[1, 2], [3, 4]] is valid.
  3. Final Answer:

    No error, the code runs correctly -> Option C
  4. Quick Check:

    Degree 3 and list input are valid [OK]
Hint: PolynomialFeatures accepts degree as positional and list input [OK]
Common Mistakes:
  • Thinking degree must be keyword argument
  • Assuming lists are invalid input
  • Believing degree 3 is unsupported
5. You have a dataset with 3 features and want to add polynomial features up to degree 2 but exclude the bias (constant) term. Which code snippet correctly achieves this?
hard
A. poly = PolynomialFeatures(degree=2, include_bias=False) X_poly = poly.fit_transform(X)
B. poly = PolynomialFeatures(degree=2, include_bias=True) X_poly = poly.fit_transform(X) X_poly = X_poly[:, :1]
C. poly = PolynomialFeatures(degree=2) X_poly = poly.fit_transform(X) X_poly = X_poly[:, :1]
D. poly = PolynomialFeatures(degree=2, bias=False) X_poly = poly.fit_transform(X)

Solution

  1. Step 1: Understand the include_bias parameter

    Setting include_bias=False excludes the constant (bias) term from the output features.
  2. Step 2: Use correct parameter and method

    poly = PolynomialFeatures(degree=2, include_bias=False) and then fit_transform(X) correctly creates polynomial features without bias.
  3. Final Answer:

    poly = PolynomialFeatures(degree=2, include_bias=False) X_poly = poly.fit_transform(X) -> Option A
  4. Quick Check:

    include_bias=False excludes constant term [OK]
Hint: Use include_bias=False to skip constant term [OK]
Common Mistakes:
  • Trying to remove bias by slicing output array
  • Using wrong parameter name like bias=False
  • Assuming include_bias defaults to False
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard