Bird
Raised Fist0
ML Pythonml~5 mins

Linear regression with scikit-learn in ML Python

Choose your learning style10 modes available
Introduction

Linear regression helps us find a straight line that best fits data points. It predicts one value from another using a simple formula.

Predicting house prices based on size
Estimating sales from advertising budget
Forecasting temperature based on time of day
Understanding relationship between study hours and exam scores
Syntax
ML Python
from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)

X_train should be a 2D array with features (like size, age).

y_train is a 1D array with target values (like price).

Examples
Simple example: predicting y = 2 * x.
ML Python
from sklearn.linear_model import LinearRegression

model = LinearRegression()
X = [[1], [2], [3], [4]]
y = [2, 4, 6, 8]
model.fit(X, y)
pred = model.predict([[5]])
Example without intercept (line forced through zero).
ML Python
model = LinearRegression(fit_intercept=False)
model.fit(X, y)
pred = model.predict([[5]])
Sample Model

This program trains a linear regression model to predict exam scores based on hours studied. It prints the slope, intercept, prediction for 6 hours, and training accuracy.

ML Python
from sklearn.linear_model import LinearRegression
import numpy as np

# Sample data: hours studied vs exam score
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([50, 60, 65, 70, 80])

# Create and train model
model = LinearRegression()
model.fit(X, y)

# Predict score for 6 hours studied
predicted_score = model.predict([[6]])

# Print coefficients and prediction
print(f"Coefficient (slope): {model.coef_[0]:.2f}")
print(f"Intercept: {model.intercept_:.2f}")
print(f"Predicted score for 6 hours: {predicted_score[0]:.2f}")

# Check training accuracy
score = model.score(X, y)
print(f"Training R^2 score: {score:.2f}")
OutputSuccess
Important Notes

Linear regression assumes a straight-line relationship between input and output.

Input features must be numeric and shaped correctly (2D array).

R^2 score shows how well the model fits the data (1.0 is perfect).

Summary

Linear regression finds a line to predict one value from another.

Use scikit-learn's LinearRegression to train and predict easily.

Check model quality with R^2 score and understand slope/intercept.

Practice

(1/5)
1. What is the main goal of linear regression in machine learning?
easy
A. To find a line that predicts a continuous value from input data
B. To classify data into categories
C. To cluster data points into groups
D. To reduce the number of features in data

Solution

  1. Step 1: Understand the purpose of linear regression

    Linear regression aims to model the relationship between input variables and a continuous output by fitting a line.
  2. Step 2: Compare with other tasks

    Classification assigns categories, clustering groups data, and feature reduction simplifies data, which are different tasks.
  3. Final Answer:

    To find a line that predicts a continuous value from input data -> Option A
  4. Quick Check:

    Linear regression predicts continuous values [OK]
Hint: Linear regression predicts continuous numbers, not categories [OK]
Common Mistakes:
  • Confusing regression with classification
  • Thinking linear regression clusters data
  • Believing it reduces features
2. Which of the following is the correct way to import the LinearRegression class from scikit-learn?
easy
A. from sklearn.linear_model import LinearRegression
B. import LinearRegression from sklearn.linear_model
C. from sklearn import LinearRegression
D. import linear_model.LinearRegression

Solution

  1. Step 1: Recall correct Python import syntax

    Python imports classes using 'from module import ClassName' syntax.
  2. Step 2: Match with scikit-learn structure

    LinearRegression is inside sklearn.linear_model, so correct import is from sklearn.linear_model import LinearRegression.
  3. Final Answer:

    from sklearn.linear_model import LinearRegression -> Option A
  4. Quick Check:

    Correct import syntax = from sklearn.linear_model import LinearRegression [OK]
Hint: Use 'from sklearn.linear_model import LinearRegression' [OK]
Common Mistakes:
  • Using wrong import order
  • Trying to import directly from sklearn
  • Using incorrect module names
3. What will be the output of the following code snippet?
from sklearn.linear_model import LinearRegression
import numpy as np

X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 6, 8, 10])
model = LinearRegression()
model.fit(X, y)
print(round(model.coef_[0], 1))
medium
A. 0.5
B. 2.0
C. 10.0
D. 1.0

Solution

  1. Step 1: Understand the data relationship

    X values are 1 to 5, y values are exactly double X (2,4,6,8,10), so slope should be 2.
  2. Step 2: Check model coefficient

    LinearRegression fits y = coef * X + intercept. coef_ will be close to 2.0 here.
  3. Final Answer:

    2.0 -> Option B
  4. Quick Check:

    Slope of y=2x is 2.0 [OK]
Hint: Slope equals change in y over change in x [OK]
Common Mistakes:
  • Confusing coefficient with intercept
  • Not rounding output
  • Assuming coefficient is 1 or 10
4. Identify the error in this code that tries to train a linear regression model:
from sklearn.linear_model import LinearRegression
X = [[1], [2], [3]]
y = [2, 4, 6]
model = LinearRegression()
model.fit(X, y)
print(model.predict([4]))
medium
A. Passing a list instead of numpy array to fit
B. LinearRegression class is not instantiated correctly
C. Missing import for numpy
D. Predict input shape is incorrect, should be 2D array

Solution

  1. Step 1: Check input shapes for fit and predict

    fit accepts list of lists for X, so no error there. But predict expects 2D array, [4] is 1D.
  2. Step 2: Fix predict input shape

    Predict should get [[4]] (2D) not [4] (1D) to avoid shape error.
  3. Final Answer:

    Predict input shape is incorrect, should be 2D array -> Option D
  4. Quick Check:

    Predict input must be 2D array [OK]
Hint: Always pass 2D array to predict, e.g., [[value]] [OK]
Common Mistakes:
  • Passing 1D array to predict
  • Assuming fit needs numpy arrays
  • Wrong class instantiation
5. You trained a linear regression model with scikit-learn and got an R² score of 0.85 on test data. What does this score mean?
hard
A. The model has 85% chance to predict correctly
B. The model's predictions are 85% accurate
C. The model explains 85% of the variance in the target variable
D. The model's error rate is 15% on test data

Solution

  1. Step 1: Understand R² score meaning

    R² (coefficient of determination) measures how well the model explains variance in the target.
  2. Step 2: Interpret 0.85 R²

    A score of 0.85 means 85% of the variance in the target is explained by the model.
  3. Final Answer:

    The model explains 85% of the variance in the target variable -> Option C
  4. Quick Check:

    R² = variance explained, not accuracy or error rate [OK]
Hint: R² shows variance explained, not accuracy percentage [OK]
Common Mistakes:
  • Confusing R² with accuracy
  • Thinking R² is probability
  • Assuming R² is error rate
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