Max
Chọn câu
Học máy và dữ liệu
Câu 1
Đoạn code gradient boosting sau đúng với loss bình phương. Đổi sang loss tuyệt đối (L1) thì phải sửa dòng nào?
F = np.zeros(len(y))
for i in range(n_estimators):
residuals = y - F # dòng A
tree = DecisionTreeRegressor(max_depth=3)
tree.fit(X, residuals) # dòng B
F += learning_rate * tree.predict(X) # dòng CGradient âm của |y − F| theo F là sign(y − F), nên dòng A đổi. Cây khớp dấu chỉ cho hướng; giá trị tối ưu của mỗi lá dưới loss L1 là trung vị phần dư thật trong lá, không phải trung bình, nên cách khớp ở dòng B cũng phải đổi.
Câu 2
LogisticRegression của scikit-learn tối thiểu ½‖w‖² + C·Σᵢ log-loss(xᵢ). Lặp mỗi mẫu huấn luyện thêm một lần (dữ liệu gấp đôi), giữ nguyên C. Mức regularization hiệu dụng thay đổi thế nào?
Phần dữ liệu là tổng chứ không phải trung bình, nên gấp đôi khi lặp mẫu. Chia cả hàm mục tiêu cho 2C: tương đương ½·‖w‖²/(2C) + Σ loss, tức phạt yếu đi một nửa. Nghiệm giống hệt khi dùng C gấp đôi trên dữ liệu gốc.
Phỏng theoNOAI 2026 Singapore · Chung kết · Câu 5
Câu 3
Lấy mẫu bootstrap n lần có hoàn lại từ n mẫu, với n lớn. Tỉ lệ mẫu không được chọn lần nào (mẫu ngoài túi) xấp xỉ bao nhiêu?
Xác suất một mẫu không được chọn là (1 − 1/n)ⁿ → 1/e ≈ 0,368. Rừng ngẫu nhiên dùng các mẫu này để ước lượng lỗi ngoài túi mà không cần tập kiểm định riêng.
Ôn lạiBài 2.6Out-of-bag: validation miễn phíBài 2.6Tự nhìn một lần bootstrap
Còn 97 câu dành cho tài khoản Pro
Mở khóa bằng tài khoản Pro