Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Hierarchical clustering (linkage)
📖 Scenario: You work in a small shop that sells fruits. You want to group similar fruits based on their sweetness and crunchiness scores to understand which fruits are alike.
🎯 Goal: Build a simple hierarchical clustering using linkage to group fruits by their sweetness and crunchiness.
📋 What You'll Learn
Create a dictionary with fruit names as keys and their sweetness and crunchiness scores as values.
Create a list of fruit names to keep track of the order.
Use scipy's linkage function to perform hierarchical clustering on the fruit scores.
Print the linkage matrix to see the clustering result.
💡 Why This Matters
🌍 Real World
Hierarchical clustering helps group similar items, like fruits, customers, or documents, based on their features.
💼 Career
Data scientists use hierarchical clustering to find natural groups in data, which helps in marketing, biology, and many other fields.
Progress0 / 4 steps
1
Create the fruit data dictionary
Create a dictionary called fruit_data with these exact entries: 'Apple': [7, 6], 'Banana': [10, 2], 'Cherry': [6, 7], 'Date': [9, 3], 'Elderberry': [5, 8].
SciPy
Hint
Use curly braces to create a dictionary. Each fruit name is a key, and the value is a list with two numbers.
2
Create a list of fruit names
Create a list called fruit_names containing the fruit names in this exact order: 'Apple', 'Banana', 'Cherry', 'Date', 'Elderberry'.
SciPy
Hint
Use square brackets to create a list with the fruit names in the given order.
3
Perform hierarchical clustering using linkage
Import linkage from scipy.cluster.hierarchy. Create a list called data_points that contains the fruit scores in the order of fruit_names. Then use linkage(data_points, method='single') to perform hierarchical clustering and save the result in a variable called linkage_matrix.
SciPy
Hint
Use a list comprehension to get the scores in the order of fruit_names. Then call linkage with method='single'.
4
Print the linkage matrix
Print the variable linkage_matrix to display the hierarchical clustering result.
SciPy
Hint
Use print(linkage_matrix) to show the clustering result.
Practice
(1/5)
1. What does the linkage function in scipy.cluster.hierarchy do in hierarchical clustering?
easy
A. It calculates distances between clusters step-by-step to form a hierarchy.
B. It assigns data points to fixed clusters before clustering.
C. It visualizes the final clusters using a scatter plot.
D. It normalizes the data before clustering.
Solution
Step 1: Understand hierarchical clustering process
Hierarchical clustering builds clusters step-by-step by merging closest groups.
Step 2: Role of linkage function
The linkage function calculates distances between clusters at each step to decide which to merge next.
Final Answer:
It calculates distances between clusters step-by-step to form a hierarchy. -> Option A
2. Which of the following is the correct way to import the linkage function from scipy.cluster.hierarchy?
easy
A. from scipy.cluster import linkage
B. import linkage from scipy.cluster.hierarchy
C. import linkage from scipy.cluster
D. from scipy.cluster.hierarchy import linkage
Solution
Step 1: Identify correct module path
The linkage function is inside the hierarchy submodule of scipy.cluster.
Step 2: Use correct Python import syntax
Python import syntax for functions is from module import function. So, from scipy.cluster.hierarchy import linkage is correct.
Final Answer:
from scipy.cluster.hierarchy import linkage -> Option D
Quick Check:
Correct import = from scipy.cluster.hierarchy import linkage [OK]
Hint: Use 'from scipy.cluster.hierarchy import linkage' [OK]
Common Mistakes:
Using wrong module path
Wrong import syntax like 'import linkage from ...'
Importing from scipy.cluster directly
3. What is the output of this code snippet?
from scipy.cluster.hierarchy import linkage
import numpy as np
X = np.array([[1, 2], [3, 4], [5, 6]])
Z = linkage(X, method='single')
print(Z.shape)
medium
A. (2, 3)
B. (3, 4)
C. (2, 4)
D. (3, 3)
Solution
Step 1: Understand linkage output shape
For n data points, linkage returns a matrix with n-1 rows and 4 columns.
Step 2: Calculate shape for 3 points
Here, n=3, so output shape is (2, 4).
Final Answer:
(2, 4) -> Option C
Quick Check:
Linkage shape = (n-1, 4) = (2, 4) [OK]
Hint: Linkage output shape = (n-1, 4) for n points [OK]
Common Mistakes:
Expecting shape (n, 4) instead of (n-1, 4)
Confusing columns count
Miscounting number of data points
4. Identify the error in this code snippet:
from scipy.cluster.hierarchy import linkage
import numpy as np
X = np.array([[1, 2], [3, 4], [5, 6]])
Z = linkage(X, method='fast')
print(Z)
medium
A. The method 'fast' is not a valid linkage method.
B. The input array X must be 1-dimensional.
C. The linkage function requires a distance matrix, not raw data.
D. The print statement is missing parentheses.
Solution
Step 1: Check valid linkage methods
Valid methods include 'single', 'complete', 'average', 'ward', etc. 'fast' is not valid.
Step 2: Confirm input data and syntax
Input can be raw data array; print statement syntax is correct in Python 3.
Final Answer:
The method 'fast' is not a valid linkage method. -> Option A
Quick Check:
Invalid method name causes error [OK]
Hint: Check method names carefully; 'fast' is invalid [OK]
Common Mistakes:
Assuming 'fast' is a valid method
Thinking input must be 1D array
Confusing linkage input requirements
5. You have a dataset with 5 points and want to perform hierarchical clustering using the 'ward' method. After computing linkage, how many merges will be recorded in the linkage matrix, and why?
hard
A. 3 merges, because only the closest points are merged.
B. 4 merges, because each merge reduces clusters by one until one cluster remains.
C. 6 merges, because the 'ward' method adds an extra merge step.
D. 5 merges, because there are 5 points to merge individually.
Solution
Step 1: Understand merges in hierarchical clustering
For n points, hierarchical clustering performs n-1 merges to combine all points into one cluster.
Step 2: Apply to 5 points with 'ward' method
With 5 points, the linkage matrix records 4 merges regardless of method.
Final Answer:
4 merges, because each merge reduces clusters by one until one cluster remains. -> Option B
Quick Check:
Merges = n-1 = 4 for 5 points [OK]
Hint: Number of merges = number of points minus one [OK]