Làm thế nào để so sánh thống kê hai thuật toán trên ba bộ dữ liệu trong lựa chọn và phân loại tính năng?


8

Vấn đề cơ bản: Là một phần trong nghiên cứu của tôi, tôi đã viết hai thuật toán có thể chọn một bộ tính năng từ một bộ dữ liệu (dữ liệu biểu hiện gen từ bệnh nhân ung thư). Các tính năng này sau đó được kiểm tra để xem mức độ chúng có thể phân loại một mẫu không nhìn thấy là ung thư hoặc không ung thư. Đối với mỗi lần chạy thuật toán, một giải pháp (một bộ tính năng) được tạo và thử nghiệm trên các mẫu Z không nhìn thấy. Tỷ lệ chính xác của giải pháp được tính như thế này : (correct classifications / Z) * 100.

Tôi có hai thuật toán: thuật toán X & thuật toán Y

Tôi có ba bộ dữ liệu riêng biệt (ung thư khác nhau): bộ dữ liệu A, bộ dữ liệu B & bộ dữ liệu C. Các bộ dữ liệu này rất khác nhau. Họ không có cùng số lượng mẫu hoặc cùng số đo (tính năng) trên mỗi mẫu.

Tôi đã chạy mỗi thuật toán 10 lần trên mỗi bộ dữ liệu. Vì vậy, thuật toán X có 10 kết quả từ tập dữ liệu A, 10 từ tập dữ liệu B và 10 từ tập dữ liệu C. Nhìn chung, thuật toán X có 30 kết quả.

Vấn đề của tôi: Tôi muốn xem hiệu suất kết hợp của thuật toán X trên cả ba bộ dữ liệu có khác biệt đáng kể về mặt thống kê so với hiệu suất kết hợp của thuật toán Y không.

Tôi có thể kết hợp các kết quả cho thuật toán X từ mỗi bộ dữ liệu thành một bộ kết quả không? Bằng cách này, tôi sẽ có 30 kết quả được tiêu chuẩn hóa cho thuật toán X và 30 kết quả được tiêu chuẩn hóa cho thuật toán Y. Sau đó tôi có thể sử dụng thử nghiệm t để xem liệu có sự khác biệt đáng kể giữa hai phương pháp hay không.

Chỉnh sửa - Đây là các thuật toán tiến hóa, vì vậy chúng trả về một giải pháp hơi khác nhau mỗi lần chúng được chạy. Tuy nhiên, nếu có một tính năng trong một mẫu mà khi có mặt có thể phân loại mạnh mẫu đó là ung thư hoặc không ung thư, thì tính năng đó sẽ được chọn gần như mỗi khi thuật toán được chạy.

Tôi nhận được kết quả hơi khác nhau cho mỗi 10 lần chạy vì những lý do sau:

  • Các thuật toán này được gieo hạt ngẫu nhiên.
  • Tôi sử dụng xác nhận mẫu phụ ngẫu nhiên lặp lại (10 lần lặp lại).
  • Các bộ dữ liệu mà tôi sử dụng (DNA microarray và Proteomics) rất khó để làm việc theo nghĩa là có nhiều phương pháp tối ưu cục bộ mà thuật toán có thể bị mắc kẹt.
  • Có rất nhiều tương tác giữa các tính năng và tập hợp con mà tôi muốn phát hiện.
  • Tôi huấn luyện 50 nhiễm sắc thể và chúng không bị giới hạn ở bất kỳ chiều dài cụ thể nào. Chúng có thể tự do phát triển và co lại (mặc dù áp lực lựa chọn hướng dẫn chúng theo chiều dài ngắn hơn). Điều này cũng giới thiệu một số biến thể cho kết quả cuối cùng.

Phải nói rằng, thuật toán hầu như luôn chọn một tập hợp con các tính năng cụ thể!

Đây là một mẫu kết quả của tôi (chỉ có 4 hết 10 cho mỗi thuật toán được hiển thị ở đây):

Bộ dữ liệu / chạy Thuật toán X Thuật toán Y
1 90,91 90,91
Một 2 90,91 95,45
Một 3 90,91 90,91
Một 4 90,91 90,91

B 1 100 100
B 2 100 100
B 3 95,65 100
B 4 95,65 86,96

C 1 90,32 87.10
C 2 70,97 80,65
C 3 96,77 83,87
C 4 80,65 83,87

Như bạn có thể thấy, tôi đã kết hợp các kết quả cho hai thuật toán từ ba bộ dữ liệu. Tôi có thể thực hiện kiểm tra Kruskal-Wallis trên dữ liệu này nhưng nó có hợp lệ không? Tôi hỏi điều này bởi vì:

  • Tôi không chắc độ chính xác trong các bộ dữ liệu khác nhau là tương xứng. Nếu chúng không như vậy, thì việc đặt chúng lại với nhau như tôi đã làm sẽ là vô nghĩa và bất kỳ thử nghiệm thống kê nào được thực hiện trên chúng cũng sẽ là vô nghĩa.
  • Khi bạn đặt độ chính xác với nhau như thế này, kết quả tổng thể dễ bị ảnh hưởng bởi các ngoại lệ. Hiệu suất tuyệt vời của một thuật toán trên một tập dữ liệu có thể che dấu hiệu suất trung bình của nó trên một tập dữ liệu khác.

Tôi cũng không thể sử dụng t-test trong trường hợp này, đó là vì:

  • Tính tương xứng - kiểm tra t chỉ có ý nghĩa khi sự khác biệt về các tập dữ liệu là tương xứng.
  • kiểm tra t yêu cầu rằng sự khác biệt giữa hai thuật toán được so sánh được phân phối bình thường, không có cách nào (ít nhất là tôi biết) để đảm bảo điều kiện này trong trường hợp của tôi.
  • kiểm tra t bị ảnh hưởng bởi các ngoại lệ làm lệch các số liệu thống kê kiểm tra và giảm công suất của kiểm tra bằng cách tăng sai số chuẩn ước tính.

Bạn nghĩ sao? Làm thế nào tôi có thể làm một so sánh giữa thuật toán X & Y trong trường hợp này?


Các thuật toán của bạn có liên quan đến một số loại ngẫu nhiên hay tại sao bạn lại chạy chúng 10 lần cho mỗi tập dữ liệu?
Stephan Kolassa

Đúng! Chúng là các thuật toán tiến hóa (thuật toán ngẫu nhiên). Vì vậy, mỗi lần họ tạo ra một kết quả khác nhau. Tuy nhiên, nếu có các tính năng mạnh (gen / một giá trị từ một mẫu), thì chúng được chọn thường xuyên hơn không. Mục đích của thuật toán là chọn những gen có liên quan chặt chẽ đến một lớp cụ thể (ví dụ ung thư buồng trứng) để chúng có thể được sử dụng trong chẩn đoán / dự đoán sớm ung thư trong tương lai.
revolusions

Câu trả lời:


8

Trừ khi các thuật toán của bạn có sự khác biệt lớn về hiệu suất và bạn có số lượng lớn các trường hợp thử nghiệm, bạn sẽ không thể phát hiện ra sự khác biệt bằng cách chỉ nhìn vào hiệu suất.

Tuy nhiên, bạn có thể sử dụng thiết kế apaired:

  • chạy cả ba thuật toán trên chính xác cùng một phân tách kiểm tra / huấn luyện của một tập dữ liệu và
  • không tổng hợp kết quả kiểm tra thành% chính xác, nhưng giữ chúng ở cấp độ trường hợp kiểm tra duy nhất là đúng hoặc sai.

Để so sánh, hãy xem thử nghiệm của McNemar . Ý tưởng đằng sau việc khai thác một thiết kế được ghép nối ở đây là tất cả các trường hợp cả hai thuật toán đều đúng và cả hai trường hợp sai đều không giúp bạn phân biệt các thuật toán. Nhưng nếu một thuật toán tốt hơn thuật toán kia, sẽ có nhiều trường hợp thuật toán tốt hơn đúng nhưng không tệ hơn, và một số ít được dự đoán chính xác bởi phương pháp tồi hơn nhưng sai bởi phương pháp tốt hơn.

Ngoài ra, Cawley và 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, 2010, 1, 2079-2107. có liên quan cao.

Do các khía cạnh ngẫu nhiên của các thuật toán của bạn, bạn cũng sẽ muốn kiểm tra cùng một phân chia của cùng một bộ dữ liệu. Từ đó bạn có thể ước tính sự thay đổi giữa các lần chạy khác nhau bằng nhau. Có thể khó đánh giá các bộ biến được chọn khác nhau như thế nào. Nhưng nếu mục tiêu cuối cùng của bạn là hiệu suất dự đoán, thì bạn cũng có thể sử dụng biến thể giữa các dự đoán của cùng một trường hợp thử nghiệm trong các lần chạy khác nhau để đo lường sự ổn định của các mô hình kết quả.

Sau đó, bạn cũng sẽ muốn kiểm tra biến thể (như đã chỉ ra ở trên) do sự phân chia khác nhau của tập dữ liệu và đặt điều này vào mối quan hệ với phương sai đầu tiên.

Các phân số (như% mẫu được nhận dạng chính xác) thường được giả định là được phân phối nhị phân , trong một số trường hợp nhất định có thể có xấp xỉ bình thường, nhưng bản in nhỏ cho điều này hầu như không gặp trong các trường có ma trận dữ liệu rộng. Điều này có hậu quả là khoảng tin cậy là rất lớn đối với số lượng nhỏ các trường hợp thử nghiệm. Trong R, binom::binom.confinttính khoảng tin cậy cho tỷ lệ thực được cho không. các bài kiểm tra và không. của những thành công.

Cuối cùng, kinh nghiệm của tôi về tối ưu hóa di truyền cho dữ liệu phổ (luận án Ngoại giao của tôi bằng tiếng Đức) gợi ý rằng bạn cũng nên kiểm tra các lỗi đào tạo. GA có xu hướng tập luyện quá nhanh, đến các lỗi đào tạo rất thấp. Lỗi đào tạo thấp không chỉ quá mức, mà còn có hậu quả là GA không thể phân biệt giữa rất nhiều mô hình có vẻ hoàn hảo như nhau. (Bạn có thể có ít vấn đề hơn với điều đó nếu GA bên trong cũng ngẫu nhiên các mẫu con đào tạo và các bộ kiểm tra nội bộ).

Giấy tờ bằng tiếng Anh:


Cảm ơn bạn đã phân tích tuyệt vời! Tôi sẽ có một thiết kế đi đôi. Bạn đang chú ý đến việc phù hợp hơn. Giai đoạn tiếp theo của nghiên cứu của tôi sẽ tập trung vào việc tránh phù hợp trong khi đào tạo. Điều này thực sự quan trọng vì mục tiêu cuối cùng của tôi là tạo ra một thuật toán hoàn toàn tự động để các bác sĩ ung thư có thể sử dụng để chẩn đoán sớm bệnh ung thư. Tôi thực sự thích đọc bài viết của bạn nhưng tôi sợ tôi không thể đọc được tiếng Đức. Xin vui lòng cho tôi biết nếu có một phiên bản tiếng Anh. Cảm ơn bạn một lần nữa cho đầu vào chi tiết của bạn.
revolusions

@revolusions: Thông tin có một chút lan truyền trên một số giấy tờ. Nhưng tôi đã thêm một danh sách với 2 về lựa chọn biến GA và một về sự không chắc chắn trong việc đo tỷ lệ lỗi phân loại. Nếu bạn có câu hỏi (hoặc không có quyền truy cập vào các giấy tờ), hãy gửi email cho tôi.
cbeleites không hài lòng với SX

Cảm ơn bạn! Tôi quản lý để tải xuống tờ giấy cuối cùng nhưng dường như không thể có được hai tờ đầu tiên. Tôi sẽ thử từ máy tính của trường đại học vào ngày mai và sẽ cho bạn biết nếu tôi quản lý để tải xuống chúng.
revolusions

1

Bạn đang chạy lựa chọn featuer với GA 10 lần và mỗi lần bạn nhận được một đầu ra khác nhau !!

Đầu tiên, nếu bạn bắt đầu bằng cùng một hạt giống, bạn sẽ luôn nhận được tập hợp con featuer được chọn giống nhau. Tuy nhiên, nếu bạn đang sử dụng một hạt giống ngẫu nhiên, thì, rất có thể, bạn sẽ nhận được gần như các tính năng được chọn tương tự. Một lý do để có được featuer được chọn tương tự được nêu trong bài viết của bạn. Ngoài ra, để so sánh công bằng, bạn có thể sử dụng cùng một hạt giống trong các lần chạy A cho các thí nghiệm của B.

Thứ hai, bạn có thể sử dụng xác nhận chéo hoặc bootstraping để so sánh. Bằng cách này bạn có được một so sánh đại diện hơn. Trong trường hợp này, có một nguồn biến thể tức là các mẫu huấn luyện ngẫu nhiên có vẻ mạnh hơn các hạt ngẫu nhiên. Vì vậy, so sánh có thể tiết lộ algorthim nào thực sự tốt hơn.

Cuối cùng, bạn có thể sử dụng thử nghiệm t như bạn đề xuất hoặc trực tiếp sử dụng một số thử nghiệm không tham số như thử nghiệm Kruskal-Wallis.


Cảm ơn bạn rất nhiều cho câu trả lời của bạn! Tôi muốn làm rõ một vài điều và có thể lấy lại ý kiến ​​của bạn sau đó vì tôi vẫn còn bối rối về việc so sánh, hy vọng bạn có thể giúp đỡ! Bạn đã nói: <blockquote> Ngoài ra, để so sánh công bằng, bạn có thể sử dụng cùng một hạt giống trong các lần chạy A cho các thí nghiệm của B </ blockquote> Đây là một điểm rất tốt, cảm ơn bạn. Tôi đã chỉnh sửa câu hỏi của mình để giải quyết những điểm bạn nêu ra. Sẽ thật tuyệt nếu bạn có một cái nhìn và cho tôi biết bạn nghĩ gì.
revolusions

Bạn có thể làm một so sánh riêng giữa các phân loại cho mỗi tập dữ liệu. Ban đầu, kiểm tra trung bình và độ lệch chuẩn. Nếu cho tất cả các bộ dữ liệu, một bộ phân loại đánh bại cái khác. Sau đó, chúng tôi đã hoàn thành. Nếu không, bạn có thể sử dụng một ý tưởng "hòa tấu". Kiểm tra mẫu mới, nếu nó thuộc về tập dữ liệu A, hãy sử dụng trình phân loại tốt hơn và cứ thế. Tuy nhiên, có thể có một số kiểm tra thống kê dựa trên chế độ xem được ghép nối mà tôi không biết về trường hợp này.
soufanom

Cảm ơn bạn một lần nữa cho đầu vào của bạn. Tôi đã làm những gì bạn đề nghị và không có người chiến thắng rõ ràng. Đây là lý do tại sao tôi quyết định đặt mọi thứ lại với nhau và xem liệu sẽ có một người chiến thắng. Ý tưởng "hòa tấu" này nghe có vẻ thú vị. Có nơi nào tôi có thể đọc thêm về điều này? Cảm ơn bạn đã giúp đỡ.
revolusions

Một điều nữa, hãy xem xét so sánh độ nhạy và độ đặc hiệu. Đối với nguồn đồng bộ, hãy kiểm tra sách được đính kèm tại số liệu thống kê bài đăng của tôi.stackexchange.com / questions / 707575 / Fiêu
soufanom
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.