Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Trang Chủ Hướng Dẫn Đồ Án Xây dựng chương trình phân tích hành vi khách hàng bằng dữ liệu
Hướng Dẫn Đồ ÁnLập Trình AI

Xây dựng chương trình phân tích hành vi khách hàng bằng dữ liệu

Chia sẻ
Chia sẻ

Trong thời đại dữ liệu hiện nay, việc hiểu hành vi khách hàng không chỉ là một lợi thế cạnh tranh mà còn là yếu tố sống còn đối với doanh nghiệp. Những câu hỏi như “Khách hàng nào mua hàng nhiều nhất?”, “Họ thường mua vào thời điểm nào?”, “Nhóm khách hàng nào có nguy cơ rời bỏ cao?” có thể được trả lời bằng cách phân tích dữ liệu.

Trong bài viết này, chúng ta sẽ cùng xây dựng một hệ thống phân tích hành vi khách hàng từ dữ liệu bán lẻ. Bạn sẽ học cách xử lý dữ liệu thô, khám phá các mẫu hành vi, và trực quan hóa kết quả để đưa ra insights có giá trị. Bài viết phù hợp cho người mới bắt đầu, với phần giải thích từng bước trước khi đi vào code, giúp bạn không bị “ngợp” khi tiếp cận Data Science thực tế.

Tại sao cần phân tích hành vi khách hàng

Phân tích hành vi khách hàng không còn là một lựa chọn mà đã trở thành yếu tố bắt buộc trong bất kỳ chiến lược kinh doanh hiện đại nào. Trong một thị trường cạnh tranh khốc liệt, nơi người tiêu dùng có vô số lựa chọn chỉ với vài cú nhấp chuột, việc hiểu rõ cách họ tương tác với sản phẩm hoặc dịch vụ giúp doanh nghiệp nắm bắt nhu cầu, sở thích và những rào cản khiến họ rời bỏ. Đây chính là nền tảng để xây dựng trải nghiệm người dùng tốt hơn, tối ưu hóa các chiến dịch marketing và tăng tỷ lệ giữ chân khách hàng.

Khi bạn biết khách hàng thường mua vào thời gian nào, họ quan tâm đến sản phẩm gì và những yếu tố nào khiến họ do dự trước khi hoàn tất giao dịch, bạn có thể cá nhân hóa các đề xuất, cải thiện quy trình bán hàng và thậm chí dự đoán được hành vi trong tương lai. Phân tích này cũng giúp doanh nghiệp phát hiện các nhóm khách hàng khác nhau, từ đó đưa ra các chiến lược riêng phù hợp cho từng nhóm, thay vì áp dụng một cách tiếp cận chung cho tất cả. Nói cách khác, phân tích hành vi khách hàng chính là chìa khóa để biến dữ liệu thành lợi thế cạnh tranh và thúc đẩy tăng trưởng bền vững.

Tập dữ liệu sử dụng

Để minh họa, chúng ta sử dụng tập dữ liệu Online Retail Dataset từ UCI Machine Learning Repository. Đây là tập dữ liệu bán lẻ thực tế từ một cửa hàng trực tuyến tại Vương quốc Anh, gồm hơn 500.000 giao dịch từ năm 2010–2011.

Tải dữ liệu tại đây: Online Retail Dataset – UCI hoặc Kaggle version.

Các cột chính trong dữ liệu:

Cột Ý nghĩa
InvoiceNo Mã đơn hàng
StockCode Mã sản phẩm
Description Mô tả sản phẩm
Quantity Số lượng mua
InvoiceDate Ngày giao dịch
UnitPrice Giá mỗi sản phẩm
CustomerID ID khách hàng
Country Quốc gia của khách hàng

Đọc và làm sạch dữ liệu

Bước đầu tiên là tải tập dữ liệu và xử lý các vấn đề thường gặp như giá trị bị thiếu, dữ liệu trùng lặp hoặc lỗi nhập liệu (ví dụ: số lượng âm, giá âm). Những vấn đề này nếu không được xử lý sẽ ảnh hưởng lớn tới kết quả phân tích.

Chúng ta sẽ dùng thư viện pandas để đọc dữ liệu từ file Excel và thực hiện các thao tác làm sạch cơ bản.

import pandas as pd

# Đọc dữ liệu từ file Excel
data = pd.read_excel('Online Retail.xlsx')

# Hiển thị 5 dòng đầu tiên
print(data.head())

# Kiểm tra thông tin tổng quan
print(data.info())

# Xóa các dòng thiếu CustomerID (không thể phân tích hành vi nếu không biết ai)
data = data.dropna(subset=['CustomerID'])

# Loại bỏ các giao dịch bị hủy (InvoiceNo bắt đầu bằng 'C')
data = data[~data['InvoiceNo'].str.startswith('C')]

# Loại bỏ các hàng có Quantity hoặc UnitPrice <= 0
data = data[(data['Quantity'] > 0) & (data['UnitPrice'] > 0)]

# Xem lại dữ liệu sau khi làm sạch
print(data.shape)

Phân tích hành vi mua hàng cơ bản

Ở bước này, chúng ta muốn trả lời các câu hỏi như:

  • Khách hàng nào mua hàng nhiều nhất?

  • Sản phẩm nào bán chạy nhất?

  • Doanh thu theo tháng thay đổi ra sao?

Điều này giúp hình dung bức tranh tổng thể về hành vi mua hàng.

# Tính tổng doanh thu (Quantity * UnitPrice)
data['TotalPrice'] = data['Quantity'] * data['UnitPrice']

# Doanh thu theo tháng
data['InvoiceMonth'] = data['InvoiceDate'].dt.to_period('M')
monthly_revenue = data.groupby('InvoiceMonth')['TotalPrice'].sum()

# Hiển thị doanh thu theo tháng
print(monthly_revenue)

# Vẽ biểu đồ doanh thu
import matplotlib.pyplot as plt

monthly_revenue.plot(kind='bar', figsize=(12,6))
plt.title('Doanh thu theo tháng')
plt.ylabel('Doanh thu')
plt.show()

# Top 10 sản phẩm bán chạy nhất
top_products = data.groupby('Description')['Quantity'].sum().sort_values(ascending=False).head(10)
print(top_products)

Phân tích hành vi khách hàng (RFM Analysis)

RFM (Recency, Frequency, Monetary) là phương pháp phổ biến để phân tích hành vi khách hàng:

  • Recency: Lần mua hàng gần nhất cách đây bao lâu

  • Frequency: Số lần mua hàng

  • Monetary: Tổng số tiền đã chi tiêu

Dựa trên RFM, bạn có thể phân nhóm khách hàng để cá nhân hóa chiến dịch marketing.

import datetime

# Ngày phân tích (1 ngày sau ngày cuối cùng trong dữ liệu)
snapshot_date = data['InvoiceDate'].max() + datetime.timedelta(days=1)

# Tính RFM cho từng khách hàng
rfm = data.groupby('CustomerID').agg({
    'InvoiceDate': lambda x: (snapshot_date - x.max()).days,
    'InvoiceNo': 'nunique',
    'TotalPrice': 'sum'
})
rfm.rename(columns={
    'InvoiceDate': 'Recency',
    'InvoiceNo': 'Frequency',
    'TotalPrice': 'Monetary'
}, inplace=True)

print(rfm.head())

Phân nhóm khách hàng với KMeans

Sau khi tính RFM, chúng ta có thể sử dụng thuật toán KMeans để phân nhóm khách hàng thành các cluster. Mỗi cluster đại diện cho một nhóm hành vi như “Khách hàng trung thành”, “Nguy cơ rời bỏ”, “Mới mua lần đầu”.

from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler

# Chuẩn hóa dữ liệu
scaler = StandardScaler()
rfm_scaled = scaler.fit_transform(rfm)

# KMeans với 3 nhóm
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(rfm_scaled)

rfm['Cluster'] = kmeans.labels_

# Xem phân bố khách hàng theo cluster
print(rfm['Cluster'].value_counts())

Kết luận

Hệ thống phân tích hành vi khách hàng này giúp bạn chuyển đổi dữ liệu bán lẻ thành insights giá trị, từ việc hiểu rõ hành vi mua hàng đến phân nhóm khách hàng cho các chiến dịch nhắm mục tiêu. Dù đây chỉ là bước khởi đầu, nhưng nó mở ra nhiều khả năng mở rộng như dự đoán churn, xây dựng recommender system hoặc tối ưu hóa chiến lược marketing.

Tham Gia Nhóm – Hỗ Trợ Lập Trình

Hỗ Trợ Đồ Án – ThueDoAn.vn

Liên quan
Hướng Dẫn Đồ Án

Checklist 10 bước kiểm tra cuối cùng trước khi nhấn nút nộp đồ án

Thời điểm chuẩn bị nhấn nút nộp đồ án luôn mang lại...

Hướng Dẫn Đồ Án

Tuyệt chiêu đối phó với những giảng viên hướng dẫn ‘khó tính’ nhất

Giai đoạn làm đồ án tốt nghiệp luôn đi kèm với vô...

Hướng Dẫn Đồ Án

Tại sao việc quản lý Source Code bằng Git lại quan trọng hơn bạn nghĩ?

Trong thế giới lập trình hiện đại, mã nguồn chính là linh...

Hướng Dẫn Đồ Án

Những chức năng ‘thừa’ khiến bạn tốn thời gian mà không được cộng điểm

Làm đồ án tốt nghiệp là một cuộc đua thực thụ với...

Hướng Dẫn Đồ Án

Cách xử lý khi đề tài bị trùng lặp ý tưởng với các khóa trước quá nhiều

Lựa chọn đề tài đồ án luôn là bước khởi đầu đầy...

Hướng Dẫn Đồ Án

Làm sao để giải trình với giảng viên khi code bị nghi ngờ là đi chép?

Trong quá trình thực hiện đồ án, việc tham khảo mã nguồn...

Hướng Dẫn Đồ Án

Cảnh báo: Những nguồn share code ‘rác’ trên mạng cần tuyệt đối tránh

Trong quá trình làm đồ án, việc tìm kiếm sự hỗ trợ...

Hướng Dẫn Đồ Án

Sai lầm khi chọn công nghệ quá khó so với năng lực thực tế của bản thân

Chọn đề tài và công nghệ cho đồ án luôn là bước...

Liên Hệ
Liên hệ để được tư vấn & hỗ trợ đồ án CNTT nhé bạn!