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?