Thủ tục lựa chọn biến để phân loại nhị phân


29

Là gì lựa chọn biến / tính năng mà bạn thích để phân loại nhị phân khi có nhiều biến hơn / tính năng hơn so với quan sát trong tập học tập? Mục đích ở đây là để thảo luận về quy trình lựa chọn tính năng nào giúp giảm lỗi phân loại tốt nhất.

Chúng ta có thể sửa các ký hiệu cho tính nhất quán: vì , hãy để là tập hợp các quan sát từ nhóm . Vậy là kích thước của bộ học tập. Chúng tôi đặt là số lượng tính năng (tức là kích thước của không gian tính năng). Đặt biểu thị tọa độ thứ của .{ x i 1 , Mạnh , x i n i } i n 0 + n 1 = n p x [ i ] i x R ptôi{0,1}{x1tôi,Giáo dục,xntôitôi}in0+n1=npx[i]ixRp

Vui lòng cung cấp tài liệu tham khảo đầy đủ nếu bạn không thể cung cấp các chi tiết.

EDIT (cập nhật liên tục): Các thủ tục được đề xuất trong các câu trả lời dưới đây

Vì đây là wiki cộng đồng nên có thể có nhiều thảo luận và cập nhật hơn

Tôi có một nhận xét: theo một nghĩa nào đó, tất cả các bạn đều đưa ra một quy trình cho phép sắp xếp thứ tự các biến nhưng không phải chọn biến (bạn khá lảng tránh về cách chọn số lượng tính năng, tôi đoán tất cả các bạn đều sử dụng xác thực chéo?) Bạn có thể cải thiện câu trả lời theo hướng này? (vì đây là wiki cộng đồng, bạn không cần phải là người viết câu trả lời để thêm thông tin về cách chọn số lượng biến? Tôi đã mở một câu hỏi theo hướng này ở đây Xác thực chéo ở chiều rất cao (để chọn số lượng các biến được sử dụng trong phân loại chiều rất cao) )


Đó là một câu hỏi hoặc một hồ bơi? Nếu sau này, nó phải là wiki cộng đồng. Nếu là người đầu tiên, hãy cho biết thêm chi tiết về những gì bạn muốn đạt được? Chẳng hạn, nó có liên quan đến sự lựa chọn tối ưu hay tối ưu không? Bao nhiêu là nhiều Làm thế nào khó là vấn đề phân loại?

pool ... nhiều phương tiện có 1000 tính năng trở lên và ít hơn 100 quan sát.
cướp girard

Câu trả lời:


18

Một cách tiếp cận rất phổ biến là hồi quy logistic bị phạt, trong đó một phương pháp tối đa hóa tổng khả năng log và một điều khoản phạt bao gồm L1-Norm ("lasso"), L2-Norm ("sườn núi"), kết hợp cả hai ("Đàn hồi") hoặc hình phạt liên quan đến các nhóm biến ("nhóm lasso"). Cách tiếp cận này có một số ưu điểm:

  1. Nó có các thuộc tính lý thuyết mạnh, ví dụ, xem bài viết này của Candes & Plan và các kết nối chặt chẽ với cảm biến nén;
  2. Nó có các giải trình có thể truy cập, ví dụ, trong Các yếu tố của học thống kê của Friedman-Hastie-Tibshirani (có sẵn trực tuyến);
  3. Nó có sẵn phần mềm để phù hợp với các mô hình. R có gói glmnet rất nhanh và hoạt động tốt với các bộ dữ liệu khá lớn. Python có scikit-learn , bao gồm hồi quy logistic bị phạt L1- và L2;
  4. Nó hoạt động rất tốt trong thực tế, như được thể hiện trong nhiều tài liệu ứng dụng về nhận dạng hình ảnh, xử lý tín hiệu, sinh trắc học và tài chính.

10

Tôi có một sở thích nhỏ đối với Rừng ngẫu nhiên của Leo Breiman & Adele Cutleer vì một số lý do:

  • nó cho phép đối phó với các yếu tố dự đoán phân loại và liên tục, cũng như kích thước mẫu lớp không cân bằng;
  • như một phương pháp tập hợp / nhúng, xác thực chéo được nhúng và cho phép ước tính lỗi tổng quát hóa;
  • nó tương đối không nhạy cảm với các tham số điều chỉnh của nó (% các biến được chọn để trồng cây, # cây được xây dựng);
  • nó cung cấp một thước đo ban đầu về tầm quan trọng của biến và có thể phát hiện ra các tương tác phức tạp giữa các biến (mặc dù điều này có thể dẫn đến kết quả khó đọc).

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, cho điểm sau).

Một phạm vi bảo hiểm đầy đủ của các ứng dụng hoặc lợi thế của nó có thể nằm ngoài chủ đề, vì vậy tôi đề xuất các yếu tố của việc học thống kê từ Hastie et al. (chương 15) và Sayes et al. (2007) để đọc thêm.

Cuối cùng nhưng không kém phần quan trọng, nó có một triển khai tốt trong R, với gói RandomForest . Các gói R khác cũng mở rộng hoặc sử dụng nó, ví dụ như tiệc tùngdấu mũ .

Tài liệu tham khảo:

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.

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.


7

Quét đô thị / MCMC

  • Chọn một vài tính năng ngẫu nhiên để bắt đầu, chỉ đào tạo trình phân loại trên chúng và nhận được lỗi.
  • Thực hiện một số thay đổi ngẫu nhiên cho bộ công việc này - hoặc xóa một tính năng, thêm một tính năng ngẫu nhiên hoặc thay thế một số tính năng bằng một tính năng hiện không được sử dụng.
  • Đào tạo phân loại mới và nhận được lỗi của nó; lưu trữ trong dEsự khác biệt lỗi trên bộ mới trừ đi lỗi trên bộ trước đó.
  • Với xác suất min(1;exp(-beta*dE))chấp nhận thay đổi này, nếu không thì từ chối nó và thử một thay đổi ngẫu nhiên khác.
  • Lặp lại nó trong một thời gian dài và cuối cùng trả về bộ làm việc đã đạt được lỗi nhỏ nhất trên toàn cầu.

Bạn có thể mở rộng nó với một số điều khiển betathông số khôn ngoan hơn . Cách đơn giản hơn là sử dụng mô phỏng ủ khi bạn tăng beta(giảm nhiệt độ trong tương tự vật lý) theo thời gian để giảm dao động và đưa thuật toán về mức tối thiểu. Khó hơn là sử dụng trao đổi bản sao .


5

Nếu bạn chỉ quan tâm đến hiệu suất khái quát hóa, có lẽ tốt hơn hết là không thực hiện bất kỳ lựa chọn tính năng nào và sử dụng chính quy hóa (ví dụ: hồi quy sườn). Đã có một vài thách thức mở trong cộng đồng máy học về lựa chọn tính năng và các phương pháp dựa vào chính quy hóa thay vì lựa chọn tính năng thường thực hiện ít nhất là tốt, nếu không muốn nói là tốt hơn.


3

Tham lam chọn trước.

Các bước cho phương pháp này là:

  • Hãy chắc chắn rằng bạn có một bộ huấn luyện và xác nhận
  • Lặp lại như sau
    • Huấn luyện một trình phân loại với từng tính năng riêng biệt chưa được chọn và với tất cả các tính năng được chọn trước đó
    • Nếu kết quả được cải thiện, hãy thêm tính năng hoạt động tốt nhất, quy trình dừng khác

Làm thế nào để bạn "đào tạo" phân loại của bạn? Có lẽ điều này được thực hiện trên tập huấn luyện. Nếu đó là Máy vectơ hỗ trợ (SVM), có một số tham số cần thử trong quá trình đào tạo. Là từng thử nghiệm chống lại xác nhận (thử nghiệm) thiết lập? Hoặc bạn đang sử dụng xác nhận chéo k-gấp? Bạn đã sử dụng xác thực (kiểm tra) bao nhiêu lần để kiểm tra hiệu suất của mình - có lẽ đây là độ chính xác. Xin lỗi để được mô phạm, nhưng đây là một câu trả lời được xác định kém và rủi ro quá phù hợp.
Thylacoleo

@Thylacoleo Đây là một phương pháp cơ bản và tham lam rất thô thiển. Thường thì bạn giữ xác thực của mình được đặt giống nhau trong các lần chạy, nhưng bất cứ điều gì bạn thích đều ổn.
Peter Smit

2

Loại bỏ lạc hậu.

Bắt đầu với bộ đầy đủ, sau đó lặp lại huấn luyện bộ phân loại trên các tính năng còn lại và loại bỏ tính năng có tầm quan trọng nhỏ nhất, dừng khi lỗi phân loại tăng nhanh / trở nên cao không thể chấp nhận được.

Tầm quan trọng thậm chí có thể đạt được bằng cách loại bỏ lặp lại từng tính năng và kiểm tra mức tăng lỗi hoặc điều chỉnh từ bộ phân loại nếu nó tạo ra nó (như trong trường hợp Rừng ngẫu nhiên).


2
Nhưng câu hỏi cho biết có nhiều biến hơn quan sát. Vì vậy, không thể bắt đầu với toàn bộ.
Rob Hyndman

Có vấn đề gì vậy?

2
Bạn không thể phù hợp với một mô hình có nhiều biến hơn các quan sát. Không có đủ mức độ tự do để ước tính tham số.
Rob Hyndman

1
Trong tính toán F của Fisher, bạn tính F như (n - k - p) / (k - 1) * ...với nsố lượng quan sát, ksố lượng lớp (2 ở đây) và psố lượng biến. n - 2 - p < 0khi n < p + 2(đó là trường hợp ở đây) dẫn đến F < 0. Đó sẽ không phải là một vấn đề?
Matthieu

3
Hồi quy Bayes thường xuyên hoặc đầy đủ sẽ cho phép một giải pháp duy nhất có được với bộ dự đoán đầy đủ bắt đầu với - chắc chắn điều tương tự cũng xảy ra với một số kỹ thuật ML khác.
Scortchi - Phục hồi Monica
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.