Học không giám sát - vòng đời, khoảng cách, phân khúc
Tổng quan học không giám sát: vòng đời khai phá sáu giai đoạn, ba khoảng cách Euclid Manhattan cosine và phân khúc marketing.
Trung bìnhThuật toán ~60 phút
Ôn lại trước khi học
Giới thiệu
Bài này học cách máy tự tìm nhóm khách. Bạn đo khoảng cách rồi phân khúc thị trường.
Kiến thức cần nhớ
Học không giám sát là gì
- Tự tìm cấu trúc ẩn trong dữ liệu không nhãn.
- Việc chính: gom cụm, giảm chiều, tìm luật chung.
- Không có thầy chấm đúng sai từng ví dụ.
- Ví dụ đời thường: tự xếp sách theo màu không ai bảo.
Vòng đời 6 giai đoạn
- Hiểu bài toán kinh doanh cần gì.
- Hiểu dữ liệu đang có gì.
- Làm sạch và chuẩn hóa dữ liệu.
- Chọn mô hình gom cụm.
- Ví dụ đời thường: nấu ăn từ đi chợ tới dọn mâm.
Ba khoảng cách
- Euclid là đường chim bay, hợp số liên tục.
- Manhattan là đi theo lưới phố, đỡ sợ ngoại lệ.
- Cosine đo hướng, hợp văn bản dài ngắn khác nhau.
- Ví dụ đời thường: bay thẳng, đi taxi, so chủ đề.
| Khoảng cách | Hợp dữ liệu nào |
|---|---|
| Euclid | Số liên tục đã chuẩn hóa |
| Manhattan | Rời rạc, nhiều ngoại lệ |
| Cosine | Văn bản, chỉ cần hướng |
Ví dụ
- Input: 2 vector giống hệt nhau. Output: cả 3 khoảng cách bằng 0.
- Giải thích: giống nhau thì khoảng cách bằng không.
💻 Bài tập
Ngôn ngữ: Python 3 với NumPy. Không dùng scipy.spatial.distance hay sklearn cho Bài 1-2. Nộp vào day-022/.
Bài 1: Ba hàm khoảng cách
| Hàm | Công thức | Ghi chú |
|---|---|---|
euclidean(a, b) | ||
manhattan(a, b) | ||
cosine_distance(a, b) | Vector 0 thì ném ValueError |
Mọi hàm kiểm tra 2 vector cùng độ dài.
a=[1,2,3], b=[1,2,3] -> 0, 0, 0
a=[0,0], b=[3,4] -> euclid 5, manhattan 7, cosine ValueError
a=[1,0], b=[0,1] -> euclid 1.414, manhattan 2, cosine 1
a=[1,1], b=[10,10] -> euclid 12.73, cosine 0 (cùng hướng)
Bài 2: Chuẩn hóa và ma trận khoảng cách
minmax_scale(X): mỗi cột về[0, 1]. Cột hằng số thì giữ 0.zscore(X): mỗi cột trung bình 0, độ lệch chuẩn 1.pairwise(X, metric): trả ma trận .
Dữ liệu khách hàng (tuổi, thu nhập triệu/tháng, số lần mua/tháng):
An [25, 12, 8]
Bình [26, 120, 1]
Chi [55, 14, 7]
Dũng [24, 13, 9]
In khách gần An nhất khi chưa chuẩn hóa và sau z-score. Giải thích vì sao đáp án đổi.
Bài 3: Văn bản và cosine (nâng cao)
- Biến 5 câu thành vector đếm từ (bag of words tự cài, tách theo khoảng trắng, chữ thường).
- Câu thứ 5 là câu thứ 1 lặp lại 3 lần. Chứng minh cosine distance giữa 1 và 5 bằng 0, còn Euclid thì lớn.
- Tìm cặp câu gần nhau nhất theo cosine.
✅ Tiêu chí hoàn thành
- Test mẫu pass với sai số
1e-3(math.isclose). - Bài 2 có giải thích bằng số tại sao thu nhập lấn át khi chưa chuẩn hóa.
- Bài 3 chứng minh được cosine bỏ qua độ dài văn bản.
- Viết được 6 giai đoạn vòng đời bằng lời của mình, gắn với bài toán phân khúc khách hàng.
❓ Câu hỏi ôn tập
- Học không giám sát khác có giám sát ở đâu?
- Vòng đời gồm những giai đoạn nào?
- Ba khoảng cách dùng khi nào?
- Phân khúc khách để làm gì?
🌕 Bạn đã hoàn thành ngày 22. Làm hết bài tập phía trên rồi sang ngày tiếp theo.