https://github.com/theanujsinha01/customer-segmentation-using-k-means-clustering
This project focuses on customer segmentation using the K-Means clustering algorithm. A user-friendly Streamlit dashboard allows users to upload their own dataset, choose any two numeric features (like age, income, or spending score), and perform clustering. The app dynamically visualizes customer groups, recommends the best number of clusters
https://github.com/theanujsinha01/customer-segmentation-using-k-means-clustering
jupyter-notebook k-means-clustering machine-learning matplotlib numpy pandas python seaborn streamlit unsupervised-learning
Last synced: 4 months ago
JSON representation
This project focuses on customer segmentation using the K-Means clustering algorithm. A user-friendly Streamlit dashboard allows users to upload their own dataset, choose any two numeric features (like age, income, or spending score), and perform clustering. The app dynamically visualizes customer groups, recommends the best number of clusters
- Host: GitHub
- URL: https://github.com/theanujsinha01/customer-segmentation-using-k-means-clustering
- Owner: theanujsinha01
- Created: 2025-06-27T09:02:27.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-27T09:30:55.000Z (about 1 year ago)
- Last Synced: 2025-06-27T10:29:39.240Z (about 1 year ago)
- Topics: jupyter-notebook, k-means-clustering, machine-learning, matplotlib, numpy, pandas, python, seaborn, streamlit, unsupervised-learning
- Language: Jupyter Notebook
- Homepage: https://customer-segmentation-using-kmeans-clustering.streamlit.app/
- Size: 91.8 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐๏ธ Customer Segmentation using K-Means (Streamlit App)
This project performs **customer segmentation** using **K-Means Clustering**, and builds an interactive **Streamlit web app** for visual analysis and business insights.
It helps businesses understand different types of customers like:
- ๐ฅ High-income, high-spending customers
- ๐ฆ Low-income, low-spending customers
- ๐ช Impulsive buyers
- ๐ฉ Cautious but wealthy customers
---
## ๐ Objective
๐ฏ To segment customers into useful clusters using machine learning and visualize results dynamically.
The tool allows:
- Marketing teams to design **targeted strategies**
- Businesses to **personalize offers**
- Analysts to **explore patterns** in customer behavior
## LIVE : https://customer-segmentation-using-kmeans-clustering.streamlit.app/
---
## ๐ Features
โ
Upload your own dataset
โ
Select any 2 numeric features (Age, Income, Spending Score, etc.)
โ
Elbow Method to choose the best number of clusters
โ
K-Means clustering
โ
Dynamic scatter plot with cluster colors
โ
Smart report with cluster-wise insights
โ
Styled table showing cluster means
โ
Business-friendly auto descriptions
---
## ๐งช Technologies Used
| Tool / Library | Purpose |
|--------------------|--------------------------------------|
| Python | Main programming language |
| Pandas | Data analysis & cleaning |
| Matplotlib | Elbow graph |
| Seaborn | Cluster visualization |
| Scikit-learn | K-Means clustering |
| Streamlit | UI for interactive web app |
---
## ๐ Dataset Overview
We used `Mall_Customers.csv`, containing:
| Column | Description |
|------------------------|-------------------------------------|
| CustomerID | Unique customer ID |
| Gender | Male / Female |
| Age | Age of customer |
| Annual Income (k$) | Income in thousands of dollars |
| Spending Score (1โ100)| Score assigned by the shopping mall |
---
## ๐ผ๏ธ How It Works
1. Upload the CSV file (or use the default one)
2. Select 2 numeric features for clustering
3. See the Elbow Method graph to pick the best number of clusters (K)
4. Visualize customers in color-coded clusters
5. Read auto-generated cluster descriptions
6. View a styled summary table for insights
---