Độ sâu của cây
Thuộc phần Học có giám sát trong hành trình Machine Learning của Coddy. Bài học 29 trên 58.
Cây có thể tiếp tục hỏi cho đến khi mỗi hàng huấn luyện có câu trả lời riêng. Khi đó, cây đã ghi nhớ chứ không học:
Các cây có độ sâu lớn học cả nhiễu trong các hàng dữ liệu huấn luyện, nên độ chính xác trên tập kiểm tra đạt đỉnh rồi giảm xuống. Hãy thử một số độ sâu:
train = []
test = []
for d in range(1, 13):
tree = DecisionTreeClassifier(max_depth=d, random_state=0)
tree.fit(X_train, y_train)
train.append(tree.score(X_train, y_train))
test.append(tree.score(X_test, y_test))Trên các mặt trăng này, độ sâu 6 cho kết quả tốt nhất trên các hàng mới: cứ giữ nguyên như vậy. Từ độ sâu 8 trở lên, cây đạt kết quả hoàn hảo trên những hàng đã ghi nhớ, nhưng kém hơn trên những hàng còn lại.
Thử thách
Trung bìnhMột khảo sát bằng kính thiên văn phân loại các thiên thể thành sao và thiên hà. Phần mã khởi đầu chia dữ liệu và thiết lập biểu đồ.
- Với mỗi độ sâu (depth) trong
depths, huấn luyện một cây (random_state=0) và lưu lại cả hai độ chính xác. - In ra độ sâu có độ chính xác trên tập kiểm tra cao nhất như bên dưới.
- Vẽ cả hai đường, đặt nhãn
trainvàtest, đánh dấu độ sâu tốt nhất bằng một đường nét đứtax.axvline, thêm chú giải rồi hiển thị biểu đồ.
Với máy phân loại xoài:
Best depth: 5, test accuracy 0.867Sau đó, Coddy mô tả biểu đồ của bạn. Biểu đồ của họ trông như thế này:
Tự làm thử
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
# Mỗi hàng tương ứng với một thiên thể trong khảo sát bằng kính thiên văn: 1 trong galaxy là thiên hà, 0 là ngôi sao
sky = pd.read_csv("sky.csv")
features = ["brightness_mag", "size_arcsec", "roundness", "color_index"]
X_train, X_test, y_train, y_test = train_test_split(sky[features], sky["galaxy"], test_size=0.25, random_state=0)
depths = range(1, 11)
fig, ax = plt.subplots()
ax.set_title("Star or Galaxy?")
ax.set_xlabel("Tree depth")
ax.set_ylabel("Accuracy")
# Viết code bên dưới
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 độ.
Tất cả bài học trong Học có giám sát
1Mô hình đầu tiên của bạn
Học từ ví dụTập huấn luyện và tập kiểm traHuấn luyện và dự đoánChấm điểm mô hìnhÔn tập: Bộ sắp xếp hạt giống2Láng giềng gần nhất
Cách k-NN đưa ra quyết địnhChọn kRanh giới quyết địnhChuẩn hóa dữ liệu cho láng giềngÔn tập: láng giềng với dữ liệu rượu vang5Đánh giá bộ phân loại
Ma trận nhầm lẫnĐộ chính xác và độ thu hồiĐiểm F1Các lớp mất cân bằngĐường cong ROCÔn tập: Bài kiểm tra sàng lọc11Dự án: Các loài chim cánh cụt
Làm quen với chim cánh cụtChuẩn bị dữ liệuChọn mô hìnhTinh chỉnh mô hình tốt nhấtĐưa mô hình vào sử dụng3Hồi quy tuyến tính
Dự đoán các con sốNhiều đặc trưngĐo lường sai sốBiểu đồ phần dưÔn tập: Thuê xe đạp6Cây quyết định
Cây đặt câu hỏiĐọc câyĐộ sâu của câyTầm quan trọng của đặc trưngÔn tập: quyết định cho vay9Các mô hình tổ hợp
Rừng ngẫu nhiênVì sao rừng hoạt động hiệu quảTăng cường độ dốcÔn tập: Người kiểm lâm rừng12Thử thách cuối cùng
Tiến triển của bệnh tiểu đườngPhê duyệt tín dụngChữ số viết tayKhách hàng rời bỏTự luyện tập: Trình biên dịch Python online