Làm thế nào để giải thích đầu ra của tầm quan trọng của XGBoost?


37

Tôi đã chạy một mô hình xgboost. Tôi không biết chính xác làm thế nào để giải thích đầu ra của xgb.importance.

Ý nghĩa của Gain, Cover và Tần số là gì và làm thế nào để chúng tôi giải thích chúng?

Ngoài ra, Split, RealCover và RealCover% có nghĩa là gì? Tôi có một số thông số bổ sung ở đây

Có bất kỳ thông số nào khác có thể cho tôi biết thêm về tính năng quan trọng không?

Từ tài liệu R, tôi có một số hiểu rằng Gain là một cái gì đó tương tự như Thông tin đạt được và Tần suất là số lần một tính năng được sử dụng trên tất cả các cây. Tôi không biết Cover là gì.

Tôi đã chạy mã ví dụ được đưa ra trong liên kết (và cũng đã thử làm tương tự với vấn đề mà tôi đang giải quyết), nhưng định nghĩa phân tách được đưa ra ở đó không khớp với các số mà tôi đã tính toán.

importance_matrix

Đầu ra:

           Feature         Gain        Cover    Frequence
  1:            xxx 2.276101e-01 0.0618490331 1.913283e-02
  2:           xxxx 2.047495e-01 0.1337406946 1.373710e-01
  3:           xxxx 1.239551e-01 0.1032614896 1.319798e-01
  4:           xxxx 6.269780e-02 0.0431682707 1.098646e-01
  5:          xxxxx 6.004842e-02 0.0305611830 1.709108e-02

214:     xxxxxxxxxx 4.599139e-06 0.0001551098 1.147052e-05
215:     xxxxxxxxxx 4.500927e-06 0.0001665320 1.147052e-05
216:   xxxxxxxxxxxx 3.899363e-06 0.0001536857 1.147052e-05
217: xxxxxxxxxxxxxx 3.619348e-06 0.0001808504 1.147052e-05
218:  xxxxxxxxxxxxx 3.429679e-06 0.0001792233 1.147052e-05

Câu trả lời:


40

Từ câu hỏi của bạn, tôi giả sử rằng bạn đang sử dụng xgboost để phù hợp với các cây được tăng cường để phân loại nhị phân. Ma trận quan trọng thực sự là một đối tượng data.table với cột đầu tiên liệt kê tên của tất cả các tính năng thực sự được sử dụng trong các cây được tăng cường.

Ý nghĩa của bảng dữ liệu quan trọng như sau:

  1. Các Gain ngụ ý sự đóng góp tương đối của các tính năng tương ứng với mô hình tính bằng cách lấy đóng góp của mỗi tính năng cho từng cây trong mô hình. Giá trị cao hơn của số liệu này khi so sánh với tính năng khác ngụ ý nó quan trọng hơn để tạo dự đoán.
  2. Số liệu che phủ có nghĩa là số lượng quan sát tương đối liên quan đến tính năng này. Ví dụ: nếu bạn có 100 quan sát, 4 tính năng và 3 cây và giả sử tính năng1 được sử dụng để quyết định nút lá cho 10, 5 và 2 quan sát tương ứng trong cây1, cây2 và cây3; sau đó số liệu sẽ tính độ che phủ cho tính năng này là 10 + 5 + 2 = 17 quan sát. Điều này sẽ được tính cho cả 4 tính năng và bìa sẽ được biểu thị bằng 17 phần trăm cho tất cả các số liệu về tính năng của tất cả các tính năng.
  3. Các tần số (/ 'Tần') là tỷ lệ đại diện cho số tương đối của thời gian một tính năng đặc biệt xảy ra trong cây của mô hình. Trong ví dụ trên, nếu tính năng1 xảy ra trong 2 lần phân tách, 1 lần phân tách và 3 lần phân tách trong mỗi cây1, cây2 và cây3; thì trọng số cho Feature1 sẽ là 2 + 1 + 3 = 6. Tần suất cho Feature1 được tính bằng trọng số phần trăm của nó so với trọng số của tất cả các tính năng.

Gain là thuộc tính phù hợp nhất để diễn giải tầm quan trọng tương đối của từng tính năng.

Các biện pháp này đều tương đối và do đó tất cả tổng hợp thành một, một ví dụ từ mô hình xgboost được trang bị trong R là:

> sum(importance$Frequence)
[1] 1
> sum(importance$Cover)
[1] 1
> sum(importance$Gain)
[1] 1

1
Bìa chỉ được tính dựa trên các nút lá hoặc trên tất cả các phân chia?
fanfabbb

3

Cảm ơn Sandeep cho câu trả lời chi tiết của bạn. Tôi muốn sửa cái bìa đó được tính trên tất cả các phần tách và không chỉ các nút lá.

Chúng ta hãy đi qua một ví dụ đơn giản với dữ liệu được cung cấp bởi thư viện xgboost.

library('xgboost')

data(agaricus.train, package='xgboost')
data(agaricus.test, package='xgboost')

train <- agaricus.train
test <- agaricus.test

X = train$data

y = train$label

bst <- xgboost(data = X, label = y, max.depth = 2,
           eta = 1, nthread = 2, nround = 2,objective = "binary:logistic",
           reg_lambda = 0, reg_alpha = 0)

xgb.model.dt.tree(agaricus.train$data@Dimnames[[2]], model = bst)

xgb.importance(agaricus.train$data@Dimnames[[2]], bst)

Đầu ra -

Đổ cây

Ma trận quan trọng

Hãy thử tính độ che phủ của mùi = không có trong ma trận quan trọng (0.495768965) từ bãi chứa cây.

Độ che phủ của mỗi phần tách trong đó mùi = không được sử dụng là 1628.2500 tại Node ID 0-0 và 765.9390 tại Node ID 1-1.

Tổng độ che phủ của tất cả các phần tách (tổng hợp trên cột che trong bãi chứa cây) = 1628.2500 * 2 + 786.3720 * 2

Độ che phủ của mùi = không có trong ma trận quan trọng = (1628.2500 + 765.9390) / (1628.2500 * 2 + 786.3720 * 2)

Do đó, chúng tôi chắc chắn rằng bìa được tính trên tất cả các phần tách!

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.