Phân loại với Gradient Boosting: Cách giữ dự đoán trong [0,1]


17

Câu hỏi

Tôi đang đấu tranh để hiểu cách dự đoán được giữ trong khi thực hiện phân loại nhị phân với Gradient Boosting.[0,1]

Giả sử chúng ta đang làm việc với một vấn đề phân loại nhị phân và hàm mục tiêu của chúng ta là mất nhật ký, , trong đó y là biến mục tiêu { 0 , 1 }yilog(Hm(xi))+(1yi)log(1Hm(xi))y{0,1} là mô hình hiện tại của chúng tôi.H

Khi đào tạo người học yếu tiếp theo sao cho mô hình mới của chúng ta là H i = H i - 1 + h i , cơ chế nào được cho là giữ H i[ 0 , 1 ] ? Hoặc, có thể một câu hỏi phù hợp hơn, có một cơ chế như vậy?hiHi=Hi1+hiHi[0,1]


Thông tin thêm về những gì tôi đang làm

Tôi đang cố gắng thực hiện tăng cường độ dốc, sử dụng cây hồi quy. Điều tôi phải làm để tránh đó là nhân với hệ số c [ 0 , c max ] , sao cho H + c max h không xuống dưới 0 hoặc trên một và tôi chọn c trong phạm vi này giảm thiểu hàm mất.hic[0,cmax]H+cmaxhc

Điều này mang đến một vấn đề sau: Sau một số vòng, tôi có một điểm được phân loại hoàn hảo và phân chia tốt nhất có sẵn để đẩy trình phân loại theo hướng của gradient muốn đẩy điểm này lên trên một điểm, điều mà tôi chắc chắn không xảy ra bởi cài đặt . Do đó, tất cả các lần lặp tiếp theo sẽ chọn cùng một phần tách và cùng c = 0 .c=0c=0

Tôi đã thử thực hành chính quy phổ biến

  • Giảm tỷ lệ học bằng cách nhân bởi μ = 0,01 . Điều này chỉ trì hoãn vấn đề.cμ=0.01
  • Lấy mẫu không gian tính năng, nhưng một số điểm rất dễ phân loại, họ đánh dấu vào hầu hết mọi ô trong "đây có phải là số dương không?" hình thức, và hầu hết mọi "phân chia tốt" cho thấy hành vi này.

Tôi nghĩ rằng đây không phải là vấn đề của các tham số, và cần có thêm âm thanh cách để sửa lỗi này. Tôi không loại bỏ khả năng việc triển khai của tôi bị hỏng, nhưng tôi không tìm thấy gì để giải quyết vấn đề này.

Những gì chúng ta đang thao túng, trong bối cảnh mất mát hậu cần, nên là một xác suất, vậy làm thế nào để chúng ta tránh nó?


Trực giác của tôi sẽ là đưa mô hình mà chúng ta đang xây dựng, , vào một hàm sigmoid sao cho nó bị ràng buộc với [ 0 , 1 ] , và tôi đoán rằng nó sẽ hoạt động, nhưng tôi muốn biết liệu có giải pháp nào khác không. Vì việc tăng cường độ dốc dường như được sử dụng thành công trong các nhiệm vụ phân loại, nên tồn tại một giải pháp "chính xác" (nghĩa là có biện minh).H[0,1]


Bạn có thể yêu cầu là bội số, trong đó ln ( H ) cư xử cộng hưởng với các chuyên gia khác của bạn. Hln(H)
Alex R.

Câu trả lời:


21

Tôi thích nghĩ về điều này tương tự với trường hợp của các mô hình tuyến tính và sự mở rộng của chúng đối với GLM (mô hình tuyến tính tổng quát).

Trong mô hình tuyến tính, chúng ta khớp một hàm tuyến tính để dự đoán đáp ứng của chúng ta

y^=β0+β1x1+βnxn

Để khái quát cho các tình huống khác, chúng tôi giới thiệu một hàm liên kết, biến đổi phần tuyến tính của mô hình thành thang đo của phản ứng (về mặt kỹ thuật đây là một liên kết nghịch đảo, nhưng tôi nghĩ dễ dàng hơn khi nghĩ về nó theo cách này, chuyển đổi công cụ dự báo tuyến tính thành một phản ứng, hơn là biến đổi phản ứng thành một yếu tố dự báo tuyến tính).

Ví dụ, mô hình logistic sử dụng hàm sigmoid (hoặc logit)

y^=11+exp((β0+β1x1+βnxn))

và hồi quy poisson sử dụng hàm số mũ

y^=exp(β0+β1x1+βnxn)

Để xây dựng một sự tương tự với tăng cường độ dốc, chúng tôi thay thế phần tuyến tính của các mô hình này bằng tổng số các cây được tăng cường. Vì vậy, ví dụ, trường hợp gaussian (tương tự với hồi quy tuyến tính) trở nên nổi tiếng

y^=ihi

trong đó là chuỗi những người học yếu. Trường hợp nhị thức tương tự như hồi quy logistic (như bạn đã lưu ý trong câu trả lời của mình)hi

y^=11+exp(ihi)

và poisson boosting tương tự như hồi quy poisson

y^=exp(ihi)

iβixi

Ví dụ, tổn thất nhị thức thường gặp là

iyilog(pi)+(1yi)log(1pi)

pipiLTôi . Thay vào đó, chúng ta có thể diễn đạt lại điều này như là một chức năng củaLTôi, (trong trường hợp này còn được gọi là tỷ lệ cược đăng nhập)

ΣTôiyTôiLTôi-đăng nhập(1+điểm kinh nghiệm(LTôi))

Sau đó, chúng ta có thể lấy độ dốc của điều này đối với Lvà tăng để giảm thiểu trực tiếp số lượng này.

Cuối cùng, khi chúng ta muốn đưa ra dự đoán cho người dùng, chúng ta mới áp dụng chức năng liên kết cho chuỗi cuối cùng của những người học yếu để đặt dự đoán theo cùng tỷ lệ với phản hồi. Trong khi phù hợp với mô hình, chúng tôi làm việc nội bộ trên quy mô tuyến tính toàn bộ thời gian.


2
Đồng ý với "viết hàm mất mát được tối thiểu hóa như một hàm của phần tuyến tính của mô hình". Nhưng tôi nghĩ một cách đơn giản để hiểu nó mà không lấy tỷ lệ cược log là: đối với phần tuyến tính của mô hình, tức làr(,), think of the loss function as i(yilog11+er+(1yi)log(111+er)), and the pseudo-residual is just to make the derivative of loss w.r.t. r.
user2830451

@ matthew-drury Bạn có thể vui lòng thêm một chút ánh sáng vào phần đa cực của lớp K của cùng một thuật toán trong đó ý tưởng tương tự được mở rộng để làm việc cho nó không?
MixCoding

6

Sau một số nghiên cứu, dường như trực giác của tôi và bình luận của Alex R. là đúng.

Để xây dựng một mô hình liên tục với các dự đoán trong [0,1], người ta có thể đặt mô hình Hvào một hàm logistic (Wikipedia) , sao choHR, chúng ta có

11+e-H[0,1]
Các bước tăng cường độ dốc sau đó lấy đạo hàm đối với H và cập nhật mô hình, như thể hàm logistic là một phần của hàm chi phí và nó hoạt động.

Điều này đã được đề xuất trong hồi quy logistic phụ gia trên giấy : một quan điểm thống kê về việc tăng cường , bởi Friedman, Hastie và Tibshirani, để xây dựng LogitBoost (Wikipedia) , một bản chuyển thể của AdaBoost (Wikipedia) cho Mất logistic.

Nói một cách rất cơ bản, nếu có thể đi từ hồi quy tuyến tính sang hồi quy logistic bằng cách thêm một sigmoid, thì nó cũng hoạt động để chuyển đổi tăng hồi quy sang tăng phân loại.

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.