Rừng ngẫu nhiên trên dữ liệu có cấu trúc đa cấp / phân cấp


13

Tôi còn khá mới mẻ với máy học, kỹ thuật GIỎI và những thứ tương tự, và tôi hy vọng sự ngây thơ của tôi không quá rõ ràng.

Random Forest xử lý các cấu trúc dữ liệu đa cấp / phân cấp như thế nào (ví dụ khi tương tác giữa các cấp được quan tâm)?

Đó là, tập dữ liệu với các đơn vị phân tích ở một số cấp bậc ( ví dụ: học sinh được lồng trong các trường học, với dữ liệu về cả học sinh và trường học).

Ví dụ, hãy xem xét một tập hợp dữ liệu đa cấp với các cá nhân ở cấp độ đầu tiên ( ví dụ: với dữ liệu về hành vi bỏ phiếu, nhân khẩu học, v.v.) được lồng trong các quốc gia ở cấp độ thứ hai (với dữ liệu cấp quốc gia; ví dụ: dân số):

ID voted age female country population
1 1 19 1 1 53.01
2 1 23 0 1 53.01
3 0 43 1 1 53.01
4 1 27 1 1 53.01
5 0 67 0 1 53.01
6 1 34 1 2 47.54
7 0 54 1 2 47.54
8 0 22 1 2 47.54
9 0 78 0 2 47.54
10 1 52 0 2 47.54

Hãy nói rằng đó votedlà biến trả lời / biến phụ thuộc và các biến khác là biến dự đoán / biến độc lập. Trong các loại trường hợp, lợi nhuận và các hiệu ứng cận biên của một biến (phụ thuộc một phần) đối với một số biến cấp cao hơn ( ví dụ , population) cho các biến cấp độ cá nhân khác nhau, vv, có thể là rất thú vị. Trong trường hợp tương tự như vậy, glmtất nhiên là phù hợp hơn - nhưng khi có nhiều biến, tương tác và / hoặc thiếu giá trị, và / hoặc bộ dữ liệu quy mô rất lớn, v.v., glmkhông đáng tin cậy lắm.

Câu hỏi con: Rừng ngẫu nhiên có thể xử lý rõ ràng loại cấu trúc dữ liệu này theo một cách nào đó không? Nếu được sử dụng bất kể, nó giới thiệu loại thiên vị nào? Nếu Rừng ngẫu nhiên không phù hợp, có phương pháp nào khác không?

(Câu hỏi Rừng ngẫu nhiên trên dữ liệu được nhóm có lẽ tương tự nhau, nhưng không thực sự trả lời điều này.)


Xin chào @MikaelAndersson, bạn đã tìm ra giải pháp cho những câu hỏi bạn nêu ra chưa? Tôi đang đối mặt với một tình huống tương tự và hy vọng được nghe kinh nghiệm của bạn. Cảm ơn.
NoviceProg

Câu trả lời:


4

Rừng ngẫu nhiên sẽ hoạt động tốt, nhưng bạn phải rất cẩn thận khi điều chỉnh các siêu đường kính (đặc biệt nếu bạn muốn một thước đo thực tế về hiệu suất tổng quát hóa). Các ước tính lỗi OOB truyền thống sẽ rất lạc quan vì có sự "kết nghĩa" tràn lan trong dữ liệu của bạn.

Để có được ước tính điều chỉnh và khái quát hóa phù hợp, bạn cần hiểu đặc điểm của bất kỳ dữ liệu mới nào bạn muốn gặp phải. Nếu bạn muốn ngoại suy sang các quốc gia mới, thì bạn sẽ cần thiết lập một số cách điều chỉnh lại mẫu dựa trên mẫu (chẳng hạn như xác thực chéo k-gấp) để lấy mẫu phân tầng theo quốc gia.

Bạn cũng cần cẩn thận với cách bạn mã hóa dữ liệu vào Khu rừng ngẫu nhiên. Có vẻ như đó countrylà một biến phân loại. Cho nó vào dưới dạng số sẽ hơi thô, nhưng không vô vọng (đặc biệt nếu bạn đặt mua ID bằng thứ gì đó hữu ích).


Bạn có thể mở rộng một chút về lý do tại sao các ước tính lỗi OOB sẽ quá lạc quan không?
dmartin

2
Tôi cho rằng sự lạc quan của họ phụ thuộc vào dữ liệu mới có thể trông như thế nào. Nếu dữ liệu mới đến từ các quận khác, thì khu rừng ngẫu nhiên này có thể sẽ không hoạt động cũng như lỗi OOB chỉ ra. Điều này là do các lỗi OOB vẫn đến từ các mẫu từ cùng một tập hợp các hạt chẳng hạn.
Shea Parkes

3

Tôi thực sự đang làm việc trên gói R chạy RandomForest với tư cách là trình phân loại cục bộ dọc theo hệ thống phân cấp lớp được xác định trước. Gói này có thể được tìm thấy trong R Forge dưới 'hie-ran-Forest'. Gói đã hoạt động, mặc dù nó không thành công trong một thử nghiệm cran (đối với MAC), tôi không chắc chính xác tại sao. Ngoài việc thực sự chạy RandomForest cho mỗi nút cha xuống cấu trúc phân cấp, gói còn chứa các hàm dự đoán và hàm hiệu suất. Một trong những thước đo hiệu năng thực sự chiếm cấu trúc lớp phân cấp.

Gói giải quyết tương tác ngang cấp bằng cách chạy rừng ngẫu nhiên đầu tiên dưới dạng phân loại cục bộ tại mỗi nút cha của hệ thống phân cấp lớp. Tiếp theo, chức năng dự đoán lấy ra tỷ lệ phiếu bầu trong túi mà mỗi trường hợp nhận được trong mỗi phân loại địa phương. Sau đó, có hai cách để biến tỷ lệ phiếu bầu thành phân loại rõ nét: 1. quy tắc đa số theo từng bước - Bắt đầu với trình phân loại cục bộ gần gốc cây nhất và chọn con của trình phân loại này nhận được tỷ lệ phiếu cao nhất. Tiếp theo, nhìn vào tất cả các phần tử con của nút đã chọn và chọn lại phần tử nhận được tỷ lệ phiếu bầu cao nhất trong phân loại cục bộ có liên quan. Tiếp tục cho đến khi đạt được một nút thiết bị đầu cuối. 2.

Tỷ lệ số phiếu nhân lên tương đương với tỷ lệ phiếu được tạo bởi một RandomForest thông thường


2
Bạn có thể làm rõ rằng gói của bạn giải quyết "tương tác ngang cấp", và nếu vậy, làm thế nào để làm điều này? Chỉ nói rằng một gói tồn tại không có nhiều câu trả lời (tôi không có ý quá quan trọng ở đây, nhưng CV đang tìm cách xây dựng một kho lưu trữ thông tin ML chất lượng cao vĩnh viễn & thực tế là một gói tồn tại không hoàn toàn đáp ứng tiêu chuẩn đó.)
gung - Tái lập Monica

Lưu ý, tên người dùng của bạn, với một liên kết đến trang người dùng của bạn, sẽ tự động được đính kèm vào mỗi bài đăng bạn thực hiện ở đây. Vì vậy, không cần phải đăng bài viết của bạn - thực tế, chúng tôi thích bạn hơn không. Nếu bạn muốn mọi người có thể liên hệ với bạn, bạn có thể đăng một phương thức (ví dụ: địa chỉ email của bạn) trên trang người dùng của bạn.
gung - Phục hồi Monica

Thật tuyệt, cảm ơn @YoniGavish. Tại sao không chỉnh sửa câu trả lời của bạn và thêm thông tin đó vào đó?
gung - Phục hồi Monica

@Gung có tốt hơn không?
Yoni Gavish

Vâng, điều đó sẽ làm điều đó, @YoniGavish, +1. Chào mừng đến với trang web.
gung - Phục hồi Monica

3

Trong một cây phân loại duy nhất, các nhóm này được mã hóa giống như bất kỳ biến phân loại nào khác. Điều này thường được thực hiện dưới dạng mã nhị phân hoặc chỉ sử dụng một số nguyên. Có các đối số khác nhau để sử dụng một trong hai. Trong các khu rừng ngẫu nhiên nếu bạn đang sử dụng mã hóa nhị phân, một số nhóm sẽ được bao gồm / loại trừ cho bất kỳ cây nào. Vì vậy, bạn có thể có một chỉ số cho country_2nhưng không country_3. Nếu bạn để biến nhóm là một số nguyên thì thứ tự cũng có thể ảnh hưởng đến kết quả. Nó có nghĩa là gì country > 5country < 12? Điều đó thay đổi như thế nào nếu bạn ngẫu nhiên dán nhãn lại các quốc gia có số nguyên mới?

Ở mỗi bước trong việc trồng cây, thuật toán đang tìm kiếm sự phân chia tối ưu hóa các tiêu chí. Nếu có sự khác biệt lớn giữa các nhóm thì biến nhóm sẽ rất quan trọng, nhưng nếu nó chỉ quan trọng ở mức độ vừa phải và bạn tỉa một cây, thì về cơ bản biến đó có thể bị loại trừ.

Giống như hầu hết các thuật toán học máy khác, GIỎI và các khu rừng ngẫu nhiên không nhất thiết phải tính đến sự phụ thuộc giữa các quan sát trong các nhóm theo cách bạn mong đợi trong mô hình hồi quy phân cấp. Nếu có sự phụ thuộc giữa các quan sát, nó phải được bắt bởi các thuật toán ngẫu nhiên rừng thông qua việc tạo ra nhiều cây có sử dụng các biến nhóm. Tuy nhiên, nếu các biến khác thể hiện sự phân biệt đối xử lớn hơn thì biến nhóm có thể bị bỏ qua.

Trong trường hợp của bạn, countrypopulationlà hoàn hảo collinear. Không có thông tin có được bằng cách sử dụng cả hai biến trong mô hình của bạn. Vì vậy, bạn có thể nghĩ về cách một mô hình rừng ngẫu nhiên sẽ xử lý các biến này trong dữ liệu của bạn.

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.