Tìm Tương Tự & Phân Cụm — Ví Dụ Thật Từ 109 Loại Whiskey

Tóm tắt nhanh: Tìm tương tự và phân cụm là cách máy nhóm các đối tượng “giống nhau” mà không cần ai gán nhãn trước. Bài này giải thích qua ví dụ thật: 1 nhà khoa học dữ liệu biến 109 loại rượu whiskey thành các con số để máy tự tìm ra loại nào giống loại nào.
Ví dụ thật: 109 loại whiskey ScotlandNguyên lý: k-means clusteringỨng dụng: gợi ý sản phẩm/khách hàng

2 bài trước đều cần dữ liệu có nhãn sẵn (biết trước khách nào rời mạng, nhà nào giá bao nhiêu). Nhưng nhiều bài toán thực tế không có nhãn — bạn chỉ có dữ liệu thô và muốn biết: “cái này giống cái gì?”, “có bao nhiêu nhóm tự nhiên trong dữ liệu này?”. Đây là lúc dùng similarity (tương tự)clustering (phân cụm).

Ví dụ thật: làm sao máy “biết” 2 loại whiskey giống nhau?

1 người sành whiskey thử được 1 loại ngon (Bunnahabhain) và muốn tìm loại khác tương tự. Vấn đề: “tương tự” vốn là cảm nhận chủ quan qua vị giác — làm sao biến nó thành dữ liệu số để máy xử lý?

Cách làm: lấy ghi chú nếm thử (mô tả bằng chữ) của 109 loại whiskey, rồi mã hoá thành 5 nhóm đặc điểm số hoá (màu, mùi, vị chính, vị nếm, hậu vị) — mỗi nhóm có nhiều giá trị con, tổng cộng 68 đặc điểm nhị phân (có/không) cho mỗi loại whiskey.

Từ ghi chú nếm thử → vector đặc điểmGhi chú nếm thử (văn bản)“Mùi khói than, hương gỗ hạnh nhân,vị ngọt nhẹ, hậu vị ấm và mượt”— giống ghi chú thật của Bunnahabhain5 đặc điểm số hoá (68 giá trị nhị phân)1. Màu: vàng, hổ phách, vàng cổ…2. Mùi (Nose): khói, ngọt, cỏ tươi…3. Vị chính (Body): mềm, đầy, béo…4. Vị nếm (Palate): trái cây, mặn…5. Hậu vị (Finish): ấm, mượt, khói…→ mỗi whiskey = 1 vector 68 chiềuwhiskey càng “gần” nhau trong không gian này→ vị càng giống nhau
Biến ghi chú nếm thử dạng văn bản thành vector số — bước quan trọng nhất để máy có thể “so sánh” độ giống nhau.

Khi mỗi whiskey đã là 1 dãy số, máy có thể tính “khoảng cách” giữa 2 whiskey bất kỳ — khoảng cách càng nhỏ, vị càng giống nhau. Đây chính là nguyên lý gợi ý sản phẩm mà nhiều nền tảng thương mại điện tử vẫn dùng: “khách mua món này cũng thường mua món kia.”

Từ “tìm tương tự từng cặp” đến “tự động chia nhóm”

Nếu chỉ cần tìm 1 whiskey giống 1 whiskey khác, so khoảng cách từng cặp là đủ. Nhưng nếu muốn biết “có bao nhiêu nhóm phong cách whiskey tự nhiên tồn tại”, ta cần phân cụm (clustering): tự động chia toàn bộ tập dữ liệu thành các nhóm, sao cho các thành viên trong 1 nhóm giống nhau hơn là giống thành viên nhóm khác.

Thuật toán phổ biến nhất là k-means: chọn trước số nhóm (k), rồi lặp đi lặp lại việc gán mỗi điểm dữ liệu vào nhóm gần nhất, tính lại “tâm” của mỗi nhóm, và lặp lại cho đến khi ổn định. Ứng dụng thực tế: phân nhóm khách hàng theo hành vi mua sắm, phân nhóm cổ phiếu theo đặc điểm tài chính tương đồng.

Xem thêm

Video này (tiếng Anh) minh họa trực quan từng bước thuật toán k-means — cách chọn tâm nhóm ban đầu, gán điểm dữ liệu, và lặp lại đến khi ổn định.

Checklist tự kiểm tra sau bài này
  • Bạn giải thích được vì sao cần biến dữ liệu mô tả (văn bản, cảm nhận) thành vector số trước khi so sánh.
  • Bạn phân biệt được “tìm tương tự” (so từng cặp) với “phân cụm” (tự chia nhóm cả tập dữ liệu).
  • Bạn nêu được 1 ứng dụng phân cụm trong lĩnh vực bạn quan tâm (khách hàng, cổ phiếu, sản phẩm…).
Cần nhớ

“Giống nhau” luôn cần được định nghĩa rõ bằng số trước khi máy xử lý được — không có sẵn 1 định nghĩa “giống” chung cho mọi bài toán. Cách bạn chọn đặc điểm để mô tả dữ liệu (như 5 nhóm đặc điểm whiskey) sẽ quyết định kết quả phân cụm có thực sự hữu ích hay không.

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

K-means có tự biết nên chia thành bao nhiêu nhóm không?

Không, bạn phải chọn trước số nhóm (k). Có kỹ thuật gọi là “elbow method” giúp chọn k hợp lý bằng cách thử nhiều giá trị k và xem mức độ cải thiện, sẽ thực hành ở Module 4.

Phân cụm có cần dữ liệu có nhãn sẵn không?

Không — đây chính là điểm khác biệt lớn nhất so với phân loại/hồi quy ở 2 bài trước. Phân cụm thuộc nhóm “học không giám sát” (unsupervised learning), không cần nhãn trước.

Ứng dụng phân cụm vào phân tích đầu tư như thế nào?

Ví dụ: phân cụm các cổ phiếu theo đặc điểm tài chính (tỷ lệ nợ, tăng trưởng doanh thu, biên lợi nhuận…) để tìm ra các nhóm công ty có hồ sơ rủi ro/tăng trưởng tương tự nhau.

Nguồn: Foster Provost & Tom Fawcett, Data Science for Business, Chương 6 “Similarity, Neighbors, and Clusters” (O’Reilly, 2013) — ví dụ whiskey dẫn theo nghiên cứu gốc của Lapointe & Legendre (1994) được trích trong sách. Nội dung diễn giải lại bằng lời riêng, không sao chép nguyên văn.