Bird
Raised Fist0
ML Pythonml~5 mins

Feature importance in regression in ML Python

Choose your learning style10 modes available
Introduction

Feature importance helps us understand which input factors affect the prediction the most. It shows what matters in the data for the model.

You want to know which features influence house prices the most.
You want to simplify a model by keeping only important features.
You want to explain to others why the model makes certain predictions.
You want to detect if some features are not useful or redundant.
You want to improve model performance by focusing on key features.
Syntax
ML Python
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor()
model.fit(X_train, y_train)
importances = model.feature_importances_

feature_importances_ is an attribute that gives importance scores for each feature after training.

This example uses a Random Forest model, which naturally provides feature importance.

Examples
Linear regression uses coefficients as a measure of feature importance.
ML Python
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
coefficients = model.coef_
Random Forest provides feature importance based on how much each feature reduces error.
ML Python
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(n_estimators=100)
model.fit(X_train, y_train)
importances = model.feature_importances_
Plotting feature importance helps visualize which features matter most.
ML Python
import matplotlib.pyplot as plt
plt.bar(feature_names, importances)
plt.title('Feature Importance')
plt.show()
Sample Model

This code trains a Random Forest regressor on the Boston housing dataset and prints the importance of each feature.

ML Python
from sklearn.datasets import load_boston
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
import numpy as np

# Load data
boston = load_boston()
X, y = boston.data, boston.target
feature_names = boston.feature_names

# Split data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Train model
model = RandomForestRegressor(random_state=42)
model.fit(X_train, y_train)

# Get feature importance
importances = model.feature_importances_

# Print feature importance
for name, importance in zip(feature_names, importances):
    print(f"{name}: {importance:.3f}")
OutputSuccess
Important Notes

Feature importance values are relative and sum to 1.

Different models calculate importance differently; Random Forest uses how much each feature reduces error.

High importance means the feature strongly influences predictions.

Summary

Feature importance shows which inputs affect the model most.

Random Forest models provide easy access to feature importance.

Use feature importance to explain, simplify, or improve models.

Practice

(1/5)
1. What does feature importance tell us in a regression model?
easy
A. The accuracy of the model on test data
B. The number of layers in the model
C. Which input features most influence the model's predictions
D. The speed at which the model trains

Solution

  1. Step 1: Understand feature importance meaning

    Feature importance measures how much each input feature affects the model's output.
  2. Step 2: Compare options to definition

    Only Which input features most influence the model's predictions correctly describes this concept as the influence of input features on predictions.
  3. Final Answer:

    Which input features most influence the model's predictions -> Option C
  4. Quick Check:

    Feature importance = input influence [OK]
Hint: Feature importance ranks inputs by their effect on output [OK]
Common Mistakes:
  • Confusing feature importance with model accuracy
  • Thinking it shows model speed or size
  • Mixing it up with number of model layers
2. Which Python library function is commonly used to get feature importance from a Random Forest regression model?
easy
A. model.score()
B. model.predict()
C. model.fit()
D. model.feature_importances_

Solution

  1. Step 1: Recall Random Forest attribute for feature importance

    Random Forest regression models in scikit-learn provide feature importance via the attribute feature_importances_.
  2. Step 2: Eliminate other options

    predict() makes predictions, fit() trains the model, and score() evaluates performance, none return feature importance.
  3. Final Answer:

    model.feature_importances_ -> Option D
  4. Quick Check:

    Feature importance attribute = feature_importances_ [OK]
Hint: Feature importance in Random Forest is model.feature_importances_ [OK]
Common Mistakes:
  • Using predict() instead of feature_importances_
  • Confusing fit() with importance retrieval
  • Trying to get importance from score()
3. Given this code snippet, what will be the output?
from sklearn.ensemble import RandomForestRegressor
import numpy as np

X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
y = np.array([10, 20, 30, 40])
model = RandomForestRegressor(random_state=0)
model.fit(X, y)
print(model.feature_importances_)
medium
A. [0.3 0.7]
B. [0.7 0.3]
C. [0.5 0.5]
D. [0.0 1.0]

Solution

  1. Step 1: Understand the dataset and model

    The features are two columns with increasing values, but the first feature has a slightly stronger linear relationship with the target.
  2. Step 2: Interpret feature importance output

    Random Forest will assign higher importance to the feature with stronger influence, which is the first feature here.
  3. Final Answer:

    [0.7 0.3] -> Option B
  4. Quick Check:

    Feature 1 stronger -> higher importance [OK]
Hint: Feature with stronger effect gets higher importance [OK]
Common Mistakes:
  • Assuming equal importance without checking data
  • Expecting exact 0.5 values
  • Confusing feature importance with coefficients
4. You run this code but get an error:
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor()
print(model.feature_importances_)
What is the problem?
medium
A. The model must be trained with fit() before accessing feature_importances_
B. RandomForestRegressor does not have feature_importances_ attribute
C. You must import feature_importances_ separately
D. feature_importances_ is only for classification models

Solution

  1. Step 1: Identify cause of error

    Accessing feature_importances_ before training causes an AttributeError because the model has no learned features yet.
  2. Step 2: Correct usage

    Call fit() on training data before accessing feature_importances_.
  3. Final Answer:

    The model must be trained with fit() before accessing feature_importances_ -> Option A
  4. Quick Check:

    Train model first, then get feature importance [OK]
Hint: Always fit model before checking feature_importances_ [OK]
Common Mistakes:
  • Trying to access feature_importances_ before fit()
  • Thinking feature_importances_ needs separate import
  • Believing it's only for classification
5. You have a regression dataset with 10 features. After training a Random Forest model, you find two features have very low importance scores close to zero. What is the best next step?
hard
A. Remove those low-importance features and retrain the model
B. Increase the number of trees in the forest
C. Add more features similar to the low-importance ones
D. Ignore feature importance and keep all features

Solution

  1. Step 1: Interpret low feature importance meaning

    Features with near-zero importance contribute little to predictions and may add noise or complexity.
  2. Step 2: Decide action based on importance

    Removing unimportant features simplifies the model and can improve performance and interpretability.
  3. Final Answer:

    Remove those low-importance features and retrain the model -> Option A
  4. Quick Check:

    Drop low-importance features to simplify model [OK]
Hint: Drop features with near-zero importance to improve model [OK]
Common Mistakes:
  • Adding more similar low-importance features
  • Ignoring importance and keeping all features
  • Only increasing trees without feature selection
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