Vì sao rừng hoạt động hiệu quả
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 42 trên 58.
Các cây trong một rừng có chủ ý khác nhau. Mỗi cây được huấn luyện trên một mẫu bootstrap: các hàng được lấy ngẫu nhiên có hoàn lại, vì vậy một số hàng được chọn lặp lại, còn một số không được chọn.
Mỗi câu hỏi cũng chọn ngẫu nhiên một vài đặc trưng. Các cây đưa ra những dự đoán sai khác nhau, rồi các phiếu bầu triệt tiêu những sai sót đó. Hai loài đom đóm:
Khu rừng chỉ giữ lại một dải ở nơi phần lớn cây đồng thuận.
Các cây nằm trong forest.estimators_:
third = forest.estimators_[2]
print(round(third.score(X_test, y_test), 3))Lệnh này in ra 0.737. Cả khu rừng đạt điểm 0.895.
Thử thách
Trung bìnhMột rừng có thể đánh bại các cây của chính nó không? Đoạn code khởi đầu huấn luyện forest trên riders.csv, gồm những người đã hoặc chưa hoàn thành chuyến đạp xe 160 km trong dưới 6 giờ, rồi thiết lập biểu đồ.
- Đánh giá từng cây trong rừng trên các hàng kiểm tra.
- Vẽ biểu đồ tần suất (histogram) của các điểm số với
bins=10, rồi đánh dấuforest_accbằng một đường thẳng đứng màu đỏ. - In ra số cây mà rừng đánh bại.
Trong một chuyến đạp xe khác, chương trình in ra The forest beats 88 of its 100 trees và vẽ biểu đồ sau:
Sau đó, Coddy mô tả biểu đồ của bạn.
Tự làm thử
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# Người tham gia chuyến đạp xe từ thiện dài 160 km: hoàn thành trong dưới 6 giờ (1) hoặc không (0)
riders = pd.read_csv("riders.csv")
features = ["weekly_km", "long_ride_km", "age", "years_riding", "rest_days", "sleep_hours"]
X = riders[features].to_numpy() # Một mảng (array) thông thường, đúng dạng mà các cây trong rừng cần
y = riders["under_6h"].to_numpy()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
forest = RandomForestClassifier(n_estimators=100, random_state=0)
forest.fit(X_train, y_train)
forest_acc = forest.score(X_test, y_test)
fig, ax = plt.subplots()
ax.set_title("The Forest and Its Trees")
ax.set_xlabel("Test accuracy")
ax.set_ylabel("Trees")
# Viết code của bạn 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