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
Why clustering groups similar data
📖 Scenario: Imagine you have a small shop and you want to group your customers based on their shopping habits. Grouping similar customers helps you understand their preferences better and offer them personalized deals.
🎯 Goal: You will create a simple dataset of customer shopping amounts, set a threshold for grouping, apply clustering using scipy, and then display the groups formed.
📋 What You'll Learn
Create a list of customer shopping amounts
Set a distance threshold for clustering
Use scipy.cluster.hierarchy to cluster the data
Print the cluster labels for each customer
💡 Why This Matters
🌍 Real World
Clustering helps businesses group customers with similar behaviors to target marketing and improve service.
💼 Career
Data scientists use clustering to find patterns in data, segment customers, and make data-driven decisions.
Progress0 / 4 steps
1
Create the customer data list
Create a list called shopping_amounts with these exact values: 5, 7, 15, 18, 25, 30.
SciPy
Hint
Use square brackets to create a list and separate numbers with commas.
2
Set the clustering distance threshold
Create a variable called distance_threshold and set it to 10.
SciPy
Hint
Just assign the number 10 to the variable distance_threshold.
3
Cluster the shopping amounts
Import linkage and fcluster from scipy.cluster.hierarchy. Use linkage on shopping_amounts with method 'complete' and store in linked. Then create clusters using fcluster with linked, distance_threshold, and criterion 'distance'.
SciPy
Hint
Convert each number to a list like [x] before clustering because linkage expects 2D data.
4
Print the cluster labels
Print the clusters list to show which group each shopping amount belongs to.
SciPy
Hint
Use print(clusters.tolist()) to display the cluster labels as a list.
Practice
(1/5)
1. What is the main purpose of clustering in data science?
easy
A. To convert data into text format
B. To sort data points in ascending order
C. To remove duplicate data points
D. To group similar data points together
Solution
Step 1: Understand clustering concept
Clustering is about finding groups where data points are similar to each other.
Step 2: Compare options with clustering goal
Only grouping similar data points matches the purpose of clustering.
Final Answer:
To group similar data points together -> Option D
Quick Check:
Clustering = grouping similar data [OK]
Hint: Clustering means grouping alike items together [OK]
Common Mistakes:
Confusing clustering with sorting
Thinking clustering removes duplicates
Believing clustering changes data format
2. Which of the following is the correct way to import the kmeans function from scipy.cluster.vq?
easy
A. from scipy import kmeans
B. import scipy.kmeans
C. from scipy.cluster.vq import kmeans
D. import kmeans from scipy.cluster
Solution
Step 1: Recall correct import syntax in Python
To import a function from a module, use 'from module import function'.
Step 2: Match syntax with scipy.cluster.vq.kmeans
The correct import is 'from scipy.cluster.vq import kmeans'.
Final Answer:
from scipy.cluster.vq import kmeans -> Option C
Quick Check:
Correct import syntax = from scipy.cluster.vq import kmeans [OK]
Hint: Use 'from module import function' to import specific functions [OK]
Common Mistakes:
Using incorrect import paths
Trying to import functions directly from scipy
Using invalid import syntax
3. Given the code below, what will be the output of the variable idx?
kmeans finds 2 cluster centers for the data points. vq assigns each point to the nearest center, returning cluster indices.
Step 2: Analyze data and expected clusters
Data points with x=1 are close and form one cluster (index 0), points with x=10 form the other (index 1). So idx should be [0 0 0 1 1 1].
Final Answer:
[0 0 0 1 1 1] -> Option B
Quick Check:
Points grouped by x value = [0 0 0 1 1 1] [OK]
Hint: Clusters group points close in space; check coordinates [OK]
Common Mistakes:
Mixing cluster indices order
Confusing kmeans output with vq output
Assuming clusters are assigned randomly
4. The following code throws an error. What is the most likely cause?
import numpy as np
from scipy.cluster.vq import kmeans, vq
data = np.array([[1, 2], [1, 4], [1, 0]])
centroids, _ = kmeans(data, 4)
idx, _ = vq(data, centroids)
print(idx)
medium
A. Number of clusters (4) is greater than number of data points (3)
B. kmeans function requires integer data only
C. vq function cannot assign clusters with less than 5 points
D. Missing import statement for vq
Solution
Step 1: Check data and cluster count
Data has 3 points but kmeans is asked to find 4 clusters, which is impossible.
Step 2: Understand kmeans limitation
kmeans cannot create more clusters than data points; this causes an error.
Final Answer:
Number of clusters (4) is greater than number of data points (3) -> Option A
Quick Check:
Clusters ≤ data points [OK]
Hint: Clusters can't exceed data points count [OK]
Common Mistakes:
Assuming kmeans needs integer data
Thinking vq needs minimum 5 points
Ignoring import errors
5. You have a dataset of customer locations and want to group them into clusters to target marketing campaigns. Which approach best explains why clustering helps in this scenario?
hard
A. Clustering groups customers by location similarity, so campaigns can be tailored to each area's preferences.
B. Clustering removes outliers so only average customers remain.
C. Clustering sorts customers alphabetically for easy lookup.
D. Clustering converts location data into text descriptions.
Solution
Step 1: Understand clustering's role in grouping
Clustering groups data points that are similar, here customers close in location.
Step 2: Connect clustering to marketing benefit
Grouping customers by location helps tailor campaigns to local preferences, improving effectiveness.
Final Answer:
Clustering groups customers by location similarity, so campaigns can be tailored to each area's preferences. -> Option A
Quick Check:
Clustering = grouping for targeted marketing [OK]
Hint: Clusters help target groups with similar traits [OK]