Bộ dữ liệu được sử dụng cho bài toán này là bộ dữ liệu về giá nhà ở ở boston bao gồm 13 quan sát và 506 biến.
Đọc dữ liệu:
Ý nghĩa của những trường dữ liệu:
Các biến đầu vào:
-
crim: Tỷ lệ phạm tội phạm bình quân đầu người theo thị trấn.
-
zn: Tỷ lệ đất ở được quy hoạch cho các lô trên 25.000 foot square.
-
indus: Tỷ lệ diện tích thuộc lĩnh vực kinh doanh phi bán lẻ trên mỗi thị trấn.
-
chas: Biến giả, = 1 nếu được bao bởi sông Charles River, = 0 nếu ngược lại.
-
nox: Nồng độ khí Ni-tơ oxit.
-
rm: Trung bình số phòng trên một căn hộ.
-
age: Tỷ lệ căn hộ được xây dựng trước năm 1940.
-
dis: Khoảng cách trung bình có trọng số tới 5 trung tâm việc làm lớn nhất ở Boston.
-
rad: Chỉ số về khả năng tiếp cận đường cao tốc.
-
tax: Giá trị thuế suất tính trên đơn vị 10000$.
-
ptratio: Tỷ lệ học sinh-giáo viên trên mỗi thị trấn.
-
black: Tỷ lệ số người da đen trong thị trấn được tính theo công thức: 1000(Bk−0.63)2 ở đây Bk là tỷ lệ người da đen trong thị trấn.
-
lstat: Tỷ lệ phần trăm dân số thu nhập thấp.
Biến mục tiêu: Căn cứ vào giá nhà ở > 20 nghìn USD hoặc nhỏ hơn mà chúng ta phân thành nhãn 1 (giá cao) và nhãn 0 (giá thấp).
Tiếp theo ta sẽ xây dựng một mô hình phân loại dự trên cây quyết định với độ sâu tối đa là 3. Độ sâu ở đây chính là số lượng tối đa các câu hỏi khi đi từ node gốc tới node lá. Chúng ta khai báo độ sâu thông qua đối số max_depth.
Tiếp theo là sử dụng hàm export_graphviz() để biểu đồ hoá cây quyết định. Trong hàm này chúng ta chỉ cần truyền vào mô hình, tên các đặc trưng đầu vào thông qua đối số feature_names và các nhãn thông qua đối số class_names.
Cách dự báo từ cây quyết định?
Từ cây quyết định ở trên, dựa trên việc rẽ nhánh, chúng ta suy ra được nhãn dự báo cho các quan sát. Giả sử quan sát đầu vào có giá trị: LSTAT = 10, RM = 6, DIS = 3. Khi đó xuất phát từ node gốc ta tuần tự đặt và trả lời các câu hỏi:
-
LSTAT <= 14.115 là đúng, như vậy tại node gốc ta rẽ sang nhánh True bên trái.
-
Tiếp theo ta lại xét tiếp câu hỏi RM <= 6.034, kết quả trả về là True. Do đó ta lại rẽ sang nhánh bên trái.
-
Tiếp theo xét tiếp câu hỏi DIS <= 4.714, kết quả trả về tiếp tục là True. Do đó ta rẽ sang bên trái và thu được kết quả dự báo ở node lá là nhãn high.
Để minh chứng cho nhận định trên, ta sẽ thử nghiệm dự báo cho 5 quan sát sao cho giá trị LSTAT = 10, RM = 6, DIS = 3 là cố định và những giá trị khác thay đổi ngẫu nhiên và kiểm tra kết quả dự báo.
Chúng ta thấy dù có thay đổi các giá trị khác như thế nào, miễn là 3 giá trị LSTAT = 10, RM = 6, DIS = 3 thoả mãn thì chúng ta đều thu được dự báo có nhãn là 1. Điều này cho thấy dự báo từ cây nhị phân đã tuân theo qui luật rẽ nhánh in đậm như bên dưới: