Bird
Raised Fist0
ML Pythonml~5 mins

Correlation analysis in ML Python

Choose your learning style10 modes available
Introduction

Correlation analysis helps us find how two things change together. It shows if one thing goes up when the other goes up or down.

To check if hours studied and exam scores are related.
To see if temperature affects ice cream sales.
To find if age and blood pressure move together.
To understand if advertising budget impacts product sales.
To explore relationships between features before building a model.
Syntax
ML Python
import pandas as pd
correlation = df['column1'].corr(df['column2'])
Use pandas DataFrame columns to calculate correlation.
The result is a number between -1 and 1 showing strength and direction.
Examples
This example finds correlation between height and weight.
ML Python
import pandas as pd

# Create sample data
data = {'height': [150, 160, 170, 180], 'weight': [50, 60, 65, 80]}
df = pd.DataFrame(data)

# Calculate correlation
corr = df['height'].corr(df['weight'])
print(corr)
Shows correlation close to zero for unrelated data.
ML Python
import numpy as np
import pandas as pd

# Random data with no relation
np.random.seed(0)
data = {'x': np.random.rand(100), 'y': np.random.rand(100)}
df = pd.DataFrame(data)

print(df['x'].corr(df['y']))
Sample Model

This program calculates how study hours and scores relate. A positive number means more study hours usually mean higher scores.

ML Python
import pandas as pd

# Sample data for study hours and scores
data = {'study_hours': [1, 2, 3, 4, 5], 'scores': [50, 55, 65, 70, 80]}
df = pd.DataFrame(data)

# Calculate correlation
correlation = df['study_hours'].corr(df['scores'])
print(f"Correlation between study hours and scores: {correlation:.2f}")
OutputSuccess
Important Notes

Correlation does not mean one thing causes the other.

Values near 1 or -1 show strong relationships; near 0 means weak or no relationship.

Use correlation to understand data before building models.

Summary

Correlation shows how two variables move together.

It is a number between -1 and 1.

Positive means both go up, negative means one goes up while the other goes down.

Practice

(1/5)
1. What does a correlation value of 0 indicate between two variables?
easy
A. There is no linear relationship between the variables
B. The variables move exactly together in the same direction
C. One variable increases while the other decreases perfectly
D. The variables have a perfect nonlinear relationship

Solution

  1. Step 1: Understand correlation meaning

    Correlation measures linear relationship strength between two variables.
  2. Step 2: Interpret zero correlation

    A correlation of 0 means no linear relationship exists between the variables.
  3. Final Answer:

    There is no linear relationship between the variables -> Option A
  4. Quick Check:

    Correlation = 0 means no linear link [OK]
Hint: Zero correlation means no linear link between variables [OK]
Common Mistakes:
  • Thinking zero means variables are unrelated in any way
  • Confusing zero correlation with negative correlation
  • Assuming zero means perfect nonlinear relationship
2. Which of the following is the correct Python syntax to calculate Pearson correlation between two lists x and y using NumPy?
easy
A. np.correlation(x, y)
B. np.corrcoef(x, y)[0, 1]
C. np.pearson(x, y)
D. np.corr(x, y)

Solution

  1. Step 1: Recall NumPy correlation function

    NumPy uses np.corrcoef() to compute correlation matrix.
  2. Step 2: Extract Pearson correlation value

    The correlation between x and y is at position [0, 1] in the matrix.
  3. Final Answer:

    np.corrcoef(x, y)[0, 1] -> Option B
  4. Quick Check:

    Use np.corrcoef and index [0,1] for Pearson [OK]
Hint: Use np.corrcoef(x, y)[0,1] to get Pearson correlation [OK]
Common Mistakes:
  • Using non-existent functions like np.correlation or np.pearson
  • Forgetting to index the correlation matrix
  • Confusing correlation with covariance functions
3. Given the code below, what is the output?
import numpy as np
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
correlation = np.corrcoef(x, y)[0, 1]
print("{:.2f}".format(round(correlation, 2)))
medium
A. 1.00
B. -1.00
C. 0.00
D. 0.50

Solution

  1. Step 1: Analyze the data relationship

    List y is exactly twice x, so they have a perfect positive linear relationship.
  2. Step 2: Calculate correlation

    Perfect positive linear relationship means correlation = 1.0.
  3. Final Answer:

    1.00 -> Option A
  4. Quick Check:

    Perfect positive linear relation = 1.00 [OK]
Hint: Perfect multiples have correlation 1.00 [OK]
Common Mistakes:
  • Thinking correlation is 0 because values differ
  • Confusing correlation with covariance magnitude
  • Rounding errors causing wrong output
4. Identify the error in the following code snippet for calculating correlation:
import numpy as np
x = [1, 2, 3]
y = [4, 5]
correlation = np.corrcoef(x, y)[0, 1]
print(correlation)
medium
A. Missing import statement for correlation function
B. np.corrcoef requires pandas Series, not lists
C. Lists x and y have different lengths causing an error
D. Indexing [0, 1] is incorrect for correlation matrix

Solution

  1. Step 1: Check input data lengths

    Lists x and y have lengths 3 and 2, which must be equal for correlation.
  2. Step 2: Understand np.corrcoef requirements

    np.corrcoef requires inputs of equal length arrays to compute correlation matrix.
  3. Final Answer:

    Lists x and y have different lengths causing an error -> Option C
  4. Quick Check:

    Input arrays must be same length [OK]
Hint: Check input lengths match before correlation [OK]
Common Mistakes:
  • Assuming np.corrcoef works with unequal length lists
  • Thinking pandas Series are required for np.corrcoef
  • Misindexing the correlation matrix
5. You have two features: hours_studied and exam_score. You calculate their correlation and get -0.85. What does this imply and what should you consider next?
hard
A. Perfect negative nonlinear relationship; use polynomial regression
B. Strong positive linear relationship; increase study hours to improve score
C. No relationship; ignore this feature in modeling
D. Strong negative linear relationship; consider if data or labels are reversed

Solution

  1. Step 1: Interpret correlation sign and magnitude

    A correlation of -0.85 means a strong negative linear relationship between the two features.
  2. Step 2: Consider real-world meaning

    Since more study usually means higher scores, a strong negative correlation suggests possible data issues or reversed labels.
  3. Final Answer:

    Strong negative linear relationship; consider if data or labels are reversed -> Option D
  4. Quick Check:

    Negative strong correlation may indicate reversed data [OK]
Hint: Strong negative correlation may mean reversed data [OK]
Common Mistakes:
  • Assuming negative correlation means no relationship
  • Ignoring domain knowledge about expected relationships
  • Confusing negative linear with nonlinear relationships
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