2012-04-11 27 views
19

Các trang trợ giúp cho randomforest::randomforest() nói:Tham số 'classwt' trong hàm RandomForest trong gói RandomForest trong R là gì?

"classwt - Priors của các lớp không cần phải thêm lên đến một Ignored cho hồi quy.."

Có thể đặt tham số classwt giúp khi bạn có dữ liệu không cân bằng nặng, tức là. các chuyên gia lớp học khác nhau mạnh mẽ?

Làm cách nào để đặt classwt khi đào tạo mô hình trên tập dữ liệu với 3 lớp với vectơ của các chuyên gia bằng (p1, p2, p3) và trong các chuyên gia thiết lập thử nghiệm là (q1, q2, q3)?

+3

Tôi không chắc chắn về câu hỏi thứ hai của bạn, nhưng 'classwt' tôi tin được sử dụng khi lấy mẫu từ dữ liệu của bạn, sao cho mỗi mẫu cho mỗi cây được vẽ từ các lớp của bạn với xác suất đó (sau khi chuẩn hóa). – joran

+0

strata mang lại hiệu suất giống như classwt và dễ kiểm soát hơn, hãy xem hướng dẫn này trên SO: http://stats.stackexchange.com/questions/157714/r-package-for-weighted-random-forest-classwt-option/158030 # 158030 –

+0

@joran đó là chiến thuật mà bạn đang mô tả. Classwt được sử dụng để cân mẫu khi tìm điểm ngắt tối ưu để tách nút và xác định dự đoán nút trong khi đào tạo. –

Trả lời

21

có thể đặt tham số classwt trợ giúp khi bạn có dữ liệu không cân bằng nặng - các chuyên gia về các lớp khác nhau mạnh?

Có, các giá trị cài đặt của classwt có thể hữu ích cho các tập dữ liệu không cân bằng. Và tôi đồng ý với joran, rằng những giá trị này được trasformed trong xác suất cho lấy mẫu dữ liệu đào tạo (theo các đối số của Breiman trong bài báo gốc của mình).

Làm thế nào thiết lập classwt khi trong tập dữ liệu đào tạo với 3 lớp bạn có vector của priors bằng (p1, p2, p3), và trong kiểm tra thiết lập priors là (q1, q2, q3)?

Đối với đào tạo bạn chỉ có thể xác định

rf <- randomForest(x=x, y=y, classwt=c(p1,p2,p3)) 

Đối với thử nghiệm thiết lập không priors thể được sử dụng: 1) không có tùy chọn như vậy trong predict phương pháp gói randomForest; 2) trọng lượng chỉ có ý nghĩa cho việc đào tạo mô hình chứ không phải để dự đoán.

+0

Khi tôi hiểu các thầy tu (p1, p2, p3) là đặc trưng của dân số nói chung, chứ không phải tập huấn luyện cụ thể. Nếu tôi muốn dự đoán các lớp trong bộ dữ liệu thử nghiệm và tôi biết rằng các lớp probabilies trong tập hợp là (q1, q2, q3) hơn là thiết lập classwt = c (q1, q2, q3) sẽ giúp rừng ngẫu nhiên khám phá không gian đào tạo theo cách tốt hơn . – Qbik

+0

Không, các trọng số của lớp này chỉ dành riêng cho tập huấn luyện. Ví dụ, nếu bạn có tập huấn luyện cân bằng, nói chung không cần sử dụng tham số 'classwt'. Nhưng đồng thời bạn có thể có bộ kiểm tra không cân bằng, và tôi hy vọng rằng việc thay đổi weghts lớp sẽ không cải thiện dự đoán thiết lập thử nghiệm trong trường hợp như vậy. Nói cách khác, sử dụng 'classwt' bạn có thể tăng độ chính xác dự đoán cho một trong các lớp và giảm dần cho một lớp khác. Bạn có thể chơi với tham số này một chút và nhìn vào OOB thiết lập số liệu thống kê dự đoán, ví dụ. – DrDom

Các vấn đề liên quan