Saya memiliki dua implementasi dari algoritma genetika yang seharusnya berperilaku setara. Namun karena batasan teknis yang tidak dapat diselesaikan outputnya tidak persis sama, diberi input yang sama.
Tetap saya ingin menunjukkan bahwa tidak ada perbedaan kinerja yang signifikan.
Saya memiliki 20 kali berjalan dengan konfigurasi yang sama untuk masing-masing dari dua algoritma, menggunakan berbagai biji nomor acak awal. Untuk setiap lari dan generasi , kesesuaian kesalahan minimum dari individu terbaik dalam populasi dicatat. Algoritme menggunakan mekanisme pengawet elit, sehingga kebugaran individu terbaik menurun secara monoton. A run terdiri dari 1000 generasi, jadi saya memiliki 1000 nilai per run. Saya tidak bisa mendapatkan lebih banyak data, karena perhitungannya sangat mahal.
Tes mana yang harus saya pakai? Cara mudah mungkin hanya dengan membandingkan kesalahan pada generasi terakhir (sekali lagi, tes mana yang akan saya gunakan di sini)? Tetapi orang mungkin juga berpikir tentang membandingkan perilaku konvergensi secara umum.
Jawaban:
Menguji algoritma stokastik bisa agak rumit!
Saya bekerja dalam sistem biologi dan ada banyak simulator stokastik tersedia untuk digunakan untuk mensimulasikan model. Menguji simulator ini rumit karena dua realisasi dari model tunggal biasanya akan berbeda.
Dalam dsmts kami telah menghitung (secara analitik) nilai dan varian yang diharapkan dari model tertentu. Kami kemudian melakukan tes hipotesis untuk menentukan apakah simulator berbeda dari kebenaran. Bagian 3 dari userguide memberikan detailnya. Pada dasarnya kami melakukan uji-t untuk nilai rata-rata dan uji chi-square untuk varian.
Dalam kasus Anda, Anda membandingkan dua simulator sehingga Anda hanya perlu menggunakan uji-t dua sampel saja.
sumber
Mungkin Anda bisa mengukur perbedaan rata-rata antara dua proses dari algoritma yang sama dengan perbedaan rata-rata antara dua proses dari algoritma yang berbeda. Tidak memecahkan masalah bagaimana mengukur perbedaan itu, tetapi mungkin merupakan masalah yang lebih mudah ditangani. Dan nilai-nilai individual dari deret waktu akan dimasukkan ke dalam perhitungan perbedaan daripada harus diperlakukan sebagai titik data individual untuk dievaluasi satu sama lain (saya juga tidak berpikir bahwa perbedaan khusus pada langkah ke-n adalah apa yang Anda benar-benar ingin membuat pernyataan tentang).
Perbarui Rincian yang berkaitan - baik fitur seri waktu mana yang Anda minati, di luar kesalahan terakhir? Saya kira Anda benar-benar memiliki tiga pertanyaan berbeda untuk dipecahkan:
Yang saya katakan di posting pertama adalah bahwa jawaban untuk (1) mungkin tidak mempertimbangkan perbedaan individu pada masing-masing 1000 generasi. Dan saya menyarankan untuk memberikan nilai skalar untuk setiap deret waktu atau setidaknya kesamaan antara deret waktu. Hanya dengan begitu Anda sampai pada pertanyaan statistik aktual (yang saya tahu paling sedikit tentang ketiga poin tersebut, tetapi saya disarankan untuk menggunakan uji-t berpasangan dalam pertanyaan serupa yang baru saja saya tanyakan, ketika memiliki nilai skalar per elemen).
sumber