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
Dendrogram visualization
📖 Scenario: You work in a small company that wants to group similar products based on their features. You have collected data about the products and want to see how they cluster together visually.
🎯 Goal: Build a dendrogram visualization using scipy to show how products group based on their features.
📋 What You'll Learn
Create a data dictionary with product names and their feature values
Set a linkage method variable for clustering
Use scipy.cluster.hierarchy.linkage to compute clusters
Use scipy.cluster.hierarchy.dendrogram to plot the dendrogram
Print the dendrogram plot
💡 Why This Matters
🌍 Real World
Dendrograms help businesses group similar items or customers to understand patterns and make decisions.
💼 Career
Data scientists and analysts use dendrograms to visualize hierarchical clusters in marketing, biology, and many other fields.
Progress0 / 4 steps
1
Create product features data
Create a dictionary called products with these exact entries: 'ProductA': [1.0, 2.0], 'ProductB': [1.5, 1.8], 'ProductC': [5.0, 8.0], 'ProductD': [6.0, 9.0]
SciPy
Hint
Use curly braces to create a dictionary. Each product name is a key, and its features are a list of two numbers.
2
Set linkage method
Create a variable called linkage_method and set it to the string 'ward' to specify the clustering method.
SciPy
Hint
Assign the string 'ward' to the variable linkage_method.
3
Compute linkage matrix
Import linkage from scipy.cluster.hierarchy. Create a list called data_points containing the feature lists from products. Use linkage(data_points, method=linkage_method) and save the result in a variable called Z.
SciPy
Hint
Use a list comprehension to get the feature lists from the dictionary values.
4
Plot dendrogram
Import dendrogram from scipy.cluster.hierarchy and matplotlib.pyplot as plt. Use dendrogram(Z, labels=list(products.keys())) to create the dendrogram plot. Then call plt.show() to display it.
SciPy
Hint
Use dendrogram with Z and labels=list(products.keys()). Then call plt.show() to display the plot.
Practice
(1/5)
1. What is the main purpose of a dendrogram in data science?
easy
A. To visualize hierarchical clustering as a tree
B. To perform linear regression analysis
C. To calculate the mean of a dataset
D. To create a scatter plot of two variables
Solution
Step 1: Understand dendrogram function
A dendrogram is used to show hierarchical clustering results visually as a tree structure.
Step 2: Compare with other options
The other options describe different data analysis or visualization methods unrelated to dendrograms.
Final Answer:
To visualize hierarchical clustering as a tree -> Option A
Quick Check:
Dendrogram = hierarchical clustering tree [OK]
Hint: Dendrograms always show clusters as tree diagrams [OK]
Common Mistakes:
Confusing dendrogram with scatter plot
Thinking dendrogram calculates statistics
Mixing dendrogram with regression plots
2. Which of the following is the correct way to import the dendrogram function from scipy?
easy
A. from scipy.visualization import dendrogram
B. import scipy.dendrogram
C. import dendrogram from scipy.cluster
D. from scipy.cluster.hierarchy import dendrogram
Solution
Step 1: Recall correct import syntax
The dendrogram function is located in scipy.cluster.hierarchy, so the correct import is from scipy.cluster.hierarchy import dendrogram.
Step 2: Check other options for syntax errors
The other options use incorrect module paths or invalid import syntax.
Final Answer:
from scipy.cluster.hierarchy import dendrogram -> Option D
Quick Check:
Correct import path = from scipy.cluster.hierarchy import dendrogram [OK]
Hint: Remember dendrogram is in scipy.cluster.hierarchy [OK]
Common Mistakes:
Using wrong module path
Incorrect import syntax
Assuming dendrogram is in scipy.visualization
3. Given the following code, what will be the output type of dn?
from scipy.cluster.hierarchy import dendrogram, linkage
import numpy as np
X = np.array([[1, 2], [3, 4], [5, 6]])
Z = linkage(X, 'single')
dn = dendrogram(Z)
medium
A. A NumPy array of cluster labels
B. A dictionary containing dendrogram data
C. A matplotlib figure object
D. A list of linkage distances
Solution
Step 1: Understand dendrogram return value
The dendrogram function returns a dictionary with keys like 'icoord', 'dcoord', 'leaves', and 'color_list' describing the dendrogram structure.
Step 2: Check other options
A NumPy array of cluster labels is incorrect because cluster labels are not returned by dendrogram. A matplotlib figure object is wrong because dendrogram does not return a figure object. A list of linkage distances is incorrect as linkage distances are part of the linkage matrix, not dendrogram output.
Final Answer:
A dictionary containing dendrogram data -> Option B
Quick Check:
dendrogram() returns dict = A dictionary containing dendrogram data [OK]
Hint: dendrogram() returns a dict with plotting info [OK]
Common Mistakes:
Expecting dendrogram to return a plot object
Confusing dendrogram output with linkage matrix
Thinking dendrogram returns cluster labels
4. Identify the error in this code snippet for plotting a dendrogram:
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt
X = [[1, 2], [3, 4], [5, 6]]
Z = linkage(X, 'ward')
dendrogram(Z)
plt.show()
medium
A. Linkage method 'ward' is invalid
B. Missing import for numpy
C. No error; code runs and plots dendrogram correctly
D. X should be a NumPy array, not a list
Solution
Step 1: Check data input type
Linkage accepts array-like input, so a Python list of lists is valid for X.
Step 2: Verify linkage method and plotting
'ward' is a valid linkage method. The code imports matplotlib.pyplot as plt and calls plt.show(), so the dendrogram will plot correctly.
Final Answer:
No error; code runs and plots dendrogram correctly -> Option C
Quick Check:
List input and 'ward' method are valid [OK]
Hint: Linkage accepts lists; 'ward' is valid method [OK]
Common Mistakes:
Assuming input must be NumPy array
Thinking 'ward' is invalid linkage method
Forgetting plt.show() to display plot
5. You want to visualize clusters with different colors in a dendrogram using scipy.cluster.hierarchy.dendrogram. Which parameter should you set to control the color threshold for cluster coloring?
hard
A. color_threshold
B. linkage_method
C. leaf_rotation
D. distance_metric
Solution
Step 1: Identify parameter for cluster color control
The parameter color_threshold in dendrogram controls the threshold distance to color clusters differently.
Step 2: Eliminate unrelated parameters
linkage_method and distance_metric relate to clustering, not coloring. leaf_rotation controls label rotation, not colors.
Final Answer:
color_threshold -> Option A
Quick Check:
Cluster colors controlled by color_threshold [OK]
Hint: Use color_threshold to set cluster color boundaries [OK]