Liệu lựa chọn tính năng Boruta (trong R) có tính đến mối tương quan giữa các biến không?


8

Tôi là một người mới làm quen với R và lựa chọn tính năng, và đã thử gói Boruta để chọn (giảm) số lượng biến của tôi (n = 40). Tôi nghĩ rằng phương pháp này cũng đã tính đến mối tương quan có thể có giữa các biến, tuy nhiên, hai (trong số 20 biến được chọn) có mối tương quan cao và hai biến khác hoàn toàn tương quan. Điều này có bình thường không? Không phải phương pháp Boruta đã phân loại một trong hai là không quan trọng sao?

Câu trả lời:


10

..., Hai (trong số 20 biến được chọn) có mối tương quan cao và hai biến khác hoàn toàn tương quan. Điều này có bình thường không? Không phải phương pháp Boruta đã phân loại một trong hai là không quan trọng sao?

Có nó là bình thường. Boruta có xu hướng tìm tất cả các tính năng liên quan đến biến trả lời . Nói một cách chính xác, một biến dự đoán x i được cho là có liên quan đến y nếu x iy không độc lập có điều kiện với một số biến dự đoán khác (hoặc không có gì, điều đó có nghĩa đơn giản là x iy không độc lập).yxTôiyxTôiyxTôiy

Hãy xem xét ví dụ đơn giản này:

set.seed(666)
n <- 100
x1 <- rnorm(n)
x2 <- x1 + rnorm(n,sd=0.5)
x3 <- rnorm(n)
y <- x2 + rnorm(n) 

Bạn thấy rằng , thì x 2 có liên quan đến y , vì yx 2 không độc lập. Bạn cũng thấy x 2 = x 1 + nhiễu và sau đó y không độc lập với x 2 . Biến duy nhất không liên quan đến yx 3 , bởi vì:y= =x2+tiếng ồnx2yyx2x2= =x1+tiếng ồnyx2yx3

  • x 3 là độc lậpyx3
  • x 3 độc lập có điều kiện với x 1yx3x1
  • x 3 là độc lập có điều kiện ( x 1 , x 2 )yx3(x1,x2)

Sau đó Boruta tìm thấy kết quả mong đợi:

> library(Boruta)
> Boruta(data.frame(x1,x2,x3), y)
Boruta performed 30 iterations in 2.395286 secs.
 2 attributes confirmed important: x1, x2.
 1 attributes confirmed unimportant: x3.

Có một mối tương quan cao giữa x 2 , nhưng Boruta không bận tâm về điều đó:x1x2

> cor(x1,x2)
[1] 0.896883

7

Nó nằm trong bản chất của thuật toán. Chúng ta hãy giả sử rằng chúng ta có hai tính năng có ý nghĩa X 2 có mối tương quan chặt chẽ.X1X2

Từ bài báo http://arxiv.org/abs/1106.5112 (Lựa chọn tất cả các tính năng có liên quan bằng cách sử dụng Rừng ngẫu nhiên, Miron B. Kursa, Witold R. Rudnicki) chúng ta có thể mô tả ngắn về thuật toán boruta:

"Để giải quyết vấn đề này, chúng tôi đã phát triển một thuật toán cung cấp các tiêu chí để lựa chọn các thuộc tính quan trọng. Thuật toán phát sinh từ tinh thần của rừng ngẫu nhiên - chúng tôi đối phó với các vấn đề bằng cách thêm ngẫu nhiên vào hệ thống. Ý tưởng thiết yếu rất đơn giản: chúng tôi tạo một bản sao ngẫu nhiên của hệ thống, hợp nhất bản sao với bản gốc và xây dựng bộ phân loại cho hệ thống mở rộng này. Để khẳng định tầm quan trọng của biến trong hệ thống ban đầu, chúng tôi so sánh nó với các biến ngẫu nhiên. hơn các biến ngẫu nhiên được coi là quan trọng. "

X1X2X1X2

X1X2X1X2X^1X^2X1X^2X1X2X2X^2X2


Bạn có tạo các tính năng ngẫu nhiên từ một tính năng nhất định
Milan Amrut Joshi

Nếu bạn đã quen thuộc với Python / pandas.DataFrames, bạn có thể tìm một giải pháp tại đây: stackoverflow.com/questions/15772009/
mẹo

3

Có nó là bình thường. Thuật toán Boruta loại bỏ các thuộc tính không có giá trị đối với trình phân loại, để lại tập hợp các thuộc tính 'tất cả có liên quan', có thể bao gồm các thuộc tính tương quan. Tương phản với tập hợp 'tối ưu tối thiểu' (không nên chứa tương quan).

Vậy tại sao sau đó, người ta nên sử dụng phương pháp này để lựa chọn tính năng? Bạn có thể thấy trích dẫn này từ bài báo gốc hữu ích:

Tìm tất cả các thuộc tính có liên quan, thay vì chỉ các thuộc tính không dư thừa, có thể rất hữu ích trong chính nó. Đặc biệt, điều này là cần thiết khi người ta quan tâm đến việc hiểu các cơ chế liên quan đến chủ đề quan tâm, thay vì chỉ xây dựng một mô hình dự đoán hộp đen.

Ví dụ, khi xử lý kết quả đo biểu hiện gen trong bối cảnh ung thư, việc xác định tất cả các gen liên quan đến ung thư là cần thiết để hiểu đầy đủ về quá trình, trong khi một bộ gen tối ưu tối ưu có thể hữu ích hơn như các dấu hiệu di truyền.

Vì vậy, nếu mục tiêu chính của bạn là tìm hiểu mối liên hệ nhân quả giữa các yếu tố dự đoán và kết quả, chỉ xem xét bộ biến tối ưu có thể khiến bạn lạc lối và bạn cần nghiên cứu tập hợp có liên quan.

Tuy nhiên, nếu những gì bạn đang tìm kiếm là một mô hình hiệu quả để phù hợp, bạn nên sử dụng bộ tối ưu tối thiểu.

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.