Các lựa chọn thay thế cho cây phân loại, với hiệu suất dự đoán tốt hơn (ví dụ: CV)?


23

Tôi đang tìm kiếm một giải pháp thay thế cho Cây phân loại có thể mang lại sức mạnh dự đoán tốt hơn.

Dữ liệu tôi đang xử lý có các yếu tố cho cả các biến giải thích và biến được giải thích.

Tôi nhớ đã đi qua các khu rừng ngẫu nhiên và mạng lưới thần kinh trong bối cảnh này, mặc dù chưa từng thử chúng trước đây, liệu có một ứng cử viên tốt khác cho một nhiệm vụ mô hình hóa như vậy (trong R, rõ ràng)?


5
Đừng bận tâm với mạng lưới thần kinh, đây là một công nghệ lạc hậu.

1
@mbq bạn vẫn đứng trước tuyên bố này chứ?
rhombidodecahedron

@rhombidodecahedron Chắc chắn, chơi với NN từ năm 2010 và bạn sẽ đồng ý. Ngoài ra, tôi nghi ngờ rằng bất kỳ mô hình DL nào cũng sẽ mang bất cứ thứ gì vào một bảng có dữ liệu (có lẽ là) kích thước nhỏ như vậy.

Câu trả lời:


25

Tôi nghĩ rằng sẽ rất đáng để thử dùng Rừng ngẫu nhiên ( RandomForest ); một số tài liệu tham khảo đã được cung cấp để trả lời các câu hỏi liên quan: Lựa chọn tính năng cho mô hình cuối cùng của Cameron khi thực hiện xác nhận chéo trong học máy ; Mô hình GIỎ HÀNG có thể được thực hiện mạnh mẽ? . Tăng / đóng bao làm cho chúng ổn định hơn một GIỎ đơn được biết là rất nhạy cảm với các nhiễu loạn nhỏ. Một số tác giả lập luận rằng nó đã thực hiện cũng như các máy SVM hoặc Gradient Boosting bị phạt (xem, ví dụ Cutler et al., 2009). Tôi nghĩ rằng họ chắc chắn vượt trội so với NN.

Boulesteix và Strobl cung cấp một cái nhìn tổng quan tuyệt vời về một số phân loại trong lựa chọn phân loại tối ưu và sai lệch âm trong ước tính tỷ lệ lỗi: một nghiên cứu thực nghiệm về dự đoán chiều cao (BMC MRM 2009 9: 85). Tôi đã nghe nói về một nghiên cứu tốt khác tại cuộc họp EAM IV , cần được xem xét trong Thống kê trong Y học ,

João Maroco , Dina Silva, Manuela Guerreiro, Alexandre de Mendonça. Các khu rừng ngẫu nhiên có làm tốt hơn các mạng thần kinh, các máy vectơ hỗ trợ và các phân loại phân tích phân biệt đối xử không? Một nghiên cứu trường hợp trong sự tiến hóa đến mất trí nhớ ở bệnh nhân cao tuổi với khiếu nại nhận thức

Tôi cũng thích gói caret : nó được ghi chép tốt và cho phép so sánh độ chính xác dự đoán của các phân loại khác nhau trên cùng một tập dữ liệu. Nó đảm nhiệm việc quản lý các mẫu đào tạo / kiểm tra, tính chính xác của máy tính, vv trong một số chức năng thân thiện với người dùng.

Các glmnet gói, từ Friedman và coll., Dụng cụ bị phạt GLM (xem xét trong Journal of Phần mềm thống kê ), vì vậy bạn vẫn ở trong khuôn khổ mô hình nổi tiếng.

Mặt khác, bạn cũng có thể tìm kiếm các trình phân loại dựa trên quy tắc kết hợp (xem Chế độ xem tác vụ CRAN trên Machine Learning hoặc 10 thuật toán hàng đầu trong khai thác dữ liệu để giới thiệu nhẹ nhàng về một số trong số chúng).

Tôi muốn đề cập đến một cách tiếp cận thú vị khác mà tôi dự định thực hiện lại trong R (thực ra, đó là mã Matlab), đó là Phân tích tương ứng phân biệt đối xử từ Hervé Abdi. Mặc dù ban đầu được phát triển để đối phó với các nghiên cứu mẫu nhỏ với rất nhiều biến giải thích (cuối cùng được nhóm thành các khối kết hợp), nó dường như kết hợp hiệu quả DA cổ điển với các kỹ thuật giảm dữ liệu.

Tài liệu tham khảo

  1. Cutler, A., Cutler, DR và ​​Stevens, JR (2009). Phương pháp dựa trên cây , trong phân tích dữ liệu chiều cao trong nghiên cứu ung thư , Li, X. và Xu, R. (chủ biên), trang 83-101, Springer.
  2. Saeys, Y., Inza, I. và Larrañaga, P. (2007). Một đánh giá về các kỹ thuật lựa chọn tính năng trong tin sinh học . Tin sinh học, 23 (19): 2507-2517.

2
+1 Câu trả lời tuyệt vời. Tôi cũng đồng ý với khuyến nghị chăm sóc.
Shane

12

Điều quan trọng là phải nhớ rằng không có một thuật toán nào luôn tốt hơn các thuật toán khác. Như Wolpert và Mac đã nói, "bất kỳ hai thuật toán nào cũng tương đương nhau khi hiệu suất của chúng được tính trung bình trên tất cả các vấn đề có thể xảy ra." (Xem Wikipedia để biết chi tiết.)

Đối với một ứng dụng nhất định, ứng dụng "tốt nhất" thường là một ứng dụng được liên kết chặt chẽ nhất với ứng dụng của bạn theo các giả định mà nó đưa ra, các loại dữ liệu mà nó có thể xử lý, các giả thuyết mà nó có thể đại diện, v.v.

Vì vậy, đó là một ý tưởng tốt để mô tả dữ liệu của bạn theo các tiêu chí như:

  • Tôi có một bộ dữ liệu rất lớn hoặc một bộ khiêm tốn?
  • Là chiều cao?
  • Là các biến số (liên tục / rời rạc) hoặc tượng trưng, ​​hoặc hỗn hợp, và / hoặc chúng có thể được chuyển đổi nếu cần thiết?
  • Là các biến có khả năng độc lập phần lớn hoặc khá phụ thuộc?
  • Có khả năng là các biến dư thừa, ồn ào hoặc không liên quan?
  • Tôi có muốn kiểm tra mô hình được tạo ra và cố gắng hiểu ý nghĩa của nó không?

Bằng cách trả lời những điều này, bạn có thể loại bỏ một số thuật toán và xác định các thuật toán khác có khả năng liên quan, và sau đó có thể kết thúc bằng một tập hợp nhỏ các phương thức ứng cử viên mà bạn đã chọn một cách thông minh có khả năng hữu ích.

Xin lỗi không cung cấp cho bạn một câu trả lời đơn giản, nhưng tôi hy vọng điều này sẽ giúp dù sao!


2
+1 Yêu câu trích dẫn. ("hai thuật toán bất kỳ đều tương đương khi hiệu suất của chúng được tính trung bình trên tất cả các vấn đề có thể xảy ra.")
Assad Ebrahim

8

Đối với phân loại nhiều lớp, máy vectơ hỗ trợ cũng là một lựa chọn tốt. Tôi thường sử dụng gói R kernlab cho việc này.

Xem bài báo JSS sau đây để có một cuộc thảo luận tốt: http://www.jstatsoft.org/v15/i09/


@Tal Đây là một đánh giá công bằng (hoặc tôi nghĩ vậy) về SVM so với RF: So sánh toàn diện các khu rừng ngẫu nhiên và máy vectơ hỗ trợ để phân loại ung thư dựa trên microarray, j.mp/ab7U8V . Tôi cũng thích kernlabđến e1071.
chl

2
@chl Tôi không thích bài báo này trong khi nó được tạo ra từ quan điểm học tập SVM - làm cho một sự lặp lại của thuật toán ngẫu nhiên (RF) chỉ là một thứ linh tinh; phụ lục 2 cũng cho thấy mức độ tồi tệ của việc áp dụng quy trình làm việc SVM cho RF. Tuy nhiên, tôi đồng ý rằng hầu như mọi lúc SVM đều có thể được điều chỉnh để vượt trội hơn RF vì thủ thuật kernel (mà RF đơn giản không có, trong khi điều đó không có nghĩa là nó không thể nói chung), nhưng với nỗ lực tối ưu hóa theo cấp số nhân.

@mbq Thật vậy, đây là một điểm tốt.
chl

3

Như đã đề cập Rừng ngẫu nhiên là một "nâng cấp" tự nhiên và ngày nay, SVM thường là kỹ thuật được khuyến nghị sử dụng.

Tôi muốn thêm rằng thường xuyên hơn là không chuyển sang SVM mang lại kết quả rất đáng thất vọng. Điều quan trọng là, trong khi các kỹ thuật như cây ngẫu nhiên hầu như không đáng để sử dụng, thì SVM lại phức tạp hơn một chút.

Tôi đã tìm thấy bài báo này trở lại vô giá khi tôi sử dụng SVM lần đầu tiên (Hướng dẫn thực hành để hỗ trợ phân loại véc tơ) http://www.csie.ntu.edu.tw/~cjlin/ con / guide / guide.pdf

Trong R, bạn có thể sử dụng gói e1071 cho SVM, nó liên kết với tiêu chuẩn thực tế (ít nhất là trong phần mềm miễn phí!) Thư viện libSVM.


2
kernlab cũng sử dụng libsvm để tối ưu hóa, do đó không có sự khác biệt lớn trong ý nghĩa đó (mặc dù nó linh hoạt hơn nhiều).
Shane

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.