Học có giám sát - pipeline, scaling và phân loại bài toán
Tổng quan học có giám sát: điều kiện cho phép, phân biệt phân loại và hồi quy, pipeline đặc trưng, scaling và thử thách classifiers.
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 học có giám sát đoán từ dữ liệu gắn nhãn. Khung này giúp phân biệt phân loại và hồi quy rõ ràng.
Kiến thức cần nhớ
Học có giám sát là gì
- Vào là cặp dữ liệu kèm nhãn đúng để học theo.
- Mục tiêu là đoán đúng trên dữ liệu mới chưa thấy.
- Giả thiết: huấn luyện và tương lai cùng phân phối.
- Ví dụ đời thường: học từ đề có đáp án rồi thi đề mới.
Phân loại và hồi quy
- Phân loại đoán nhãn rời rạc như rác hay không rác.
- Hồi quy đoán số liên tục như giá nhà bao nhiêu.
- Phân loại đếm tỉ lệ đúng, hồi quy đo khoảng cách sai.
- Ví dụ đời thường: xếp thư vào hộc so với đoán cân nặng.
Pipeline và scaling
- Pipeline: làm sạch, mã hóa, tạo đặc trưng, scaling.
- Scaling đưa mọi đặc trưng về cùng thang đo.
- Học tham số scaling trên train rồi áp y nguyên cho test.
- Ví dụ đời thường: đổi mọi tiền về cùng đơn vị trước khi cộng.
| Bước | Việc làm | Bẫy |
|---|---|---|
| Làm sạch | Điền thiếu, bỏ ngoại lệ | Bỏ luôn tín hiệu |
| Scaling | Chuẩn hóa về chung thang | Tính trên cả test gây rò rỉ |
| Chia tập | Train, valid, test riêng | Chỉnh trên test là tự lừa |
Ví dụ
- Input: lọc thư rác, giá nhà, chấm tín dụng -> Output: phân loại đúng nhánh mỗi bài.
- Câu này kiểm tra nhìn đầu ra là biết nhánh nào.
- Input: pipeline chạy 2 lần cùng hạt giống -> Output: điểm số y hệt nhau.
- Câu này kiểm tra tính tái lập của pipeline.
💻 Bài tập
Ngôn ngữ: Python 3 với NumPy và pandas. Bài 3 được dùng sklearn để đối chiếu. Nộp vào day-052/.
Bài 1: Phân loại bài toán
Viết problems.md phân loại 8 bài toán sau thành phân loại nhị phân, phân loại nhiều lớp, hồi quy. Mỗi bài ghi: đầu vào, nhãn, metric phù hợp.
- Lọc thư rác. 2. Đoán giá nhà. 3. Nhận dạng chữ số viết tay. 4. Dự báo doanh thu tuần sau. 5. Duyệt khoản vay. 6. Chấm điểm tín dụng 300-850. 7. Phân loại cảm xúc 3 mức. 8. Đoán thời gian giao hàng (phút).
Bài 2: Tự cài các bước pipeline
| Lớp | fit(X) học gì | transform(X) làm gì |
|---|---|---|
StandardScaler | mean, std mỗi cột | (x - mean) / std, cột std = 0 thì giữ 0 |
MinMaxScaler | min, max | về [0, 1] |
OneHotEncoder | tập giá trị mỗi cột phân loại | cột nhị phân. Giá trị lạ lúc transform thì toàn 0 |
SimpleImputer | trung vị mỗi cột | điền NaN |
Pipeline(steps) | gọi fit_transform lần lượt | gọi transform lần lượt |
Viết train_test_split(X, y, test_size, seed) tự cài.
StandardScaler fit trên [[1],[2],[3]] -> mean 2, std 0.8165; transform [[2]] -> [[0]]
OneHotEncoder fit ["đỏ","xanh"]; transform ["vàng"] -> [0, 0]
Bài 3: Rò rỉ dữ liệu (nâng cao)
Dùng bộ dữ liệu giá nhà (ví dụ California Housing).
- Sai: fit scaler trên toàn bộ dữ liệu rồi mới chia train/test.
- Đúng: chia trước, fit trên train, transform cả hai.
- Dùng hồi quy tuyến tính của
sklearn. In MSE test của 2 cách. Lặp với 20 seed. - Chạy pipeline 2 lần cùng seed: kết quả phải giống hệt.
Viết 3 câu giải thích vì sao cách 1 là rò rỉ dù chênh lệch nhỏ.
✅ Tiêu chí hoàn thành
-
problems.mdđủ 8 bài. - Các bước pipeline khớp
sklearnvới sai số1e-9. - Bài 3 có bảng MSE 2 cách qua 20 seed.
- Pipeline tất định khi cố định seed.
❓ Câu hỏi ôn tập
- Học có giám sát cần dữ liệu dạng gì?
- Phân loại khác hồi quy ở đầu ra nào?
- Pipeline gồm những bước nào?
- Vì sao không scale trên cả tập?
🌕 Bạn đã hoàn thành ngày 52. Làm hết bài tập phía trên rồi sang ngày tiếp theo.