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

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ướcViệc làmBẫy
Làm sạchĐiền thiếu, bỏ ngoại lệBỏ luôn tín hiệu
ScalingChuẩn hóa về chung thangTính trên cả test gây rò rỉ
Chia tậpTrain, valid, test riêngChỉ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.

  1. 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ớpfit(X) học gìtransform(X) làm gì
StandardScalermean, std mỗi cột(x - mean) / std, cột std = 0 thì giữ 0
MinMaxScalermin, maxvề [0, 1]
OneHotEncodertập giá trị mỗi cột phân loạicột nhị phân. Giá trị lạ lúc transform thì toàn 0
SimpleImputertrung vị mỗi cộtđiền NaN
Pipeline(steps)gọi fit_transform lần lượtgọ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).

  1. Sai: fit scaler trên toàn bộ dữ liệu rồi mới chia train/test.
  2. Đúng: chia trước, fit trên train, transform cả hai.
  3. 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.
  4. 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 sklearn vớ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.

Bớt paste mù, hiểu sâu từng dòng mình viết.

180 Days Challenge. 180 ngày cai nghiện vibe code.