Rừng ngẫu nhiên
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 41 trên 58.
Một cây quyết định thường thiếu ổn định: chỉ cần thay đổi vài hàng dữ liệu huấn luyện là các câu hỏi của cây cũng thay đổi. Chương này giúp cây ổn định hơn bằng cách hỏi nhiều cây.
rừng ngẫu nhiên huấn luyện nhiều cây và để chúng bỏ phiếu. Ở đây, bảy cây trả lời cho một mạch nước phun:
Trong code, đây là thêm một mô hình cần huấn luyện:
from sklearn.ensemble import RandomForestClassifier
forest = RandomForestClassifier(n_estimators=100, random_state=0)
forest.fit(X_train, y_train)
print(forest.score(X_test, y_test))Với 300 ngày có mạch nước phun, đoạn code này in ra 0.893, trong khi một cây đạt điểm 0.813. n_estimators là số lượng cây.
Nhiều cử tri hơn, ít sai sót hơn.
Thử thách
Trung bìnhTrường huấn luyện chó dẫn đường muốn biết sớm những chú chó con nào sẽ đạt chuẩn. Đoạn code khởi đầu chia puppies.csv, đánh giá một cây và đọc số lượng cây.
- Huấn luyện một rừng gồm số cây đó (
random_state=0) và in ra độ chính xác trên tập kiểm tra. - In ra mô hình nào thắng và cách biệt bao nhiêu, hoặc
A tie.
Với một trường khác và 50:
Single tree: 0.740
Forest: 0.860
The forest wins by 0.120Sau đó, thử 1: rừng chỉ có một cây hoạt động kém đáng ngạc nhiên. Bài học tiếp theo sẽ giải thích lý do.
Tự làm thử
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
# Chó con ở trường huấn luyện chó dẫn đường: mức độ bình tĩnh, tập trung và phản ứng giật mình trước tiếng động lớn (từ 1 đến 10),
# cân nặng, số tháng sống cùng gia đình nuôi dưỡng và có đủ tiêu chuẩn làm chó dẫn đường (1) hay không (0)
puppies = pd.read_csv("puppies.csv")
X = puppies[["calmness", "focus", "noise_startle", "weight_kg", "months_with_family"]]
y = puppies["qualified"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
trees = int(input())
# Đừng thay đổi các dòng bên dưới: đây là một cây quyết định để bạn vượt qua
tree = DecisionTreeClassifier(random_state=0)
tree.fit(X_train, y_train)
tree_acc = tree.score(X_test, y_test)
print(f"Single tree: {tree_acc:.3f}")
# 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