Tại sao Rừng ngẫu nhiên không xử lý các giá trị bị thiếu trong các yếu tố dự đoán?


Câu trả lời:


34

Gradient Boosting Plants sử dụng cây GIỎI (trong một thiết lập tiêu chuẩn, như đã được đề xuất bởi các tác giả của nó). Cây GIỎI cũng được sử dụng trong Rừng ngẫu nhiên. Những gì @ user777 nói là đúng, rằng các cây RF xử lý các giá trị bị thiếu bằng cách cắt ngang với mức trung bình, bằng mức trung bình / chế độ thô, bằng cách lấy trung bình / chế độ dựa trên mức gần đúng. Những phương pháp này được đề xuất bởi Breiman và Cutler và được sử dụng cho RF. Đây là một tài liệu tham khảo từ các tác giả Thiếu giá trị trong tập huấn luyện .

Tuy nhiên, người ta có thể xây dựng GBM hoặc RF với các loại cây quyết định khác. Sự thay thế thông thường cho GIỎ HÀNG là C4.5 do Quinlan đề xuất. Trong C4.5, các giá trị bị thiếu không được thay thế trên tập dữ liệu. Thay vào đó, hàm tạp chất được tính toán có tính đến các giá trị bị thiếu bằng cách phạt điểm tạp chất với tỷ lệ của các giá trị bị thiếu. Trong thử nghiệm, thiết lập đánh giá trong một nút có kiểm tra với giá trị bị thiếu, dự đoán được xây dựng cho từng nút con và được tổng hợp sau (bằng cách tính trọng số).

Bây giờ, trong nhiều triển khai, C4.5 được sử dụng thay vì GIỎ HÀNG. Lý do chính là để tránh tính toán đắt tiền (GIỎI có các cách tiếp cận thống kê chặt chẽ hơn, đòi hỏi tính toán nhiều hơn), kết quả có vẻ tương tự nhau, các cây kết quả thường nhỏ hơn (vì GIỎI là nhị phân và C4.5 không). Tôi biết rằng Weka sử dụng phương pháp này. Tôi không biết các thư viện khác, nhưng tôi hy vọng nó không phải là một tình huống đơn lẻ. Nếu đó là trường hợp với việc triển khai GBM của bạn, thì đây sẽ là một câu trả lời.



Bạn đã chạm vào "phạt điểm tạp chất với tỷ lệ thiếu giá trị". Làm thế nào điều này ảnh hưởng trực tiếp đến việc lựa chọn các giá trị kích thước tối ưu được chọn ở một cấp độ / nhánh cụ thể của cây?
javadba

16

"[Lý do] lý do [để RF] không xử lý các giá trị bị thiếu là gì? Máy tăng cường độ dốc, cây hồi quy xử lý các giá trị bị thiếu. Tại sao Rừng ngẫu nhiên không làm điều đó?"

RF không xử lý thiếu giá trị, chỉ cần không phải trong cùng một cách mà Toán và các thuật toán cây quyết định tương tự khác làm. User777 mô tả chính xác hai phương pháp được RF sử dụng để xử lý dữ liệu bị thiếu (chỉ số trung bình và / hoặc biện pháp dựa trên độ gần), trong khi Frank Harrell mô tả chính xác cách xử lý các giá trị bị thiếu trong GIỎI (chia tách thay thế). Để biết thêm, xem các liên kết trên thiếu dữ liệu xử lý cho Toán (hoặc FOSS anh em họ của nó: RPART ) và RF .

Một câu trả lời cho câu hỏi thực tế của bạn được đề cập rõ ràng, IMHO, trong bài báo năm 2008 của Ishwaran và cộng sự có tựa đề Rừng sinh tồn ngẫu nhiên . Họ cung cấp lời giải thích hợp lý sau đây về lý do tại sao RF không xử lý dữ liệu bị thiếu theo cách tương tự như GIỎI hoặc các trình phân loại cây quyết định tương tự:

"Mặc dù việc phân chia thay thế hoạt động tốt cho cây, nhưng phương pháp này có thể không phù hợp với rừng. Tốc độ là một vấn đề. Tìm kiếm sự phân chia thay thế là chuyên sâu về mặt tính toán và có thể trở nên không khả thi khi trồng một số lượng lớn cây, đặc biệt là đối với cây bão hòa hoàn toàn được sử dụng bởi Ngoài ra, các phân chia thay thế thậm chí có thể không có ý nghĩa trong mô hình rừng. RF chọn ngẫu nhiên các biến khi tách một nút và, do đó, các biến trong một nút có thể không được sửa chữa và phân tách thay thế hợp lý có thể không tồn tại. thay thế thay thế làm thay đổi việc giải thích một biến, điều này ảnh hưởng đến các biện pháp như [Tầm quan trọng của biến].

Vì những lý do này, một chiến lược khác là cần thiết cho RF. "

Đây là một khía cạnh, nhưng đối với tôi, điều này đặt ra câu hỏi cho những người cho rằng RF sử dụng một nhóm các mô hình GIỎ HÀNG. Tôi đã thấy tuyên bố này được đưa ra trong nhiều bài viết, nhưng tôi chưa bao giờ thấy những tuyên bố như vậy có nguồn gốc từ bất kỳ văn bản có thẩm quyền nào trên RF. Đối với một, các cây trong RF được trồng mà không cần cắt tỉa , thường không phải là cách tiếp cận tiêu chuẩn khi xây dựng mô hình GIỎ HÀNG. Một lý do khác sẽ là lý do bạn ám chỉ trong câu hỏi của bạn: GIỎI và các nhóm quyết định khác xử lý các giá trị bị thiếu, trong khi đó [bản gốc] RF thì không, ít nhất là không bên trong như GIỎI.

Với những suy nghĩ đó, tôi nghĩ bạn có thể nói rằng RF sử dụng một nhóm các cây quyết định giống như GIỎI (nghĩa là một bó cây chưa được xử lý, phát triển đến mức tối đa của chúng, mà không có khả năng xử lý dữ liệu bị thiếu thông qua việc tách thay thế). Có lẽ đây là một trong những khác biệt ngữ nghĩa đúng đắn, nhưng đó là một trong những điều tôi nghĩ đáng chú ý.


EDIT : Về phía tôi, không liên quan đến câu hỏi thực tế, tôi đã tuyên bố rằng "Tôi chưa bao giờ thấy những tuyên bố như vậy có nguồn gốc từ bất kỳ văn bản có thẩm quyền nào trên RF". Hóa ra Breiman DID nói rõ rằng các cây quyết định GIỎI được sử dụng trong thuật toán RF gốc:

"Rừng ngẫu nhiên đơn giản nhất với các tính năng ngẫu nhiên được hình thành bằng cách chọn ngẫu nhiên, tại mỗi nút, một nhóm nhỏ các biến đầu vào để phân tách. Trồng cây bằng phương pháp GIỎI để kích thước tối đa và không cắt tỉa." [Nhấn mạnh của tôi]

Nguồn: p.9 của Rừng ngẫu nhiên. Breiman (2001)

Tuy nhiên, tôi vẫn đứng vững (mặc dù bấp bênh hơn) với quan điểm rằng đây là những cây quyết định giống như GIỎI mà chúng được trồng mà không cần cắt tỉa, trong khi GIỎI thường không bao giờ chạy trong cấu hình này vì nó gần như chắc chắn sẽ phù hợp với dữ liệu của bạn ( do đó việc cắt tỉa ở nơi đầu tiên).


11

Rừng ngẫu nhiên xử lý dữ liệu bị thiếu và có hai cách khác nhau để làm như vậy:

1) Không bỏ qua dữ liệu bị thiếu, nhưng cung cấp suy luận. 2) Nhập dữ liệu. Dữ liệu được tranh luận sau đó được sử dụng để suy luận.

Cả hai phương pháp đều được triển khai trong gói RandomForestSRC của tôi (được viết cùng với Udaya Kogalur). Đầu tiên, điều quan trọng cần nhớ là bởi vì các khu rừng ngẫu nhiên sử dụng lựa chọn tính năng ngẫu nhiên, các phương pháp dữ liệu thiếu truyền thống được sử dụng bởi các cây đơn lẻ (GIỎI và tương tự) không áp dụng. Điểm này đã được thực hiện ở Ishwaran et al. (2008), "Rừng sinh tồn ngẫu nhiên", Biên niên sử thống kê ứng dụng , 2 , 3 , và được khớp nối độc đáo bởi một trong những nhà bình luận.

Phương thức (1) là phương pháp "trên đường bay nhanh" (OTFI). Trước khi chia một nút, dữ liệu bị thiếu cho một biến được xác định bằng cách rút ngẫu nhiên các giá trị từ dữ liệu trong túi không bị thiếu. Mục đích của dữ liệu được liệt kê này là để có thể gán các trường hợp cho các nút con trong trường hợp nút được phân chia trên một biến có dữ liệu bị thiếu. Tuy nhiên, dữ liệu tranh chấp không được sử dụng để tính toán thống kê phân tách, chỉ sử dụng dữ liệu không thiếu. Sau khi phân chia nút, dữ liệu được liệt kê được đặt lại thành thiếu và quá trình được lặp lại cho đến khi đạt được các nút cuối. OTFI bảo tồn tính toàn vẹn của dữ liệu ngoài túi và do đó, các giá trị hiệu suất như tầm quan trọng thay đổi (VIMP) vẫn không thiên vị. Thuật toán OTFI được mô tả trong Ishwaran et al (2008) và được triển khai trong gói RandomSurvivalForest đã nghỉ hưu,

Phương thức (2) được triển khai bằng hàm "impute" trong RandomForestSRC. Các phương pháp phân tách không được giám sát, ngẫu nhiên và đa biến để xử lý dữ liệu có sẵn. Ví dụ, phân tách đa biến tổng quát hóa phương pháp cắt bỏ missForest rất thành công ( Stekhoven & Bühlmann (2012), "Bỏ qua giá trị thiếu tham số không tham số của MissForest đối với dữ liệu kiểu hỗn hợp", Bioinformatics , 28 , 1 ). Gọi hàm impute với dữ liệu bị thiếu sẽ trả về một khung dữ liệu được liệt kê có thể phù hợp bằng cách sử dụng hàm rừng chính "rfsrc".

Một so sánh chi tiết về các thuật toán dữ liệu thiếu rừng khác nhau được triển khai bằng cách sử dụng "impute" đã được mô tả trong một bài báo gần đây với "Thuật toán dữ liệu mất rừng ngẫu nhiên" của Fei Tang , 2017 . Tôi khuyên bạn nên tham khảo các tệp trợ giúp của "rfsrc" và "impute" từ RandomForestSRC để biết thêm chi tiết về việc buộc tội và OTFI.


3
Chào mừng đến với trang web của chúng tôi! Lưu ý rằng tên người dùng, nhận dạng và liên kết đến trang người dùng của bạn sẽ tự động được thêm vào mỗi bài đăng bạn thực hiện, do đó không cần phải đăng bài viết của bạn. Trong thực tế, chúng tôi thích bạn không.
Cá bạc

1
Cảm ơn câu trả lời thú vị (+1). Tôi đã tự do thêm các tài liệu tham khảo và liên kết đầy đủ cho một vài bài báo được trích dẫn, nhưng không thể tìm thấy Tang & Ishwaran (2015), "Thuật toán dữ liệu bị mất rừng ngẫu nhiên". Nó đã được xuất bản chưa?
Scortchi - Phục hồi Monica

9

Phân vùng đệ quy sử dụng các phân chia thay thế dựa trên các yếu tố dự đoán không bị thiếu có tương quan với yếu tố dự đoán sở hữu giá trị còn thiếu cho một quan sát. Về lý thuyết, dường như các khu rừng ngẫu nhiên sẽ được thực hiện sử dụng cùng một ý tưởng. Tôi không biết có phần mềm rừng ngẫu nhiên nào đã làm như vậy không.


7

Random Forest có hai phương pháp để xử lý các giá trị còn thiếu, theo Leo Breiman và Adele Cutler, người đã phát minh ra nó.

Đầu tiên là nhanh và bẩn: nó chỉ điền vào giá trị trung bình cho các biến liên tục hoặc giá trị không thiếu phổ biến nhất theo lớp .

Phương thức thứ hai điền vào các giá trị bị thiếu, sau đó chạy RF, sau đó đối với các giá trị liên tục bị thiếu, RF tính trung bình trọng số lân cận của các giá trị bị thiếu. Sau đó, quá trình này được lặp lại nhiều lần. Sau đó, mô hình được đào tạo lần cuối cùng bằng cách sử dụng bộ dữ liệu được liệt kê bằng RF.


Cảm ơn bạn vì câu trả lời! Nhưng, cả hai phương pháp này đều thay thế các giá trị còn thiếu. Nhưng trong GBM hoặc cây hồi quy thiếu giá trị không thay thế cho bất cứ điều gì. Sự khác biệt về lý thuyết giữa, ví dụ GBM và RF theo nghĩa này là gì?
Fedorenko Kristina

Tôi không phải là chuyên gia về GBM, nhưng việc xử lý RF đối với các giá trị bị thiếu dường như bắt nguồn từ ý tưởng của việc cắt bỏ, en.wikipedia.org/wiki/Imputation_(statistic) Trong trường hợp các giá trị bị thiếu không bị mất một cách ngẫu nhiên, bạn kết quả có thể bị sai lệch do mất tích. Cố gắng cố gắng để phục hồi các giá trị còn thiếu này và giảm sai lệch.
Phục hồi lại

2

Thay vì sử dụng các giá trị trung bình, v.v., tôi khuyên bạn nên xem xét gói missRanger (hiện đang được phát triển trên Github) hoặc gói R missForest). Cả hai gói này đều sử dụng các khu rừng ngẫu nhiên để lần đầu tiên áp đặt dữ liệu của bạn bằng một phương pháp tương tự như nhiều lần cắt ngang thông qua các phương trình chuỗi (MICE). Đây sẽ là phương pháp cắt bỏ thích hợp để sử dụng vì nó tương ứng chặt chẽ với mô hình phân tích thực tế của bạn. Sau đó, bạn có thể sử dụng tất cả dữ liệu của mình mà không phải lo lắng về việc giảm các hàng riêng lẻ do thiếu các quan sát. Ngoài ra, các giá trị được liệt kê sẽ thực tế hơn nhiều so với việc chỉ chọn trung bình hoặc chế độ.

Bạn chỉ có thể sử dụng một bộ dữ liệu được liệt kê đầy đủ cho các phân tích của mình, nhưng cách tốt nhất để kết hợp tính không chắc chắn đối với các giá trị bị thiếu là chạy nhiều lần của các phương pháp cắt bỏ này, sau đó ước tính mô hình của bạn trên từng bộ dữ liệu kết quả (ví dụ: nhiều buộc tội) và sau đó kết hợp các ước tính bằng cách sử dụng các quy tắc của Rubin (xem các công cụ giảm thiểu gói R).


0

Đối với GIỎ HÀNG, bạn có thể áp dụng phương pháp thiếu thuộc tính (MIA). Đó là, đối với các dự đoán phân loại, mã bạn bị thiếu như một danh mục riêng biệt. Đối với các yếu tố dự đoán số, bạn tạo hai biến mới cho mỗi biến có các lỗi: một trong đó bạn viết mã sai là -Inf và một biến bạn viết mã sai là + Inf. Sau đó, bạn áp dụng một hàm rừng ngẫu nhiên như bình thường cho dữ liệu của bạn.

Ưu điểm của MIA: 1) Giá rẻ về mặt tính toán, 2) không mang lại nhiều bộ dữ liệu và do đó mô hình hóa, vì nhiều lần xử lý dữ liệu (tài liệu về việc thiếu dữ liệu nói chung đồng ý rằng một bộ dữ liệu được liệt kê là không đủ), 3) không yêu cầu bạn chọn phương pháp thống kê và / hoặc mô hình để đưa dữ liệu vào.

Các chức năng ctree()cforest()từ gói bộ công cụ cho phép áp dụng MIA bằng cách chuyển ctree_control(MIA = TRUE)đến các controlđối số của chúng .

Chương trình RuleFit của Jerome Friedman dường như sử dụng MIA để xử lý các vụ bỏ lỡ, xem https://statweb.stanford.edu/~jhf/r-rulefit/rulefit3/RuleFit_help.html#xmiss .

Một mô tả về phương pháp MIA có thể được tìm thấy trong Twala et al. (2008):

Twala, BETH, Jones, MC và Hand, DJ (2008). Phương pháp tốt để đối phó với dữ liệu bị thiếu trong cây quyết định. Thư nhận dạng mẫu, 29 (7), 950-956.

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.