Tuần siêu khuyến mãiClaude Skills — GIẢM 20%
Glossary

Phân tích giỏ hàng là gì? Chỉ số, ví dụ và trường hợp sử dụng

Powerdrill Bloom·
Phân tích giỏ hàng là gì? Chỉ số, ví dụ và trường hợp sử dụng

Phân tích giỏ hàng (market basket analysis) là một phương pháp để tìm ra những sản phẩm nào thường được mua cùng nhau trong cùng một giao dịch. Phương pháp này quét dữ liệu đơn hàng để tìm các tổ hợp sản phẩm xuất hiện thường xuyên hơn so với tỷ lệ ngẫu nhiên. Ba chỉ số mô tả cho mỗi mô hình này là: độ hỗ trợ (support), độ tin cậy (confidence) và độ nâng (lift). Các nhà bán lẻ và cửa hàng trực tuyến sử dụng phương pháp này để bán chéo, bán theo gói và sắp xếp sản phẩm.

Hướng dẫn này giải thích cách thức hoạt động của phương pháp này, cách tính toán từng chỉ số và cách đọc kết quả. Hướng dẫn cũng đề cập đến các thuật toán phổ biến, các trường hợp sử dụng chính và những hạn chế đáng lưu ý trước khi bạn áp dụng một quy luật.

Phân tích giỏ hàng là gì

Ý tưởng cơ bản đằng sau phân tích giỏ hàng rất đơn giản. Mỗi đơn hàng là một giỏ hàng chứa các sản phẩm. Trong số hàng nghìn giỏ hàng, một số sản phẩm liên tục xuất hiện cùng nhau. Quá trình phân tích sẽ tìm ra các tổ hợp đó và đo lường mức độ liên kết mạnh mẽ của từng tổ hợp.

Kết quả đầu ra là một tập hợp các quy tắc kết hợp (association rules). Một quy tắc sẽ có dạng "nếu một giỏ hàng có chứa A, thì nhiều khả năng nó cũng sẽ chứa C." A được gọi là vế tiền đề (antecedent), và C được gọi là vế hệ quả (consequent). Cả hai đều có thể là các sản phẩm đơn lẻ hoặc các nhóm sản phẩm.

Tài liệu hướng dẫn của mlxtend, một thư viện Python được sử dụng rộng rãi cho công việc này, đưa ra một ví dụ minh họa kinh điển. Tài liệu mô tả một quy tắc gợi ý rằng "những người mua tã giấy cũng có khả năng mua bia." Cho dù sự kết hợp đó có thực sự đúng tại một cửa hàng cụ thể nào đó hay không, nó vẫn thể hiện được dạng kết quả đầu ra.

Kỹ thuật này thuộc về một lĩnh vực rộng hơn gọi là học quy tắc kết hợp (association rule learning). Tài liệu của mlxtend lưu ý rằng thuật toán Apriori "được thiết kế để hoạt động trên các cơ sở dữ liệu chứa các giao dịch, chẳng hạn như hoạt động mua hàng của khách hàng tại một cửa hàng." Bán lẻ là nơi phương pháp này bắt đầu, nhưng bất kỳ dữ liệu nào được cấu trúc dưới dạng giỏ hàng đều có thể áp dụng được.

Cách thức hoạt động

Một quy trình phân tích giỏ hàng được thực hiện qua hai giai đoạn.

Giai đoạn một là tìm các tập mục phổ biến (frequent itemsets). Một tập mục là bất kỳ nhóm sản phẩm nào, ví dụ như {ốp lưng điện thoại, miếng dán cường lực}. Nó được coi là phổ biến khi xuất hiện trong ít nhất một tỷ lệ tối thiểu của tất cả các giao dịch. Bạn tự thiết lập mức tối thiểu đó, gọi là ngưỡng hỗ trợ (support threshold).

Giai đoạn hai là chuyển đổi các tập mục thành các quy tắc. Đối với mỗi tập mục phổ biến, thuật toán sẽ chia nó thành vế tiền đề và vế hệ quả, sau đó chấm điểm cho quy tắc thu được. Tài liệu của mlxtend mô tả việc tạo quy tắc là "một nhiệm vụ phổ biến trong việc khai phá các mẫu phổ biến (frequent patterns)."

Dữ liệu đầu vào luôn có cùng một cấu trúc. Mỗi hàng là một giao dịch, và mỗi cột đánh dấu xem một sản phẩm có nằm trong giao dịch đó hay không. Dữ liệu đơn hàng xuất ra từ hầu hết các nền tảng thương mại điện tử có thể được chuyển đổi sang định dạng này bằng thao tác xoay vùng dữ liệu (pivot).

Ba lựa chọn chuẩn bị dữ liệu sẽ định hình kết quả trước khi bất kỳ chỉ số nào được tính toán. Đầu tiên, hãy quyết định xem một giao dịch là gì, thông thường là một mã đơn hàng (order ID). Thứ hai, ghi nhận sự hiện diện thay vì số lượng, nghĩa là ba đơn vị của cùng một sản phẩm vẫn chỉ được tính là một lần xuất hiện. Thứ ba, chọn mức độ chi tiết. Các danh mục sản phẩm sẽ cho ra ít quy tắc hơn nhưng rộng hơn, trong khi các mã SKU riêng lẻ sẽ cho ra các quy tắc chính xác hơn nhưng cần nhiều dữ liệu hơn.

Ba chỉ số cốt lõi

Mỗi quy tắc đều đi kèm với ba con số. Việc đọc và kết hợp chúng lại với nhau là điều giúp phân biệt một quy tắc hữu ích với một sự trùng hợp ngẫu nhiên.

Độ hỗ trợ (Support)

Độ hỗ trợ là tỷ lệ của tất cả các giao dịch có chứa tập mục đó. Nếu có 60 trong số 1,000 đơn hàng chứa cả ốp lưng điện thoại và miếng dán cường lực, thì độ hỗ trợ của cặp sản phẩm đó là 0.06, tương đương 6%.

Độ hỗ trợ cho bạn biết mức độ phổ biến của một mẫu. Một quy tắc có độ hỗ trợ rất thấp có thể là có thật nhưng lại quá hiếm để có thể triển khai hành động thực tế.

Độ tin cậy (Confidence)

Độ tin cậy là xác suất xuất hiện vế hệ quả, với điều kiện giỏ hàng đã chứa vế tiền đề. Nó bằng độ hỗ trợ của cặp sản phẩm chia cho độ hỗ trợ của vế tiền đề.

Độ tin cậy có tính hướng. Độ tin cậy của việc A dẫn đến C thường khác với việc C dẫn đến A. Ví dụ thực tế dưới đây sẽ giải thích lý do tại sao.

Độ nâng (Lift)

Độ nâng so sánh tần suất thực tế của cặp sản phẩm với tần suất bạn kỳ vọng nếu hai sản phẩm đó không liên quan đến nhau. Nó bằng độ tin cậy của quy tắc chia cho độ hỗ trợ của vế hệ quả.

Tài liệu của mlxtend mô tả điểm tham chiếu một cách rõ ràng: "Nếu A và C độc lập với nhau, điểm Lift sẽ bằng chính xác 1." Chỉ số lift lớn hơn 1 nghĩa là các sản phẩm xuất hiện cùng nhau thường xuyên hơn so với ngẫu nhiên. Chỉ số lift nhỏ hơn 1 nghĩa là chúng ít khi xuất hiện cùng nhau hơn.

Một ví dụ thực tế

Hãy lấy ví dụ về một cửa hàng điện tử trực tuyến có 1,000 đơn hàng trong một tháng.

Chỉ số đo lường Giá trị
Đơn hàng chứa ốp lưng điện thoại 200
Đơn hàng chứa miếng dán cường lực 100
Đơn hàng chứa cả hai 60
Độ hỗ trợ của cặp sản phẩm 60 / 1,000 = 0.06
Độ tin cậy, từ ốp lưng điện thoại sang miếng dán cường lực 0.06 / 0.20 = 0.30
Độ tin cậy, từ miếng dán cường lực sang ốp lưng điện thoại 0.06 / 0.10 = 0.60
Độ nâng (Lift) 0.30 / 0.10 = 3.0

Đọc kết quả này theo cách dễ hiểu nhất: Ba trong số mười người mua ốp lưng điện thoại cũng mua thêm miếng dán cường lực. Sáu trong số mười người mua miếng dán cường lực cũng mua thêm ốp lưng điện thoại. Cặp sản phẩm này xuất hiện cùng nhau thường xuyên gấp ba lần so với tỷ lệ ngẫu nhiên.

Khi nhận được bảng quy tắc đầy đủ, hãy đọc nó theo một trình tự cố định. Sắp xếp theo độ nâng (lift) để tìm ra các mối liên kết mạnh mẽ nhất. Loại bỏ các quy tắc dưới mức hỗ trợ tối thiểu của bạn, vì chúng quá hiếm để có thể triển khai hành động. Sau đó, sử dụng độ tin cậy (confidence) để quyết định nên đưa ra gợi ý theo hướng nào.

Hai số liệu về độ tin cậy dẫn đến các hành động khác nhau. Gợi ý mua ốp lưng điện thoại cho những người mua miếng dán cường lực là đề xuất mạnh mẽ hơn, bởi vì 60% trong số họ đã mua nó rồi. Chỉ số lift là như nhau ở cả hai hướng, đó là lý do tại sao lift là thước đo tốt hơn để đánh giá sức mạnh của chính mối liên kết đó.

Các chỉ số khác đáng lưu ý

Ba chỉ số cốt lõi đã đáp ứng hầu hết các nhu cầu, nhưng các thư viện còn báo cáo thêm các chỉ số khác giúp lọc bỏ các quy tắc yếu.

Leverage đo lường khoảng cách giữa tần suất đồng xuất hiện quan sát được và tần suất kỳ vọng. Tài liệu của mlxtend định nghĩa nó bằng cách so sánh tần suất đồng xuất hiện quan sát được với "tần suất kỳ vọng nếu A và C độc lập với nhau." Chỉ số leverage bằng 0 nghĩa là hai sản phẩm độc lập.

Conviction đo lường mức độ phụ thuộc mạnh mẽ của vế hệ quả vào vế tiền đề. Giống như lift, giá trị bằng 1 biểu thị sự độc lập. Giá trị cao hơn có nghĩa là quy tắc ít bị vi phạm hơn so với tỷ lệ ngẫu nhiên.

Trong thực tế, hầu hết các đội ngũ đều sắp xếp các quy tắc theo lift, sau đó lọc theo mức hỗ trợ và độ tin cậy tối thiểu. Sự kết hợp đó sẽ làm nổi bật các mẫu mạnh mẽ, đủ phổ biến để tạo ra sự khác biệt và đáng tin cậy.

Các thuật toán: Apriori và FP-Growth

Apriori là thuật toán kinh điển. Tài liệu hướng dẫn của mlxtend trích dẫn nguồn từ bài báo năm 1994 của Agrawal và Srikant về các thuật toán nhanh để khai phá quy tắc kết hợp. Apriori xây dựng các tập mục theo từng cấp độ và cắt tỉa bất kỳ tập mục nào có các tập con không phổ biến, giúp giữ cho quá trình tìm kiếm ở mức có thể kiểm soát được.

FP-Growth đạt được các tập mục phổ biến tương tự bằng một con đường khác. Tài liệu của mlxtend mô tả nó là "một giải pháp thay thế phổ biến cho thuật toán Apriori đã được thiết lập." Nó xây dựng một cây mẫu phổ biến (frequent pattern tree) và không yêu cầu bước tạo ứng viên (candidate generation). Tài liệu cho biết điều này giúp nó "đặc biệt hấp dẫn đối với các tập dữ liệu lớn."

Ngưỡng hỗ trợ hoạt động theo cùng một cách trong cả hai thuật toán. Tài liệu của mlxtend đưa ra một ví dụ đơn giản: ở ngưỡng 0.5, một tập mục phổ biến phải xuất hiện trong ít nhất một nửa số giao dịch. Các ngưỡng trong ngành bán lẻ thường thấp hơn nhiều, bởi vì ngay cả các cặp sản phẩm phổ biến cũng chỉ xuất hiện trong một tỷ lệ nhỏ các đơn hàng.

Đối với hầu hết các câu hỏi kinh doanh, việc lựa chọn thuật toán chỉ thay đổi tốc độ xử lý chứ không thay đổi kết quả. Cả hai đều trả về cùng một tập mục cho cùng một ngưỡng hỗ trợ.

Phân tích giỏ hàng được sử dụng để làm gì

Phân tích giỏ hàng phổ biến nhất trong ngành bán lẻ và thương mại điện tử, nhưng các trường hợp sử dụng còn mở rộng hơn thế.

  • Bán chéo. Gợi ý vế hệ quả tại trang thanh toán khi vế tiền đề đã có trong giỏ hàng.
  • Bán theo gói. Đóng gói các sản phẩm có chỉ số lift cao thành một ưu đãi duy nhất.
  • Bố trí cửa hàng và trang web. Đặt các sản phẩm thường xuyên đi kèm gần nhau, trên kệ hàng hoặc trên trang sản phẩm.
  • Lập kế hoạch tồn kho. Lưu kho các sản phẩm đi kèm cùng nhau, để việc thiếu hụt một sản phẩm không âm thầm làm giảm doanh số của sản phẩm kia.
  • Nội dung và truyền thông. Coi một phiên hoạt động của người dùng như một giỏ hàng và tìm xem những bài viết hoặc video nào được xem cùng nhau.
  • Dịch vụ. Trong ngành ngân hàng hoặc viễn thông, coi các sản phẩm của mỗi khách hàng như một giỏ hàng và tìm xem những tổ hợp nào thường đi đôi với nhau.
  • Đánh giá chiến dịch. So sánh chỉ số lift của một cặp sản phẩm trước và trong suốt chiến dịch. Sự gia tăng đột biến cho thấy chiến dịch đã thay đổi hành vi mua hàng, chứ không chỉ là thay đổi về mặt số lượng.

Mỗi trường hợp sử dụng đều bắt đầu từ cùng một câu hỏi. Khi khách hàng chọn một thứ, họ thường có xu hướng chọn thêm thứ gì khác?

Hành động tiếp theo nên phù hợp với hướng của độ tin cậy. Việc bán theo gói sẽ hiệu quả khi cả hai sản phẩm đều được mong muốn mua cùng nhau. Một gợi ý tại trang thanh toán sẽ hiệu quả khi một sản phẩm dẫn đến sản phẩm kia một cách đáng tin cậy.

Phân tích giỏ hàng so với các phương pháp liên quan

Phân tích giỏ hàng thường bị nhầm lẫn với phân khúc khách hàng và các công cụ gợi ý. Bảng dưới đây cho thấy sự khác biệt giữa chúng.

Phương pháp Đơn vị phân tích Câu hỏi chính Kết quả đầu ra điển hình
Phân tích giỏ hàng Giao dịch Những sản phẩm nào đi cùng nhau? Các quy tắc kết hợp với độ hỗ trợ, độ tin cậy và độ nâng
Phân khúc khách hàng Khách hàng Những khách hàng nào giống nhau? Các nhóm khách hàng có chung đặc điểm
Lọc cộng tác (Collaborative filtering) Lịch sử khách hàng và sản phẩm Người này sẽ thích gì tiếp theo? Các gợi ý cá nhân hóa
Phân tích thuần tập (Cohort analysis) Các nhóm theo ngày bắt đầu Hành vi thay đổi như thế nào theo thời gian? Các biểu đồ và bảng tỷ lệ giữ chân khách hàng

Các phương pháp này bổ sung cho nhau. Phân khúc khách hàng có thể cho bạn biết ai là những khách hàng có giá trị cao của bạn, và phân tích giỏ hàng có thể cho bạn biết những khách hàng đó mua gì cùng nhau. Hướng dẫn xây dựng báo cáo phân khúc khách hàng của chúng tôi đề cập đến phần đầu tiên, và bài giải thích về phân tích thuần tập của chúng tôi đề cập đến khía cạnh thời gian.

Những hạn chế đáng lưu ý

Các quy tắc từ phân tích giỏ hàng rất hữu ích, nhưng chúng rất dễ bị diễn giải quá mức.

Đồng xuất hiện không phải là quan hệ nhân quả. Một cặp sản phẩm có chỉ số lift cao cho bạn biết hai sản phẩm đó được mua cùng nhau. Nó không cho bạn biết rằng việc mua sản phẩm này là nguyên nhân dẫn đến việc mua sản phẩm kia.

Các ngưỡng thiết lập sẽ định hình kết quả. Nếu đặt độ hỗ trợ quá cao, bạn sẽ bỏ lỡ các cặp sản phẩm ngách nhưng có giá trị. Nếu đặt quá thấp, bạn sẽ nhận được hàng nghìn quy tắc, trong đó có nhiều quy tắc chỉ là nhiễu.

Các sản phẩm hiếm gặp sẽ bị bỏ sót. Một sản phẩm đắt tiền chỉ được mua vài lần một tháng có thể không bao giờ đạt đến ngưỡng hỗ trợ, ngay cả khi các mối liên kết đi kèm của nó rất mạnh mẽ.

Việc trả hàng và hủy đơn hàng làm sai lệch giỏ hàng. Nếu các sản phẩm bị trả lại vẫn nằm trong dữ liệu, quá trình phân tích sẽ tính cả những cặp sản phẩm mà khách hàng đã hủy bỏ. Hướng dẫn của chúng tôi về báo cáo trả hàng sản phẩm sẽ hướng dẫn cách đo lường khía cạnh đó một cách riêng biệt.

Nhiều cặp sản phẩm đồng nghĩa với việc xuất hiện một số mẫu giả. Một danh mục gồm 500 sản phẩm có hơn 100,000 cặp sản phẩm tiềm năng. Một số cặp sẽ cho thấy chỉ số lift cao chỉ do ngẫu nhiên. Hãy xác nhận lại các quy tắc quan trọng trên một khoảng thời gian dữ liệu thứ hai trước khi thực hiện hành động dựa trên chúng.

Yếu tố thời gian rất quan trọng. Các mẫu hành vi trong mùa lễ hội có thể không còn đúng vào mùa xuân. Hãy chạy phân tích trên các khoảng thời gian tương đương trước khi bạn thay đổi cách bố trí hoặc một gói sản phẩm.

Cách thực hiện phân tích mà không cần viết mã

Cách làm cổ điển là sử dụng Python, với một thư viện như mlxtend, hoặc SQL để đếm các cặp sản phẩm. Cả hai cách đều yêu cầu định hình lại dữ liệu đơn hàng thành mỗi hàng cho một giao dịch và mỗi cột cho một sản phẩm.

Một bảng tính có thể xử lý một phiên bản quy mô nhỏ. Một bảng xoay dữ liệu (pivot table) sẽ đếm số đơn hàng cho mỗi sản phẩm, và công thức COUNTIFS sẽ đếm số đơn hàng chứa cả hai sản phẩm trong một cặp. Hạn chế ở đây là quy mô, vì số lượng cặp sản phẩm tiềm năng tăng lên rất nhanh theo danh mục sản phẩm.

Một không gian làm việc AI có thể thực hiện việc định hình lại và đếm dữ liệu từ một tệp xuất đơn hàng thông thường. Powerdrill Bloom hỗ trợ tải lên các tệp Excel và CSV trên mọi gói dịch vụ. Bạn có thể hỏi những sản phẩm nào thường được mua cùng nhau nhất và yêu cầu cung cấp độ hỗ trợ, độ tin cậy và độ nâng cho các cặp sản phẩm hàng đầu.

Hãy bắt đầu bằng việc chạy phân tích ở cấp độ danh mục để thấy các mẫu hành vi chung. Sau đó, chạy lại ở cấp độ SKU cho các danh mục quan trọng nhất.

Kiểm tra kết quả đầu ra giống như cách bạn kiểm tra một đoạn mã. Xác nhận số lượng giao dịch, kiểm tra ngẫu nhiên một cặp sản phẩm bằng tay và đảm bảo các đơn hàng bị trả lại đã được loại trừ. Trang CSV AI assistant sẽ hiển thị quy trình làm việc ưu tiên tệp tin.

Nếu bạn đã có sẵn tệp xuất đơn hàng, bạn có thể dùng thử Powerdrill Bloom trên tệp đó và so sánh các cặp sản phẩm hàng đầu với những gì đội ngũ của bạn kỳ vọng.

Các câu hỏi thường gặp

Phân tích giỏ hàng hiểu một cách đơn giản là gì?

Đó là một cách để tìm ra những sản phẩm nào khách hàng có xu hướng mua cùng nhau. Phương pháp này xem xét nhiều đơn hàng và đo lường tần suất xuất hiện của mỗi tổ hợp sản phẩm, so với tỷ lệ ngẫu nhiên.

Chỉ số lift trong phân tích giỏ hàng là gì?

Chỉ số lift so sánh tần suất hai sản phẩm xuất hiện cùng nhau với tần suất chúng xuất hiện nếu không liên quan đến nhau. Chỉ số lift bằng 1 nghĩa là không có sự liên kết. Lớn hơn 1 nghĩa là chúng xuất hiện cùng nhau nhiều hơn mong đợi, và nhỏ hơn 1 nghĩa là ít hơn.

Làm thế nào để tính toán độ hỗ trợ và độ tin cậy?

Độ hỗ trợ là số lượng giao dịch chứa tập mục chia cho tổng số giao dịch. Độ tin cậy là độ hỗ trợ của cặp sản phẩm chia cho độ hỗ trợ của vế tiền đề. Cả hai thường được hiển thị dưới dạng số thập phân hoặc tỷ lệ phần trăm.

Thuật toán nào được sử dụng cho phân tích giỏ hàng?

Apriori là thuật toán kinh điển, và FP-Growth là một giải pháp thay thế phổ biến có tốc độ nhanh hơn. Cả hai đều tìm kiếm các tập mục phổ biến từ dữ liệu giao dịch, sau đó các quy tắc sẽ được tạo ra và chấm điểm từ các tập mục đó.

Bạn có thể thực hiện phân tích giỏ hàng trong Excel không?

Có, đối với các tập dữ liệu nhỏ. Một bảng xoay dữ liệu (pivot table) sẽ đếm số đơn hàng cho mỗi sản phẩm, và công thức COUNTIFS sẽ đếm số đơn hàng chứa một cặp sản phẩm. Đối với các danh mục sản phẩm lớn, số lượng cặp sản phẩm tăng lên rất nhanh, vì vậy một đoạn mã hoặc một công cụ AI sẽ thực tế hơn.

Nguồn tham khảo: mlxtend, Association rules · mlxtend, Apriori. Ví dụ thực tế sử dụng các số liệu minh họa.