Chương 2·Bài 2.7Pro
Gradient boosting
Chọn câu
Light
Câu 1
Gradient boosting dựng các cây quyết định theo cách nào?
Mỗi cây mới tập trung vào phần các cây trước còn đoán sai, rồi cộng vào kết quả chung. Rừng ngẫu nhiên thì khác: các cây học độc lập rồi bỏ phiếu.
Medium
Câu 2
Rừng ngẫu nhiên và gradient boosting đều dùng nhiều cây. Chúng khác nhau chính ở đâu?
Rừng ngẫu nhiên (bagging) gộp nhiều cây học độc lập, chủ yếu để giảm variance. Boosting dựng từng cây một, cây sau tập trung vào phần cây trước còn sai, chủ yếu để giảm bias.
Ôn lạiBài 2.7Ý tưởng: cộng dồn những bản váBài 2.6Hai nguồn ngẫu nhiên
Max
Câu 3
Đ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òn 3 câu dành cho tài khoản Pro
Mở khóa bằng tài khoản Pro