Tại sao hồi quy Gradient Boosting dự đoán các giá trị âm khi không có giá trị y âm trong tập huấn luyện của tôi?


8

Như tôi đã tăng số lượng cây trong scikit học 's GradientBoostingRegressor, tôi nhận được những dự đoán tiêu cực hơn, mặc dù không có giá trị tiêu cực trong đào tạo hoặc kiểm tra thiết lập của tôi. Tôi có khoảng 10 tính năng, hầu hết là nhị phân.

Một số tham số mà tôi đã điều chỉnh là:

  • số lượng cây / lần lặp;
  • học sâu;
  • và tỷ lệ học tập.

Tỷ lệ phần trăm của các giá trị âm dường như tối đa ở mức ~ 2%. Độ sâu học tập của 1 (gốc cây) dường như có% giá trị âm lớn nhất. Tỷ lệ này dường như cũng tăng lên với nhiều cây hơn và tỷ lệ học tập nhỏ hơn. Bộ dữ liệu là từ một trong những cuộc thi sân chơi kaggle.

Mã của tôi là một cái gì đó như:

from sklearn.ensemble import GradientBoostingRegressor

X_train, X_test, y_train, y_test = train_test_split(X, y)

reg = GradientBoostingRegressor(n_estimators=8000, max_depth=1, loss = 'ls', learning_rate = .01)

reg.fit(X_train, y_train)

ypred = reg.predict(X_test)

1
Bất kỳ cơ hội của một ví dụ tái sản xuất với mã và dữ liệu?
Spainedman

2
đó là sân chơi cạnh tranh nào?
TheAxeR

Câu trả lời:


8

Trong các mô hình hồi quy chung (bất kỳ) có thể hành xử theo cách tùy ý ngoài phạm vi được kéo dài bởi các mẫu đào tạo. Cụ thể, họ có thể tự do giả định tuyến tính của hàm được mô hình hóa, vì vậy, nếu bạn ví dụ đào tạo mô hình hồi quy với các điểm:

X     Y
10    0
20    1
30    2

việc xây dựng một mô hình f(x) = x/10-1để x<10trả về các giá trị âm là hợp lý .

Điều tương tự cũng áp dụng "ở giữa" các điểm dữ liệu của bạn, luôn có khả năng do tính phổ biến giả định của các hàm (có thể được mô hình hóa bằng phương pháp cụ thể), bạn sẽ nhận được các giá trị "từ các mẫu đào tạo của mình".

Bạn có thể nghĩ về điều này theo một cách khác - "có gì đặc biệt về các giá trị âm?", Tại sao bạn thấy sự tồn tại của các giá trị âm là lạ (nếu không được cung cấp trong tập huấn luyện) trong khi bạn không bị báo động bởi sự tồn tại của giả sử. .. giá trị 2131,23? Trừ khi được phát triển theo cách như vậy, không có mô hình nào sẽ xử lý các giá trị âm "khác" so với các giá trị dương. Đây chỉ là một yếu tố tự nhiên của các giá trị thực có thể đạt được như bất kỳ giá trị nào khác.


Liên quan đến bộ câu hỏi của bạn, tôi nghĩ rằng đó hoàn toàn là các giá trị âm dễ xác định là dị thường vì chúng có dấu "-" trước chúng hoặc rõ ràng là dưới 0 trên biểu đồ. Câu hỏi có thể dễ dàng như "Tại sao hồi quy Gradient Boosting dự đoán các giá trị chưa từng thấy trước đây?". Có lẽ bạn có thể cố gắng để mở rộng về điều đó? Nó chắc chắn sẽ giúp bạn bỏ phiếu lên từ tôi.
Josh

@lejlot - Nói chung, điều này không đúng. Các mô hình hồi quy với kích hoạt logistic hoặc tanh thường được đảm bảo có đầu ra trong một số giới hạn.
dùng48956

@ user48956 trả lời trạng thái "có thể hành xử theo cách tùy tiện", tôi không khẳng định rằng bạn không thể ép buộc một số ràng buộc, tất nhiên bạn có thể - chỉ trả lời rằng không có ràng buộc "phụ thuộc dữ liệu" (trừ khi bạn có mô hình rất cụ thể có được xây dựng trong xây dựng) - nếu bạn thêm thủ công này như một chuyên gia - thì tùy bạn.
lejlot

5

Hãy nhớ rằng GradientBoostingRegressor(giả sử hàm mất lỗi bình phương) liên tiếp khớp cây hồi quy với phần dư của giai đoạn trước. Bây giờ nếu cây trong giai đoạn i dự đoán một giá trị lớn hơn biến mục tiêu cho một ví dụ đào tạo cụ thể, phần dư của giai đoạn i cho ví dụ đó sẽ là âm và do đó, cây hồi quy ở giai đoạn i + 1 sẽ đối mặt với các giá trị đích âm (đó là phần dư từ giai đoạn i). Khi thuật toán tăng cường cộng tất cả các cây này để đưa ra dự đoán cuối cùng, tôi tin rằng điều này có thể giải thích tại sao bạn có thể kết thúc với các dự đoán tiêu cực, mặc dù tất cả các giá trị mục tiêu trong tập huấn luyện đều tích cực, đặc biệt khi bạn đề cập rằng điều này xảy ra nhiều hơn thường khi bạn tăng số lượng cây.


Đây là câu trả lời chính xác.
hahdawg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.