Bird
Raised Fist0
ML Pythonml~5 mins

Feature scaling (StandardScaler, MinMaxScaler) in ML Python

Choose your learning style10 modes available
Introduction

Feature scaling helps make data values similar in size. This helps many machine learning models learn better and faster.

When features have very different ranges, like age (0-100) and income (thousands).
Before training models like K-Nearest Neighbors or Support Vector Machines.
When using gradient-based models like neural networks to speed up learning.
When you want to compare features fairly by putting them on the same scale.
Syntax
ML Python
from sklearn.preprocessing import StandardScaler, MinMaxScaler

# Create scaler
scaler = StandardScaler()  # or MinMaxScaler()

# Fit scaler on training data
scaler.fit(X_train)

# Transform data
X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)

StandardScaler makes data have mean 0 and standard deviation 1.

MinMaxScaler scales data to a fixed range, usually 0 to 1.

Examples
StandardScaler fits and transforms data in one step.
ML Python
from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
MinMaxScaler scales data between 0 and 1.
ML Python
from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler(feature_range=(0, 1))
X_scaled = scaler.fit_transform(X)
You can change the scaling range, for example from -1 to 1.
ML Python
from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler(feature_range=(-1, 1))
X_scaled = scaler.fit_transform(X)
Sample Model

This code shows how StandardScaler and MinMaxScaler change the same data.

ML Python
from sklearn.preprocessing import StandardScaler, MinMaxScaler
import numpy as np

# Sample data: 3 samples, 2 features
X = np.array([[10, 200], [20, 300], [30, 400]])

# StandardScaler example
scaler_std = StandardScaler()
X_std = scaler_std.fit_transform(X)

print('StandardScaler result:')
print(X_std)

# MinMaxScaler example
scaler_mm = MinMaxScaler()
X_mm = scaler_mm.fit_transform(X)

print('\nMinMaxScaler result:')
print(X_mm)
OutputSuccess
Important Notes

Always fit the scaler only on training data, then transform test data to avoid data leakage.

Feature scaling does not change the shape of data, only the values.

Some models like tree-based models do not need feature scaling.

Summary

Feature scaling makes features comparable by adjusting their ranges.

StandardScaler centers data to mean 0 and scales to unit variance.

MinMaxScaler rescales data to a fixed range, usually 0 to 1.

Practice

(1/5)
1. What is the main purpose of using StandardScaler in feature scaling?
easy
A. To center data to mean 0 and scale to unit variance
B. To rescale data to a fixed range like 0 to 1
C. To remove missing values from the dataset
D. To convert categorical data into numbers

Solution

  1. Step 1: Understand what StandardScaler does

    StandardScaler subtracts the mean and divides by the standard deviation for each feature.
  2. Step 2: Compare with other options

    MinMaxScaler rescales to a fixed range, not StandardScaler. Removing missing values or encoding categories is unrelated.
  3. Final Answer:

    To center data to mean 0 and scale to unit variance -> Option A
  4. Quick Check:

    StandardScaler = mean 0, variance 1 [OK]
Hint: StandardScaler centers and scales data, MinMaxScaler rescales range [OK]
Common Mistakes:
  • Confusing StandardScaler with MinMaxScaler
  • Thinking StandardScaler changes data range to 0-1
  • Mixing feature scaling with data cleaning
2. Which of the following is the correct way to import and create a MinMaxScaler object in Python using scikit-learn?
easy
A. from sklearn.preprocessing import StandardScaler scaler = MinMaxScaler()
B. import sklearn.MinMaxScaler scaler = MinMaxScaler()
C. from sklearn.scale import MinMaxScaler scaler = MinMaxScaler()
D. from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler()

Solution

  1. Step 1: Recall correct import path

    MinMaxScaler is in sklearn.preprocessing module, so import from there.
  2. Step 2: Check object creation syntax

    Creating scaler with MinMaxScaler() is correct. Other options have wrong module or mismatch.
  3. Final Answer:

    from sklearn.preprocessing import MinMaxScaler\nscaler = MinMaxScaler() -> Option D
  4. Quick Check:

    Correct import and instantiation [OK]
Hint: MinMaxScaler is in sklearn.preprocessing, not sklearn.scale [OK]
Common Mistakes:
  • Using wrong module name like sklearn.scale
  • Importing StandardScaler but creating MinMaxScaler
  • Trying to import MinMaxScaler directly from sklearn
3. Given the data array [[2], [4], [6], [8]], what will be the output after applying MinMaxScaler()?
medium
A. [[0.0], [0.33], [0.67], [1.0]]
B. [[0.0], [0.5], [1.0], [1.5]]
C. [[-1.34], [-0.45], [0.45], [1.34]]
D. [[2], [4], [6], [8]]

Solution

  1. Step 1: Understand MinMaxScaler formula

    MinMaxScaler scales each value x as (x - min) / (max - min). Here min=2, max=8.
  2. Step 2: Calculate scaled values

    For 2: (2-2)/(8-2)=0.0; 4: (4-2)/6=0.33; 6: (6-2)/6=0.67; 8: (8-2)/6=1.0.
  3. Final Answer:

    [[0.0], [0.33], [0.67], [1.0]] -> Option A
  4. Quick Check:

    MinMaxScaler scales between 0 and 1 [OK]
Hint: MinMaxScaler maps min to 0 and max to 1 linearly [OK]
Common Mistakes:
  • Confusing MinMaxScaler with StandardScaler output
  • Not calculating min and max correctly
  • Expecting scaled values outside 0-1 range
4. You applied StandardScaler on a dataset but got an error: ValueError: Input contains NaN. What is the best way to fix this?
medium
A. Use StandardScaler without fitting
B. Remove or fill missing values before scaling
C. Ignore the error and continue
D. Change StandardScaler to MinMaxScaler

Solution

  1. Step 1: Understand cause of error

    StandardScaler cannot handle NaN (missing) values directly, causing ValueError.
  2. Step 2: Fix by preprocessing data

    Remove rows with NaN or fill them with mean/median before scaling to avoid error.
  3. Final Answer:

    Remove or fill missing values before scaling -> Option B
  4. Quick Check:

    Handle NaN before scaling [OK]
Hint: Clean missing data before scaling to avoid errors [OK]
Common Mistakes:
  • Switching scaler without fixing NaN
  • Ignoring error and expecting correct results
  • Trying to scale without fitting the scaler
5. You have two features: height (in cm) ranging from 150 to 190, and income (in thousands) ranging from 20 to 200. You want to use a model sensitive to feature scale. Which scaler should you use and why?
hard
A. Use StandardScaler to center and scale both features to mean 0 and variance 1
B. Use no scaling because features have different units
C. Use MinMaxScaler to rescale both features to 0-1 range
D. Use MinMaxScaler only on income, leave height as is

Solution

  1. Step 1: Understand feature ranges and model sensitivity

    Height and income have different units and ranges; model sensitive to scale needs comparable ranges.
  2. Step 2: Choose scaler based on range preservation

    MinMaxScaler rescales both features to 0-1, preserving relative differences and making scales comparable.
  3. Step 3: Why not StandardScaler?

    StandardScaler centers data but may produce negative values and does not bound range, which can confuse some models.
  4. Final Answer:

    Use MinMaxScaler to rescale both features to 0-1 range -> Option C
  5. Quick Check:

    MinMaxScaler = rescale to fixed range [OK]
Hint: MinMaxScaler makes features comparable by fixed range [OK]
Common Mistakes:
  • Using StandardScaler without considering model needs
  • Not scaling features with different units
  • Scaling only one feature and not the other
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