Bạn đang xem thử công khai
Đăng nhập để lưu tiến độ, làm bài tập, thảo luận và nhận phản hồi.
| Thành phần | Vai trò |
|---|---|
| Root node | Nút gốc — câu hỏi đầu tiên |
| Decision node | Nút hỏi điều kiện ở giữa |
| Leaf node | Nút lá — kết luận cuối cùng |
Điểm mạnh lớn nhất: bạn đọc được đường đi dẫn tới mỗi quyết định. Với hồ sơ vay bị từ chối, cây cho biết chính xác điều kiện nào đã loại — thứ mà ngân hàng bắt buộc phải giải thích được cho khách hàng.
Gini = 1 − Σ (pᵢ)²
Gini đo mức "hỗn tạp" của một nhánh:
Thuật toán thử từng thuộc tính, tính Gini có trọng số của các nhánh con, rồi chọn thuộc tính cho Gini nhỏ nhất.
Trong ví dụ duyệt vay ở bài giảng: chia theo age cho Gini = (5/14)(0.48) + (4/14)(0) + (5/14)(0.48) = 0.343.
from sklearn.tree import DecisionTreeClassifier, plot_tree
model = DecisionTreeClassifier(max_depth=4, random_state=100)
model.fit(x_train, y_train)
plot_tree(model, feature_names=x.columns, filled=True)
Cây không giới hạn độ sâu sẽ chia mãi cho tới khi mỗi lá chỉ còn một mẫu — tức học thuộc lòng. Accuracy trên train đạt 100%, trên test thì tệ.
Cách kiểm soát: max_depth, min_samples_leaf, min_samples_split.
Random Forest huấn luyện nhiều cây trên các tập con lấy mẫu có hoàn lại (bootstrapping), rồi lấy biểu quyết đa số. Sai lầm ngẫu nhiên của từng cây triệt tiêu lẫn nhau, nên rừng ổn định hơn hẳn một cây đơn lẻ — đổi lại, mất phần lớn khả năng giải thích.
Để cây mọc tự do rồi ngạc nhiên vì accuracy train bằng 100%. Đó không phải mô hình giỏi, đó là bảng tra cứu.