Logistic Regression
Hồi quy logistic
Bạn được đưa dữ liệu 'đã đậu phỏng vấn hay chưa' theo điểm IELTS. Đầu ra cần là gì để hữu dụng nhất cho nhà tuyển dụng?
Cái "kẹp" biến số bất kỳ thành xác suất
Tưởng tượng bạn có một máy sản xuất số. Đầu vào là bất kỳ số thực nào — có thể +42 hoặc −13 000. Bây giờ bạn kẹp cỗ máy đó qua một cái ống hình chữ S: mọi số âm rất nhỏ sẽ bị nén về gần 0, mọi số dương rất lớn sẽ bị nén về gần 1, và số 0 sẽ nằm đúng giữa (bằng 0.5).
Cái ống đó chính là hàm sigmoid. Logistic chỉ có ba phần: hồi quy tuyến tính để tính một con số, sigmoid để ép vào [0, 1], và ngưỡngđể chốt "có" hay "không".
1. Tuyến tính
Tính z = w·x + b cho mỗi mẫu dữ liệu, giống hồi quy tuyến tính.2. Sigmoid
Ép z qua σ(z) = 1 / (1 + e^(−z)). Giờ bạn có một số trong (0, 1) — xác suất.3. Ngưỡng
Nếu xác suất ≥ ngưỡng (mặc định 0.5) → báo lớp 1. Ngược lại → lớp 0.Hình minh họa
Playground — chỉnh trọng số w, bias b, và ngưỡng
Dưới đây là một SVG sống. Nhấp vào canvas để thêm điểm (chọn lớp 0 hoặc 1), kéo điểm để di chuyển, và kéo các thanh trượt bên dưới để xem đường cong sigmoid uốn lại và biên quyết định (đường tím) di chuyển theo thời gian thực.
Viền vàng = dự đoán sai. Kéo điểm hoặc chỉnh slider phía dưới để quan sát biên quyết định (đường tím nét đứt) di chuyển. Đường xanh dương là đường cong sigmoid cho P(y=1) theo trục ngang.
- Kéo trọng số wlên: đường sigmoid dốc hơn — mô hình "quyết đoán" hơn, vùng "không chắc" thu hẹp lại.
- Kéo bias b: đường cong dịch ngang — biên quyết định di chuyển qua trái hoặc phải.
- Đặt ngưỡng 90% rồi quan sát: nhiều điểm lớp 1 bị tính là lớp 0 — recall giảm, đúng như lý thuyết.
Mini playground — Xác suất ↔ Odds ↔ Log-odds
Logistic "nói chuyện" với ba con số khác nhau mô tả cùng một sự kiện. Kéo thanh trượt để thấy ba cách biểu diễn chuyển qua nhau — bạn sẽ hiểu vì sao "log của tỉ số" lại là ngôn ngữ tự nhiên của mô hình.
Logistic học tuyến tínhtrên log-odds — nghĩa là khi đặc trưng x tăng 1 đơn vị, log-odds tăng đúng w đơn vị. Đây là lý do hệ số w của logistic có thể diễn giải được trực tiếp: "tăng thêm 1 giờ học" làm log-odds đậu phỏng vấn tăng đúng w.
Vì sao tuyến tính "vỡ" khi gán cho phân loại?
Chuyển qua lại hai chế độ để thấy sự khác nhau về output.
Đường thẳng có thể cho output âm hoặc lớn hơn 1. Nhưng xác suất phải nằm trong [0, 1]! Thêm vài điểm ngoại lai, đường thẳng bị kéo hẳn đi — biên phân loại dịch sai theo.
Tháo rời cơ chế — từng bước một
Ghép dữ liệu vào tuyến tính. Với mỗi mẫu (ví dụ: điểm IELTS = 6.5), ta tính z = w·x + b. Trọng số w càng lớn, đặc trưng càng "có tiếng nói" trong quyết định. Bias b dịch đường cong qua trái/phải. Đây là bước giống hệt hồi quy tuyến tính.
Hồi quy logistic = hồi quy tuyến tính + hàm sigmoid.Cỗ máy bên trong vẫn là đường thẳng w·x + b. Chỉ khác là: đầu ra bị ép qua một "cái ống chữ S" để thành xác suất (0, 1). Biên quyết định chính là nơi xác suất bằng ngưỡng.
Output của hàm sigmoid σ(z) = 1 / (1 + e^(−z)) luôn nằm trong khoảng nào?
Một bệnh viện dùng logistic để dự đoán nguy cơ nhồi máu cơ tim. Sai khi nào tốn kém hơn?
Giải thích
Sau khi đã cảm nhận bằng tay, đây là ba công thức duy nhất bạn cần biết về hồi quy logistic. Mỗi công thức đi kèm một hình nhỏ — đừng học thuộc, hãy nhìn.
1) Hàm sigmoid — "cái ống" ép số thực vào (0, 1)
z là "điểm số" mà mô hình tuyến tính tính được. Sigmoid ép điểm số đó thành xác suất "đúng lớp 1". Z = 0 ↔ p = 0.5 (ranh giới).
2) Log-odds — cách logistic "hiểu" xác suất ngược lại
Đây là công thức đảo ngược của sigmoid. Nó nói: "nếu tỉ số p : (1 − p) là 2:1, log của nó là log(2) ≈ 0.69 — và bằng với z = w·x + b". Nhờ thế, ta có thể học w và b bằng cách tối thiểu loss, vì mối quan hệ giữa đặc trưng x và log-odds là tuyến tính.
3) Binary cross-entropy — hàm mất mát
Với mẫu có nhãn thật y = 1, chỉ phần đầu −log(p̂) "bật". Nếu mô hình đoán p̂ = 0.99 (đúng rất chắc) → loss ≈ 0. Nếu đoán p̂ = 0.01 (sai rất chắc) → loss tiến về +∞. Chính đặc tính "phạt cực mạnh khi tự tin nhưng sai" của −log là lý do cross-entropy hợp cho phân loại.
Khi nào nên đặt ngưỡng khác 0.5?
Ngưỡng thấp (0.2 − 0.4)
Khi bỏ sót rất tốn kém: ung thư, gian lận thẻ tín dụng, lọc khủng bố. Ưu tiên recall — chấp nhận thêm ca cần xét lại.Ngưỡng mặc định (0.5)
Cả hai loại sai có giá tương đương. Điểm khởi đầu cho mọi dự án chưa có ràng buộc kinh doanh rõ ràng.Ngưỡng cao (0.7 − 0.9)
Khi báo nhầm rất tốn kém: email marketing (không muốn spam quá tay), quyết định chặn tài khoản VIP. Ưu tiên precision.Bốn bài toán thường gặp — nên đặt ngưỡng nào?
| Bài toán | Cái gì tốn kém hơn? | Ngưỡng gợi ý |
|---|---|---|
| Phát hiện ung thư sớm | Bỏ sót (tử vong) | 0,20 − 0,35 |
| Gian lận thẻ tín dụng | Bỏ sót (mất tiền) | 0,30 − 0,50 |
| Lọc spam Gmail | Báo nhầm (email sếp) | 0,70 − 0,85 |
| Gợi ý sản phẩm | Hai loại sai gần như nhau | 0,50 |
Chọn ngưỡng là một quyết định kinh doanh, không phải chỉ là tinh chỉnh mô hình. Nếu bạn không biết chọn số nào, bắt đầu 0,5 rồi điều chỉnh dựa trên chi phí thực tế mỗi loại lỗi.
- Logistic = tuyến tính w·x + b + sigmoid σ — ép số bất kỳ vào khoảng (0, 1).
- Biên quyết định là nơi xác suất bằng ngưỡng (mặc định 0.5, nhưng bạn có thể chỉnh).
- Cross-entropy là hàm mất mát — lồi, phạt nặng khi mô hình tự tin nhưng sai.
- Ngưỡng cao → precision tăng, recall giảm. Ngưỡng thấp → bắt nhiều ca dương hơn.
- Chỉ phân tách được bằng đường thẳng — dữ liệu cong cần SVM kernel hoặc mạng nơ-ron.
Kiểm tra hiểu biết
Vì sao không dùng hồi quy tuyến tính cho bài toán phân loại 'có/không'?