Rừng ngẫu nhiên trong cài đặt Dữ liệu lớn


8

Tôi có một bộ dữ liệu với 5,818,446 dòng và 51 cột, trong đó 50 trong số đó là các yếu tố dự đoán. Phản ứng của tôi là định lượng, vì vậy tôi quan tâm đến mô hình hồi quy. Tôi đang cố gắng điều chỉnh một khu rừng ngẫu nhiên với dữ liệu của mình bằng gói caret. Tuy nhiên, tôi không có đủ RAM để làm việc đó.

Tôi đã tìm kiếm giải pháp cho vấn đề của mình. Bên cạnh việc có một máy tính mạnh hơn, có vẻ như tôi có thể tận dụng việc đóng bao để giải quyết vấn đề của mình. Do đó, ý tưởng của tôi là như sau:

  1. Tạo cả phân vùng đào tạo và kiểm tra từ tập dữ liệu gốc của tôi

  2. Lấy mẫu bằng cách thay thế một phần nhỏ trong tập dữ liệu xe lửa của tôi thành R (giả sử là 1% trong số đó, tức là 58.185 dòng)

  3. Phù hợp với một khu rừng ngẫu nhiên với phần dữ liệu nhỏ này

  4. Lưu kết quả mô hình

  5. Lặp lại các bước 2-4 1.000 lần

  6. Kết hợp 1.000 mô hình thu được từ các bước 2-5

Tuy nhiên, rừng ngẫu nhiên sử dụng đóng gói để phù hợp với mô hình với dữ liệu và do đó tôi không chắc cách tiếp cận của mình có đúng không. Vì vậy, tôi có một số câu hỏi cho bạn:

i) Cách tiếp cận của tôi có đúng không? Ý tôi là, vì tôi không có đủ RAM trong hệ thống của mình, liệu có phù hợp với nhiều mô hình rừng ngẫu nhiên khác nhau với các khối dữ liệu khác nhau và kết hợp chúng sau không?

ii) Giả sử cách tiếp cận của tôi là chính xác, 1% dữ liệu là một quy tắc tốt cho kích thước mẫu của tôi? Ngay cả với 1% dữ liệu, tôi vẫn có .np

iii) Giả sử cách tiếp cận của tôi là chính xác, có một số bản sao cho các mô hình tôi nên sử dụng không? Tôi nghĩ đến 1.000 vì lý do.


Vì đóng bao là một phương pháp tạo ra mỗi cây quyết định trong một khu rừng ngẫu nhiên, làm thế nào về việc bạn chỉ thực hiện một DT trên 1% và sau đó kết hợp các cây ? Voila, một ngôi nhà nướng rừng ngẫu nhiên. Sau đó, bạn có thể xây dựng 1000 cây trở lên và thực hiện các tổ hợp cây ngẫu nhiên để xem cái gì hoạt động tốt nhất trên dữ liệu thử nghiệm của bạn; mặc dù sau đó bạn đang phù hợp với dữ liệu thử nghiệm của mình, vì vậy có thể chỉ cần lấy tất cả chúng và chạy với nó.
Engineero

Ôi! Hoặc kết hợp tất cả chúng với một lớp đầu ra được kết nối đầy đủ và sau đó huấn luyện lớp đó với l1sự đều đặn, thường giảm trọng lượng của các thành phần không đáng kể xuống gần như bằng 0, do đó bạn có thể xem bằng cách kiểm tra những cây nào bạn nên giữ.
Engineero

@Engineero Phương pháp bạn phác thảo thường được gọi là "bồn rửa nhà bếp ngẫu nhiên": phù hợp với một số lượng lớn người học yếu để tạo thành một cơ sở đại diện cho các tính năng ban đầu (thậm chí là các gốc quyết định) và sau đó là các nút thiết bị đầu cuối có trọng số . people.eecs.ber siêu.edu / ~ brecht / k bếpinks.html
Sycorax nói Phục hồi lại

1 / Tôi không có kiến ​​thức dứt khoát, vì vậy tôi không đăng câu trả lời. Nhưng phương pháp này nên ổn. Lưu ý rằng số lượng mẫu trong mỗi "lô" ngụ ý giới hạn trên về độ sâu của từng cây và do đó khả năng của mỗi cây phù hợp với dữ liệu, do đó bạn có thể xem xét điều chỉnh trên 0,5%, 1%, 2%, 4 % (thông thường) ... của dữ liệu khi tạo từng cây. Số lượng cây để sử dụng hoàn toàn là một câu hỏi tại thời điểm mô hình mất "cao nguyên"; sự lựa chọn này không cần phải điều chỉnh vì tổn thất dự kiến ​​là hàm giảm đơn điệu của đối với các quy tắc chấm điểm thích hợp liên tục. T
Sycorax nói phục hồi Monica

2 / Để biết thêm thông tin về số lượng cây, hãy xem câu trả lời của tôi tại đây: stats.stackexchange.com/questions/348245/ Kẻ
Sycorax nói Phục hồi lại

Câu trả lời:


3

Điều này không giải quyết các câu hỏi cụ thể của bạn, nhưng động lực đằng sau chúng. Các bigRFgói có thể giải quyết vấn đề của bạn:

Đây là triển khai R của thuật toán Rừng ngẫu nhiên của Leo Breiman và Adele Cutler để phân loại và hồi quy, với tối ưu hóa cho hiệu suất và xử lý các bộ dữ liệu quá lớn để xử lý trong bộ nhớ.

Cũng thế:

Đối với các tập dữ liệu lớn, dữ liệu huấn luyện, tính toán trung gian và một số đầu ra (ví dụ: ma trận gần) có thể được lưu trong bộ đệm bằng các đối tượng "big.matrix". Điều này cho phép các khu rừng ngẫu nhiên được xây dựng trên các tập dữ liệu khá lớn mà không đạt giới hạn RAM, điều này sẽ gây ra sự hoán đổi bộ nhớ ảo quá mức của hệ điều hành.

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.