Cây quyết định (Decision Tree)
1. Tổng quan
A. Định nghĩa
Mô hình học máy dựa trên học có giám sát, phân chia dữ liệu lặp lại theo thuộc tính (biến) (recursive partitioning) để tạo ra tập quy tắc dạng cây, từ đó thực hiện phân loại (Classification) và hồi quy (Regression). Điểm cốt lõi là kết quả học được biểu diễn thành các quy tắc if-then mà con người có thể đọc trực tiếp.
Thế mạnh lớn nhất của cây quyết định nằm ở 'khả năng diễn giải (tính giải thích, interpretability)'. Như quy tắc "nếu thu nhập hằng tháng từ 3 triệu won trở lên và không có lịch sử nợ quá hạn trong 12 tháng gần nhất thì phê duyệt khoản vay", lý do vì sao mô hình đưa ra quyết định đó được thể hiện minh bạch dưới dạng quy tắc. Đây là tính chất hoàn toàn trái ngược với mạng nơ-ron sâu (hộp đen), nơi hàng triệu trọng số đan xen phi tuyến khiến việc truy vết căn cứ phán đoán sau đó trở nên khó khăn. Đây chính là lý do cây quyết định luôn được ưa chuộng trong các lĩnh vực bắt buộc phải giải thích căn cứ phán đoán để đáp ứng quy định, giám sát và tranh tụng như tài chính (cho vay, chấm điểm tín dụng), y tế (hỗ trợ chẩn đoán), pháp luật và khu vực công (quyết định hành chính).
Việc cách thức hoạt động giống trò chơi 'hai mươi câu hỏi' cũng có giá trị thực tiễn lớn. Bắt đầu từ gốc, mô hình đặt từng câu hỏi (điều kiện thuộc tính) để thu hẹp dữ liệu và đi đến câu trả lời cuối cùng, nên ngay cả nhân viên nghiệp vụ không am hiểu thống kê hay học máy cũng có thể lần theo cây và chấp nhận kết quả. Quy tắc có thể được chuyển thẳng thành sổ tay nghiệp vụ hoặc bảng tiêu chí thẩm định, nên khoảng cách giữa mô hình và quy định vận hành nhỏ — đây cũng là đặc điểm phân biệt với các mô hình khác.
B. Bối cảnh ra đời và sự cần thiết
Khi việc ra quyết định dựa trên dữ liệu lan rộng, ngày càng có nhiều lĩnh vực mà trách nhiệm giải trình (accountability) 'vì sao lại dự đoán như vậy' quan trọng không kém 'đã dự đoán điều gì'. Quyền yêu cầu giải thích đối với quyết định tự động hóa trong GDPR của EU, cũng như các quy định về giải thích và phản đối quyết định tự động hóa trong Luật Thông tin tín dụng và Luật Bảo vệ thông tin cá nhân tại Hàn Quốc, về thực chất đã bắt buộc việc đưa ra căn cứ cho kết quả dự đoán. Cây quyết định là mô hình tiêu biểu cung cấp đồng thời dự đoán và giải thích, tạo nền tảng lý thuyết và thực tiễn cho AI có thể giải thích (XAI, eXplainable AI) đang nổi lên gần đây.
Ngoài ra, trong các lĩnh vực tài chính, sản xuất, phân phối nơi dữ liệu có cấu trúc (dạng bảng) chiếm ưu thế, các mô hình dựa trên cây (đặc biệt là ensemble sẽ trình bày sau) thường đạt hiệu năng cao với ít dữ liệu và tiền xử lý hơn so với học sâu. Việc phần lớn các giải pháp đứng đầu trong các cuộc thi dữ liệu có cấu trúc như Kaggle là ensemble cây như XGBoost, LightGBM cho thấy họ mô hình này không chỉ là mô hình phục vụ giảng dạy mà đã là công cụ tiêu chuẩn của ngành.
2. Cấu trúc tổng thể và nguyên lý học
Cây quyết định bắt đầu từ nút gốc với toàn bộ dữ liệu, tại mỗi nút phân nhánh (nút trong) chia dữ liệu thành hai hoặc nhiều nhánh theo một điều kiện thuộc tính cụ thể, và tại nút lá (nút cuối) không phân chia nữa sẽ đưa ra dự đoán cuối cùng (lớp hoặc giá trị số). Bản chất của việc học là tìm kiếm lặp lại một cách tham lam (greedy) 'chia theo thuộc tính nào, với ngưỡng nào thì dữ liệu được phân tách tốt nhất'. Ở mỗi bước, mô hình chọn cách phân chia sao cho sau khi chia, mỗi nhóm con thuần khiết nhất có thể (nghiêng về một lớp duy nhất).
flowchart TB
R["Nút gốc (toàn bộ dữ liệu huấn luyện)"] --> A["Nút phân nhánh (điều kiện thuộc tính: thu nhập >= 300)"]
A -->|Điều kiện đúng| B["Nút phân nhánh (lịch sử nợ quá hạn = không)"]
A -->|Điều kiện sai| L1["Lá: Từ chối"]
B -->|Đúng| L2["Lá: Phê duyệt"]
B -->|Sai| L3["Lá: Phê duyệt có điều kiện"]
style R fill:#e8f0fe,stroke:#2f6fed,stroke-width:2px
style L2 fill:#e6f4ea,stroke:#137333
style L1 fill:#fce8e6,stroke:#c5221f
Ý nghĩa của từng thành phần trong sơ đồ cấu trúc trên như sau. Nút gốc chứa toàn bộ mẫu trước khi phân chia, và tại đây câu hỏi đầu tiên (thuộc tính mang nhiều thông tin nhất) được đặt ra. Nút phân nhánh là điểm chia dữ liệu theo một điều kiện thuộc tính, còn nhánh (branch) biểu thị kết quả của điều kiện đó (đúng/sai, hoặc giá trị phân loại). Nút lá là điểm không chia tiếp mà xác định dự đoán; trong phân loại, lớp chiếm đa số của các mẫu còn lại tại nút đó được dùng làm dự đoán, còn trong hồi quy là giá trị trung bình của các mẫu.
| Thành phần | Vai trò | Ý nghĩa trong dự đoán |
|---|---|---|
| Nút gốc/nút phân nhánh | Điều kiện thuộc tính dùng để chia dữ liệu | Phần điều kiện (if) của quy tắc |
| Nhánh (Branch) | Kết quả của điều kiện (đúng/sai·phân loại) | Rẽ nhánh của quy tắc |
| Nút lá | Kết thúc phân chia·dự đoán cuối cùng | Phần kết quả (then) của quy tắc |
Xét quy trình học theo thứ tự: ① với tất cả các thuộc tính và điểm chia ứng viên tại nút hiện tại, tính lượng giảm độ không thuần khiết sau khi chia; ② chọn cách chia có lượng giảm lớn nhất để tạo các nút con; ③ với mỗi nút con, lặp lại đệ quy ①–② cho đến khi thỏa mãn điều kiện dừng (nút thuần khiết, số mẫu dưới mức tối thiểu, đạt độ sâu tối đa, v.v.). Vì đây là chiến lược tham lam chọn tối ưu cục bộ ở mỗi bước nên không phải lúc nào cũng bảo đảm cây tối ưu toàn cục, nhưng do cân bằng tốt giữa hiệu quả tính toán và hiệu năng nên được sử dụng rộng rãi trong thực tế.
flowchart LR
S["Đầu vào dữ liệu huấn luyện"] --> C["Đánh giá thuộc tính·điểm chia ứng viên (tính lượng giảm độ không thuần khiết)"]
C --> P["Chọn cách chia tối ưu (information gain·Gini tối đa)"]
P --> D{"Thỏa điều kiện dừng?"}
D -->|Không| C
D -->|Có| F["Xác định lá·sinh quy tắc"]
F --> G["Cắt tỉa (Pruning)"]
G --> M["Cây cuối cùng·quy tắc dự đoán"]
style P fill:#e8f0fe,stroke:#2f6fed,stroke-width:2px
style G fill:#fef7e0,stroke:#f9ab00
Như sơ đồ quy trình chi tiết trên cho thấy, giai đoạn phát triển cây (growing) và giai đoạn cắt tỉa (pruning) được phân biệt rõ ràng. Ở giai đoạn phát triển, cây được mở rộng theo hướng giảm độ không thuần khiết tối đa, sau đó ở giai đoạn cắt tỉa, các nhánh bị chia quá chi tiết được cắt bỏ để khôi phục hiệu năng tổng quát hóa. Sự tách biệt hai giai đoạn này là thiết kế cốt lõi gắn trực tiếp với vấn đề quá khớp sẽ đề cập sau.
3. Tiêu chí phân chia (Split Criterion)
Tiêu chí chọn thuộc tính để chia nút quyết định bản sắc của thuật toán. Mục tiêu chung của các tiêu chí phân chia là 'tối thiểu hóa độ không thuần khiết (impurity) của mỗi nút con sau khi chia', và tùy theo cách định nghĩa độ không thuần khiết mà các thuật toán tiêu biểu được phân biệt.
Information Gain (độ lợi thông tin) dựa trên entropy lấy entropy (độ bất định) của lý thuyết thông tin làm thước đo độ không thuần khiết, chọn thuộc tính có lượng giảm lớn nhất khi lấy entropy trước khi chia trừ đi entropy có trọng số sau khi chia. Thuật toán ban đầu ID3 sử dụng cách này. Tuy nhiên, information gain có thiên lệch đánh giá quá cao các thuộc tính có nhiều loại giá trị (ví dụ: mã khách hàng), nên thuật toán kế tiếp C4.5 hiệu chỉnh bằng tỷ lệ độ lợi (Gain Ratio), chuẩn hóa bằng lượng thông tin phân chia. C4.5 xử lý đồng thời thuộc tính liên tục và phân loại, tích hợp xử lý giá trị thiếu và cắt tỉa, nâng cao mức độ hoàn thiện trong thực tế.
Chỉ số Gini (Gini Index) định nghĩa độ không thuần khiết là xác suất hai mẫu được chọn ngẫu nhiên thuộc các lớp khác nhau, và chọn cách chia làm giảm chỉ số này nhiều nhất. CART (Classification And Regression Trees) áp dụng cách này; do không có phép tính logarit nên tính toán nhẹ hơn entropy và luôn tạo ra phân chia nhị phân (binary split). Trong cây hồi quy, thay cho độ không thuần khiết, lượng giảm phương sai (hoặc sai số bình phương trung bình, MSE) được dùng làm tiêu chí, chọn cách chia làm cho độ phân tán của giá trị mục tiêu trong nút con nhỏ nhất.
| Thuật toán | Tiêu chí phân chia | Dạng cây | Đặc điểm |
|---|---|---|---|
| ID3 | Information gain (entropy) | Phân chia đa nhánh | Chỉ dùng cho biến phân loại, có thiên lệch |
| C4.5 | Tỷ lệ độ lợi (Gain Ratio) | Phân chia đa nhánh | Hỗ trợ biến liên tục·giá trị thiếu·cắt tỉa |
| CART | Chỉ số Gini / giảm phương sai | Phân chia nhị phân | Hợp nhất phân loại·hồi quy, tính toán nhẹ |
Hàm ý thực tiễn của ba tiêu chí không nằm ở sự hơn kém đơn thuần về hiệu năng mà ở chỗ 'phù hợp với dữ liệu và yêu cầu nào'. Chẳng hạn, nếu dữ liệu có nhiều thuộc tính với rất nhiều hạng mục, information gain của ID3 dễ bị méo mó nên dùng tỷ lệ độ lợi hoặc Gini sẽ an toàn hơn; nếu giá trị dự đoán là liên tục thì phải dùng tiêu chí giảm phương sai (cây hồi quy) chứ không phải Gini dành cho phân loại. Việc DecisionTreeClassifier của scikit-learn chọn Gini làm mặc định cũng là vì hiệu quả tính toán và hiệu năng ổn định.
4. Đặc điểm (ưu nhược điểm) và quá khớp
Cây quyết định có ưu điểm là dễ diễn giải, hầu như không cần tiền xử lý như chuẩn hóa hay co giãn (scaling) (việc chia chỉ sử dụng thông tin thứ tự), và có thể xử lý đồng thời dữ liệu số và dữ liệu phân loại. Ngược lại, nếu để cây phát triển sâu không giới hạn, nó rất dễ bị quá khớp (overfitting), ghi nhớ cả nhiễu của dữ liệu huấn luyện thành quy tắc. Trong trường hợp cực đoan, cây phát triển cho đến khi mỗi lá chỉ còn một mẫu, độ chính xác trên dữ liệu huấn luyện đạt 100% nhưng hiệu năng trên dữ liệu mới giảm mạnh.
Một điểm yếu khác là tính không ổn định (instability). Chỉ cần dữ liệu huấn luyện thay đổi một chút, nếu phép chia ở tầng trên thay đổi thì toàn bộ cấu trúc cây bên dưới có thể biến đổi lớn. Đây là yếu tố làm tổn hại độ tin cậy và khả năng tái lập của quy tắc, khiến việc dùng nguyên một cây đơn lẻ trong vận hành trở nên khó khăn.
| Phân loại | Nội dung |
|---|---|
| Ưu điểm | Dễ diễn giải dựa trên quy tắc, tiền xử lý tối thiểu, kết hợp biến số·phân loại, tính được mức độ quan trọng của đặc trưng |
| Nhược điểm | Dễ quá khớp, nhạy cảm với thay đổi dữ liệu (không ổn định), hạn chế biểu diễn ranh giới chéo do phân chia song song trục |
| Đối ứng | Cắt tỉa trước·sau, ràng buộc độ sâu·số mẫu tối thiểu, ensemble (rừng ngẫu nhiên·boosting) |
Cách đối phó với quá khớp chia thành hai hướng lớn. Thứ nhất là cắt tỉa, gồm cắt tỉa trước (pre-pruning: giới hạn độ sâu tối đa, số mẫu tối thiểu tại lá) dừng phát triển sớm, và cắt tỉa sau (post-pruning: ví dụ cắt tỉa theo chi phí–độ phức tạp của CART) cho cây phát triển lớn rồi cắt bỏ nhánh dựa trên hiệu năng kiểm định. Thứ hai là ensemble kết hợp nhiều cây, sẽ được trình bày ở phần chuyên sâu tiếp theo.
5. Ví dụ ứng dụng và minh họa bằng số liệu
Giá trị thực tiễn của cây quyết định và ensemble trở nên rõ ràng khi xem xét qua các trường hợp cụ thể.
Trường hợp 1 — Chấm điểm tín dụng tài chính (thẩm định cho vay). Giả sử một ngân hàng xây dựng mô hình dự đoán việc phê duyệt khoản vay. Cây đơn lẻ trực tiếp sinh ra các quy tắc như "thu nhập từ 3 triệu won trở lên → không có lịch sử nợ quá hạn → tỷ lệ nợ dưới 40% → phê duyệt", nên có thể dùng ngay làm tiêu chí thẩm định nộp cho cơ quan giám sát và thông báo lý do từ chối (adverse action). Trong thực tế, để nâng cao độ chính xác, người ta dùng boosting như XGBoost, nhưng với từng trường hợp bị từ chối thì dùng giá trị SHAP để định lượng mức đóng góp của từng biến, chẳng hạn "tỷ lệ nợ đã làm giảm xác suất phê duyệt 12%p", nhằm đáp ứng trách nhiệm giải trình.
Trường hợp 2 — Dự đoán rời bỏ dịch vụ viễn thông/thuê bao (Churn). Đưa vào các yếu tố như tỷ lệ giảm lượng sử dụng trong 3 tháng gần nhất, số lần liên hệ tổng đài, lịch sử thay đổi gói cước để dự đoán xác suất rời bỏ. Khi kết hợp hàng trăm cây bằng rừng ngẫu nhiên, tính không ổn định của cây đơn lẻ được giảm bớt, nên dù dữ liệu được cập nhật hằng tháng, dự đoán cũng không dao động mạnh. Nếu phân tích mức độ quan trọng của đặc trưng phát hiện 'số lần liên hệ tổng đài tăng đột biến' là tín hiệu cốt lõi của việc rời bỏ, điều đó được chuyển thành hành động marketing gửi ưu đãi giữ chân chủ động tới nhóm khách hàng đó.
Trường hợp 3 — Dự đoán chất lượng quy trình sản xuất. Khi dự đoán sản phẩm lỗi từ hàng chục giá trị cảm biến như nhiệt độ, áp suất, tốc độ, LightGBM học nhanh dữ liệu cảm biến quy mô lớn nhờ phân chia dựa trên histogram và phát triển theo lá. So với học sâu, thời gian huấn luyện ngắn và việc tinh chỉnh siêu tham số dễ dàng, giúp rút ngắn chu kỳ huấn luyện lại và triển khai tại hiện trường nơi điều kiện quy trình thường xuyên thay đổi. Cả trong trường hợp này, mức độ quan trọng của đặc trưng cũng được dùng để chỉ ra biến quy trình nào liên quan chặt chẽ với lỗi, phản hồi vào các hoạt động cải tiến tại hiện trường.
Điểm chung mà các trường hợp này cho thấy là 'khả năng diễn giải quy tắc' của cây đơn lẻ và 'độ chính xác dự đoán' của ensemble đều cần thiết trong những bối cảnh khác nhau, và trong thực tế, người ta chọn một trong hai tùy theo mục đích hoặc kết hợp chúng bằng SHAP.
6. Chuyên sâu — Ensemble và xu hướng AI có thể giải thích (XAI)
Ensemble (học tổ hợp) ra đời nhằm khắc phục giới hạn của cây quyết định đơn lẻ, ngày nay là tiêu chuẩn thực tế trong lĩnh vực dữ liệu có cấu trúc. Nó chia thành hai họ lớn. Rừng ngẫu nhiên (Random Forest), đại diện của họ Bagging, lấy mẫu có hoàn lại nhiều lần bằng mẫu bootstrap và giới hạn ngẫu nhiên cả các thuộc tính ứng viên khi chia để tạo ra hàng trăm cây khác nhau, rồi kết hợp dự đoán của chúng bằng biểu quyết đa số hoặc trung bình. Vì hướng sai số của mỗi cây khác nhau, khi kết hợp, phương sai giảm và tính không ổn định của cây đơn lẻ được giảm đáng kể.
Họ Boosting tạo cây theo tuần tự, huấn luyện sao cho cây sau tập trung hiệu chỉnh phần mà cây trước dự đoán sai (phần dư). Tiêu biểu có XGBoost (2016, chính quy hóa·xấp xỉ bậc hai·song song hóa) tối ưu hóa gradient boosting (GBM) ở quy mô thực tiễn, LightGBM (Microsoft) cải thiện tốc độ và bộ nhớ nhờ phát triển theo lá (leaf-wise) và phân chia dựa trên histogram, và CatBoost (Yandex) tăng cường xử lý biến phân loại. Các mô hình này thường cho hiệu năng ngang bằng hoặc vượt học sâu trên dữ liệu có cấu trúc, được dùng rộng rãi trong chấm điểm tín dụng, dự đoán rời bỏ, dự báo nhu cầu, v.v.
Ensemble nâng hiệu năng lên đáng kể, nhưng đổi lại, do là tập hợp của hàng trăm cây nên phần lớn khả năng diễn giải của cây đơn lẻ bị mất. Để lấp khoảng trống này, các kỹ thuật giải thích hậu nghiệm (post-hoc explanation) được sử dụng kèm theo như mức độ quan trọng của đặc trưng (Feature Importance), đồ thị phụ thuộc từng phần (PDP), và SHAP định lượng mức đóng góp của từng biến vào từng dự đoán dựa trên giá trị Shapley của lý thuyết trò chơi. Đặc biệt, với ensemble cây có thuật toán TreeSHAP tính giá trị SHAP hiệu quả, nên tổ hợp "hiệu năng bằng boosting, giải thích bằng SHAP" đã được thiết lập rộng rãi trong ngành. Rốt cuộc, cây quyết định tự thân là mô hình hộp trắng, đồng thời đang phát triển thành trục kết hợp với ensemble và XAI để đạt được cả hiệu năng lẫn khả năng giải thích.
7. Những điểm cần cân nhắc và hàm ý (góc nhìn Kỹ sư chuyên nghiệp)
Kiểm soát quá khớp quyết định thành bại trong thực tế. Với cây đơn lẻ cần giới hạn độ sâu, số mẫu tối thiểu tại lá và cắt tỉa theo chi phí–độ phức tạp; với ensemble cần điều chỉnh số lượng cây, tốc độ học, tỷ lệ lấy mẫu con bằng kiểm định chéo để bảo đảm hiệu năng tổng quát hóa. Nếu chỉ nhìn độ chính xác huấn luyện rồi triển khai, chắc chắn sẽ gặp suy giảm hiệu năng.
Thiết kế sự đánh đổi giữa hiệu năng và khả năng giải thích phù hợp với mục đích. Ở những lĩnh vực có quy định, giám sát nghiêm ngặt, đòi hỏi phải trình bày chính quy tắc (tiêu chí thẩm định cho vay, phác đồ y tế), cây đơn lẻ nông là phù hợp; còn ở lĩnh vực đặt độ chính xác dự đoán lên hàng đầu, tổ hợp ensemble boosting + SHAP là phù hợp. Mấu chốt không phải một đáp án duy nhất mà là lựa chọn dựa trên yêu cầu.
Quản lý chất lượng và thiên lệch dữ liệu quyết định tính công bằng của quy tắc. Nếu dữ liệu huấn luyện có thiên lệch về các thuộc tính nhạy cảm như giới tính, khu vực, cây có thể cố định hóa chúng thành quy tắc và tái sản xuất các quyết định phân biệt đối xử. Cần đồng thời vận hành việc loại bỏ thuộc tính nhạy cảm, kiểm tra biến đại diện (proxy) và giám sát chỉ số công bằng; điều này gắn trực tiếp với đạo đức và quản trị AI.
Định vị là đối tượng ưu tiên xem xét đối với dữ liệu có cấu trúc. Với hình ảnh, giọng nói, ngôn ngữ tự nhiên, học sâu chiếm ưu thế áp đảo, nhưng với dữ liệu dạng bảng, ensemble cây vẫn là đường cơ sở (baseline) mạnh mẽ. Trong các bài toán dự đoán mới, thử XGBoost, LightGBM trước học sâu để kiểm chứng hiệu quả so với chi phí là hợp lý về mặt thực tiễn.
Cần bảo đảm vận hành và khả năng tái lập từ góc độ MLOps. Cấu trúc cây nhạy cảm với dữ liệu huấn luyện và hạt giống ngẫu nhiên (random seed), nên cần cố định seed, quản lý phiên bản và giám sát sự trôi dạt (drift) của mức độ quan trọng đặc trưng để theo dõi mô hình thay đổi theo thời gian ra sao và xác định thời điểm huấn luyện lại.
Tài liệu tham khảo
- scikit-learn, "Decision Trees" — https://scikit-learn.org/stable/modules/tree.html
- XGBoost Documentation, "Introduction to Boosted Trees" — https://xgboost.readthedocs.io/en/stable/tutorials/model.html
- LightGBM Documentation — https://lightgbm.readthedocs.io/en/stable/
- SHAP Documentation — https://shap.readthedocs.io/en/latest/
Tóm tắt một câu: Cây quyết định là mô hình có thể diễn giải (hộp trắng) tạo ra cây quy tắc if-then bằng cách phân chia lặp lại theo thuộc tính, chia theo information gain, tỷ lệ độ lợi hoặc Gini; do dễ bị quá khớp và không ổn định nên được bổ sung độ chính xác và độ ổn định bằng cắt tỉa và ensemble (rừng ngẫu nhiên·XGBoost·LightGBM), đồng thời kết hợp với các kỹ thuật XAI như SHAP để đạt được cả hiệu năng lẫn khả năng giải thích.