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


76

Tôi đang có một chút bối rối về lựa chọn tính năng và học máy và tôi đã tự hỏi nếu bạn có thể giúp tôi ra. Tôi có một bộ dữ liệu microarray được phân thành hai nhóm và có 1000 tính năng. Mục đích của tôi là lấy một số lượng nhỏ gen (tính năng của tôi) (10-20) trong một chữ ký mà theo lý thuyết tôi sẽ có thể áp dụng cho các bộ dữ liệu khác để phân loại tối ưu các mẫu đó. Vì tôi không có nhiều mẫu (<100), tôi không sử dụng bộ kiểm tra và huấn luyện mà sử dụng xác thực chéo một lần để giúp xác định độ mạnh. Tôi đã đọc rằng người ta nên thực hiện lựa chọn tính năng cho mỗi lần phân chia mẫu

  1. Chọn một mẫu làm bộ kiểm tra
  2. Trên các mẫu còn lại thực hiện lựa chọn tính năng
  3. Áp dụng thuật toán học máy cho các mẫu còn lại bằng các tính năng được chọn
  4. Kiểm tra xem bộ kiểm tra có được phân loại chính xác không
  5. Chuyển đến 1.

Nếu bạn làm điều này, bạn có thể nhận được các gen khác nhau mỗi lần, vậy làm thế nào để bạn có được bộ phân loại gen tối ưu "cuối cùng"? tức là bước 6 là gì.

Điều tôi muốn nói là tối ưu là bộ sưu tập gen mà bất kỳ nghiên cứu nào khác nên sử dụng. Ví dụ: giả sử tôi có bộ dữ liệu ung thư / bình thường và tôi muốn tìm ra 10 gen hàng đầu sẽ phân loại loại khối u theo một SVM. Tôi muốn biết bộ gen cộng với các tham số SVM có thể được sử dụng trong các thí nghiệm tiếp theo để xem liệu nó có thể được sử dụng làm xét nghiệm chẩn đoán hay không.


Tôi nên nói để tiết lộ đầy đủ rằng tôi đã đăng bài này vào danh sách chất dẫn sinh học
danielsbrewer

Hãy tóm tắt bất kỳ kết quả bioconductor trở lại đây?
Shane

Câu trả lời:


39

Đây là một câu hỏi rất hay mà tôi phải đối mặt khi làm việc với dữ liệu SNPs ... Và tôi đã không tìm thấy bất kỳ câu trả lời rõ ràng nào qua tài liệu.

Cho dù bạn sử dụng LOO hay K-Fold CV, bạn sẽ kết thúc với các tính năng khác nhau vì phép lặp xác thực chéo phải là vòng lặp bên ngoài nhất, như bạn đã nói. Bạn có thể nghĩ ra một loại sơ đồ bầu chọn nào đó sẽ đánh giá các vectơ n của các tính năng bạn nhận được từ LOO-CV của bạn (không thể nhớ bài báo nhưng rất đáng để kiểm tra công việc của Harald Binder hoặc Antoine Cornuéjols ). Trong trường hợp không có mẫu thử nghiệm mới, điều thường được thực hiện là áp dụng lại thuật toán ML cho toàn bộ mẫu một khi bạn đã tìm thấy các tham số xác thực chéo tối ưu của nó. Nhưng tiến hành theo cách này, bạn không thể đảm bảo rằng không có quá mức (vì mẫu đã được sử dụng để tối ưu hóa mô hình).

np

  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.
  3. Díaz-Uriarte, R., Alvarez de Andrés, S. (2006). Lựa chọn gen và phân loại dữ liệu microarray bằng cách sử dụng rừng ngẫu nhiên. BMC Tin sinh học , 7 : 3.
  4. Diaz-Uriarte, R. (2007). GeneSrF và varSelRF: một công cụ dựa trên web và gói R để lựa chọn và phân loại gen bằng cách sử dụng rừng ngẫu nhiên. BMC Tin sinh học , 8 : 328

Vì bạn đang nói về SVM, bạn có thể tìm kiếm SVM bị phạt .


Cảm ơn vì điều đó. Tôi không đặc biệt được bán trên SVM, chỉ sử dụng nó làm ví dụ. Vì vậy, nếu bạn sử dụng cây ngẫu nhiên, bạn không phải xác thực chéo? Có đúng không.
danielsbrewer

7
p

3
Điều quan trọng là nó được gọi là Rừng ngẫu nhiên chứ không phải Cây ngẫu nhiên; bạn có thể có vấn đề với Google.

1
+1, câu trả lời tốt và tình cờ cho tôi - cảm ơn rất nhiều vì các tài liệu tham khảo, đặc biệt là phần đánh giá.
ars

Với đủ dữ liệu, tốt nhất là không nên tổ chức một bộ kiểm tra, thực hiện loocv trên tập huấn luyện để tối ưu hóa các tham số mô hình, phù hợp với toàn bộ tập huấn (và gọi đó là phân loại "cuối cùng"), sau đó đánh giá mô hình cuối cùng trên bộ kiểm tra?
dùng0

40

Về nguyên tắc:

Đưa ra dự đoán của bạn bằng một mô hình duy nhất được đào tạo trên toàn bộ tập dữ liệu (vì vậy chỉ có một bộ tính năng). Xác thực chéo chỉ được sử dụng để ước tính hiệu suất dự đoán của mô hình duy nhất được đào tạo trên toàn bộ tập dữ liệu. Đó là VITAL trong việc sử dụng xác thực chéo mà trong mỗi lần bạn lặp lại toàn bộ quy trình được sử dụng để phù hợp với mô hình chính, vì nếu không, bạn có thể kết thúc với sự thiên vị lạc quan đáng kể trong hiệu suất.

Để xem tại sao điều này xảy ra, hãy xem xét một vấn đề phân loại nhị phân với 1000 tính năng nhị phân nhưng chỉ có 100 trường hợp, trong đó các trường hợp và tính năng hoàn toàn ngẫu nhiên, do đó không có mối quan hệ thống kê nào giữa các tính năng và trường hợp nào. Nếu chúng tôi đào tạo một mô hình chính trên bộ dữ liệu đầy đủ, chúng tôi luôn có thể đạt được lỗi không trên tập huấn luyện vì có nhiều tính năng hơn các trường hợp. Chúng ta thậm chí có thể tìm thấy một tập hợp các tính năng "thông tin" (điều đó có thể tương quan với sự tình cờ). Sau đó, nếu chúng tôi thực hiện xác thực chéo chỉ sử dụng các tính năng đó, chúng tôi sẽ có được ước tính hiệu suất tốt hơn so với đoán ngẫu nhiên. Lý do là trong mỗi lần của quy trình xác thực chéo, có một số thông tin về các trường hợp được sử dụng để kiểm tra vì các tính năng đã được chọn vì chúng tốt cho việc dự đoán, tất cả chúng, bao gồm cả những người tổ chức. Tất nhiên tỷ lệ lỗi thực sự sẽ là 0,5.

Nếu chúng tôi áp dụng quy trình thích hợp và thực hiện lựa chọn tính năng trong mỗi lần gấp, sẽ không còn bất kỳ thông tin nào về các trường hợp được tổ chức trong lựa chọn các tính năng được sử dụng trong lần đó. Nếu bạn sử dụng quy trình thích hợp, trong trường hợp này, bạn sẽ nhận được tỷ lệ lỗi khoảng 0,5 (mặc dù nó sẽ thay đổi một chút cho các lần thực hiện khác nhau của bộ dữ liệu).

Những giấy tờ tốt để đọc là:

Barshe Ambroise, Geoffrey J. McLachlan, "Lựa chọn sai lệch trong chiết xuất gen trên cơ sở dữ liệu biểu hiện gen microarray", PNAS http://www.pnas.org/content/99/10/6562.abab

có liên quan cao đến OP và

Gavin C. Cawley, Nicola LC Talbot, "Về sự phù hợp quá mức trong lựa chọn mô hình và xu hướng lựa chọn tiếp theo trong đánh giá hiệu suất", JMLR 11 (tháng 7): 2079−2107, 2010 http://jmlr.csail.mit.edu/ con /v11/cawley10a.html

điều này chứng tỏ rằng điều tương tự có thể dễ dàng tạo ra trong lựa chọn mô hình (ví dụ: điều chỉnh siêu tham số của một SVM, cũng cần phải được lặp lại trong mỗi lần lặp của quy trình CV).

Trong thực tế:

Tôi sẽ khuyên bạn nên sử dụng Đóng bao và sử dụng lỗi xuất túi để ước tính hiệu suất. Bạn sẽ nhận được một mô hình ủy ban sử dụng nhiều tính năng, nhưng đó thực sự là một điều tốt. Nếu bạn chỉ sử dụng một mô hình duy nhất, có khả năng bạn sẽ phù hợp với tiêu chí lựa chọn tính năng và kết thúc với một mô hình đưa ra dự đoán kém hơn so với mô hình sử dụng số lượng tính năng lớn hơn.

Cuốn sách của Alan Millers về lựa chọn tập hợp con trong hồi quy (chuyên khảo về Chapman và Hall về thống kê và xác suất áp dụng, tập 95) đưa ra một lời khuyên tốt (trang 221) rằng nếu hiệu suất dự đoán là điều quan trọng nhất, thì đừng thực hiện bất kỳ lựa chọn tính năng nào , chỉ sử dụng hồi quy sườn thay thế. Và đó là trong một cuốn sách về lựa chọn tập hợp con !!! ; o)


17

Để thêm vào chl: Khi sử dụng các máy vectơ hỗ trợ, phương pháp xử phạt rất được khuyến nghị là lưới đàn hồi. Phương pháp này sẽ thu nhỏ các hệ số về 0 và theo lý thuyết vẫn giữ các hệ số ổn định nhất trong mô hình. Ban đầu nó được sử dụng trong khung hồi quy, nhưng nó dễ dàng được mở rộng để sử dụng với các máy vectơ hỗ trợ.

Ấn bản gốc : Zou và Hastie (2005): Chính quy hóa và lựa chọn biến qua mạng đàn hồi. JRStatist.Soc. B, 67-2, tr.301-320

Mạng lưới đàn hồi cho SVM : Zhu & Zou (2007): Lựa chọn biến cho máy vectơ hỗ trợ: Xu hướng tính toán thần kinh, chương 2 (Biên tập: Chen và Wang)

cải tiến trên lưới đàn hồi Jun-Tao và Ying-Min (2010): Mạng lưới đàn hồi cải tiến để phân loại ung thư và lựa chọn gen: Acta Automatica Sinica, 36-7, tr.976-981


9

Khi bước 6 (hoặc 0), bạn chạy thuật toán phát hiện tính năng trên toàn bộ tập dữ liệu.

n1n


Tôi nghĩ vẫn còn vấn đề khái quát hóa khi sử dụng cùng một mẫu (1) để đánh giá hiệu suất phân loại / dự đoán phân loại trong khi điều chỉnh các tham số của nó (cuối cùng, với lựa chọn tính năng) và (2) sử dụng lần lượt các dự đoán của nó trên toàn bộ tập dữ liệu. Trong thực tế, bạn đang phá vỡ sự kiểm soát gây ra bởi việc quá mức đã được xây dựng bằng cách sử dụng xác thực chéo. Hastie và cộng sự. cung cấp một minh họa tốt đẹp về cạm bẫy CV, đặc biệt. viết lựa chọn tính năng, trong cuốn sách tiếng Anh của họ, § 7.10.2 trong phiên bản 2.
chl

@chl: ai nói gì về điều chỉnh thông số? Nếu những điều bổ sung được thực hiện, chúng cũng nên được lặp lại trong quá trình xác nhận chéo. Sửa đổi rõ ràng thuật toán của bạn cho đến khi bạn nhận được tỷ lệ lỗi xác thực chéo tốt là "gian lận". BTW, tôi đồng ý rằng xác nhận chéo, đặc biệt là bỏ qua một lần, không phải là tất cả tuyệt vời.
Aniko

không phải là không gian lận, vì CV cho bạn thấy gần đúng cách thuật toán sẽ thực hiện trên dữ liệu mới. Bạn chỉ cần chắc chắn rằng bạn đã giải quyết một cái gì đó dựa trên toàn bộ tập hợp (đây là một thông tin rò rỉ về cấu trúc của tập hợp đầy đủ, vì vậy nó có thể ngay lập tức sai lệch tất cả các bộ phận của tàu).

@mbq - Ankino là chính xác, điều chỉnh mô hình của bạn để giảm thiểu thống kê CV là "gian lận" và thống kê CV của mô hình cuối cùng sẽ có xu hướng lạc quan đáng kể. Lý do cho điều này là vì thống kê CV có phương sai không đáng kể (vì nó được đánh giá trên một tập hợp dữ liệu hữu hạn) và do đó nếu bạn trực tiếp tối ưu hóa thống kê CV, bạn có thể phù hợp với nó và bạn có thể kết thúc với một mô hình đó là khái quát kém hơn so với những gì bạn bắt đầu với. Để chứng minh điều này, trong ngữ cảnh học máy, hãy xem jmlr.csail.mit.edu/ con / v11 / cawley10a.html Giải pháp: Sử dụng XVAL lồng ghép
Dikran Marsupial

1

Đây là cách tôi chọn tính năng. Giả sử dựa trên kiến ​​thức nhất định, có 2 mô hình được so sánh. Model A sử dụng các tính năng số 1 đến không. 10. Mô hình B sử dụng số 11 đến không. 20. Tôi sẽ áp dụng LOO CV cho mô hình A để có được hiệu năng vượt trội. Làm tương tự với mô hình B và sau đó so sánh chúng.


-1

Tôi không chắc chắn về các vấn đề phân loại, nhưng trong trường hợp lựa chọn tính năng cho các vấn đề hồi quy, Jun Shao cho thấy CV rời khỏi không nhất quán , nghĩa là xác suất chọn tập hợp con các tính năng phù hợp không hội tụ thành 1 như số lượng mẫu tăng lên. Từ quan điểm thực tế, Shao đề xuất một quy trình xác thực chéo Monte-Carlo hoặc thủ tục bỏ qua nhiều lần.


Ôi trời, lại một lần nữa; bạn đã đọc tiêu đề của bài viết này?

2
Ok, rõ ràng - Tôi không nói LOOCV là một ý tưởng tốt cho một số lượng lớn các đối tượng; rõ ràng là không, nhưng Shao không được áp dụng ở đây. Thật vậy, trong hầu hết các trường hợp quy tắc cho LM không giữ cho ML.

1
Một câu hỏi đặt ra là liệu các kết quả giả định có được sử dụng thực tế hay không khi xem các bộ dữ liệu với một số lượng lớn các tính năng và một vài mẫu tương đối. Trong trường hợp đó, phương sai của thủ tục có thể có tầm quan trọng thực tế lớn hơn sự thiên vị hoặc tính nhất quán. Giá trị chính của LOOCV là đối với nhiều mô hình, nó có thể được thực hiện với chi phí tính toán không đáng kể, do đó, trong khi nó có phương sai cao hơn so với bootstrapping, nó có thể là phương pháp khả thi duy nhất trong ngân sách tính toán có sẵn. Đó là lý do tại sao tôi sử dụng nó, nhưng tôi sử dụng một cái gì đó khác để đánh giá hiệu suất!
Dikran Marsupial
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.