Cây quyết định
Bài học 17 trên 19 trong khóa học Giới thiệu về học máy của Coddy.
Cây quyết định là một mô hình phi tuyến được dùng cho cả các bài toán phân loại và hồi quy. Mô hình này mô phỏng cách con người ra quyết định sát hơn các thuật toán khác, nên vừa trực quan vừa mạnh mẽ khi xử lý các tập dữ liệu phức tạp. Về bản chất, cây quyết định chia dữ liệu thành các tập con bằng một loạt quy tắc đơn giản, tương tự như việc đặt một loạt câu hỏi có hoặc không về các đặc trưng của các điểm dữ liệu.

Nguồn: Wikipedia
Hãy hình dung cây quyết định như một đồ thị có dạng cây, trong đó:
- Mỗi nút bên trong biểu thị một phép “kiểm tra” một thuộc tính, chẳng hạn như đồng xu rơi ra mặt ngửa hay mặt sấp,
- Mỗi nhánh biểu thị kết quả của phép kiểm tra, và
- Mỗi nút lá biểu thị một nhãn lớp, tức quyết định được đưa ra sau khi tính toán tất cả thuộc tính.
Các loại cây quyết định:
- Cây phân loại: Dùng khi kết quả dự đoán là lớp mà dữ liệu thuộc về.
- Cây hồi quy: Dùng khi kết quả dự đoán có thể biểu diễn bằng một số thực, chẳng hạn như giá của một ngôi nhà.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Thử thách
Trung bìnhTạo một hàm tên là decide_outcome nhận một danh sách quy tắc theo định dạng sau:
rules = {
rule1: {"type": "bigger", "value": 5},
rule2: {"type": "smaller", "value": 7},
}Hàm cũng nhận quy tắc cần chuyển đến khi kết quả đúng hoặc không đúng:
outcome = {
"rule1": {True: "rule2", False: "rule3"},
"rule2": {True: "rule3", False: "rule4"},
"rule3": {True: None, False: None}
"rule4": {True: None, False: None}
}data_point = {
"rule1": 8,
"rule2": 10,
}Đầu ra phải là rule4
8 is bigger than 5 (True)→ chuyển đếnrule2theo quy tắc này"rule1": {True: "rule2", False: "rule3"},10 is smaller than 7 (False)→ chuyển đếnrule4theo quy tắc này"rule2": {True: "rule3", False: "rule4"},- Không còn cách nào khác để tiếp tục, nên đầu ra là
rule4
Luôn bắt đầu từ <strong>rule1</strong>
Tự làm thử
def decide_outcome(rules, outcome, point):
current_rule = "rule1"
# Viết code của bạn ở đâyTất cả bài học trong Giới thiệu về học máy
6Các mô hình khác
Hồi quy logisticHồi quy tuyến tínhCây quyết địnhMáy vector hỗ trợ (SVM)Trắc nghiệm về mô hìnhTự luyện tập: Trình biên dịch Python online