Đọc 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 28 trên 58.
Các câu hỏi của cây có thể đọc được, nên bạn có thể kiểm tra cây đã học được gì. Theo dõi một bông hoa dài 5.1 cm và rộng 1.6 cm qua cây iris:
export_text in ra các câu hỏi giống như văn bản, với một mức thụt lề cho mỗi cấp:
from sklearn.tree import export_text
print(export_text(tree, feature_names=["petal_length", "petal_width"]))Lệnh này in ra:
|--- petal_width <= 0.80
| |--- class: 0
|--- petal_width > 0.80
| |--- petal_length <= 4.95
| | |--- class: 1
| |--- petal_length > 4.95
| | |--- class: 2Mỗi hàng chỉ trả lời các câu hỏi trên đường đi riêng của nó. Lớp 2 là virginica, một câu trả lời hợp lý cho những cánh hoa dài và rộng.
Thử thách
Trung bìnhCây quyết định của cửa hàng phô mai phân loại phô mai thành tươi, mềm hoặc cứng dựa trên hàm lượng nước và số tuần ủ. Mã khởi tạo huấn luyện cây rồi đọc thông tin về một miếng phô mai mới.
- In ra các câu hỏi của cây cùng tên các đặc trưng.
- Chạy cây, đọc các câu hỏi rồi hoàn thành
by_handđể hàm này đặt những câu hỏi tương tự bằng if/else và trả về cùng một đáp án.
Sau khi in ra cây, với một miếng phô mai mà cây phân loại là mềm:
By hand: soft
The tree: softTự làm thử
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_text
# Mỗi hàng ứng với một loại phô mai: hàm lượng nước (%), số tuần ủ và loại phô mai
cheeses = pd.read_csv("cheeses.csv")
features = ["moisture_pct", "aged_weeks"]
X_train, X_test, y_train, y_test = train_test_split(cheeses[features], cheeses["cheese"], test_size=0.25, random_state=0)
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train, y_train)
# Một loại phô mai mới cần xác định tên
moisture = int(input())
aged = int(input())
new_cheese = pd.DataFrame([[moisture, aged]], columns=features)
# Viết code bên dưới: in ra cây quyết định, rồi trả lời trong by_hand giống như cây
def by_hand(moisture, aged):
return "fresh"
# Đừng thay đổi các dòng bên dưới
print("By hand:", by_hand(moisture, aged))
print("The tree:", tree.predict(new_cheese)[0])
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