दो आनुवंशिक एल्गोरिदम की तुलना


9

मेरे पास एक आनुवंशिक एल्गोरिथ्म के दो कार्यान्वयन हैं जो समान व्यवहार करने वाले हैं। हालाँकि, तकनीकी प्रतिबंधों के कारण जिनका समाधान नहीं किया जा सकता है, वे एक ही इनपुट के समान नहीं हैं।

फिर भी मैं यह दिखाना चाहता हूं कि कोई महत्वपूर्ण प्रदर्शन अंतर नहीं है।

मेरे पास दो एल्गोरिदम में से प्रत्येक के लिए एक ही कॉन्फ़िगरेशन के साथ 20 रन हैं, विभिन्न प्रारंभिक यादृच्छिक संख्या बीजों का उपयोग करते हुए। प्रत्येक रन और जेनरेशन के लिए जनसंख्या में सर्वश्रेष्ठ व्यक्ति की न्यूनतम त्रुटि फिटनेस दर्ज की गई थी। एल्गोरिथ्म एक कुलीन-संरक्षण तंत्र को रोजगार देता है, इसलिए सबसे अच्छा व्यक्ति की फिटनेस नीरस रूप से कम हो रही है। एक रन में 1000 पीढ़ियाँ होती हैं, इसलिए मेरे पास प्रति रन 1000 मान हैं। मुझे अधिक डेटा नहीं मिल सकता है, क्योंकि गणना बहुत महंगी है।

मुझे कौन सी परीक्षा देनी चाहिए? एक आसान तरीका शायद अंतिम पीढ़ियों में त्रुटि की तुलना करना होगा (फिर, मैं यहां कौन सी परीक्षा का उपयोग करूंगा)? लेकिन एक सामान्य रूप में अभिसरण व्यवहार की तुलना करने के बारे में भी सोच सकता है।


एक स्पष्टीकरण के रूप में: क्या ऐसा नहीं है कि एक आनुवंशिक एल्गोरिथ्म एक समाधान के लिए यादृच्छिक रूप से खोज करता है, ताकि किसी भी रन का प्रारंभिक खंड किसी भी सार्थक समाधान का उत्पादन करने की संभावना न हो? इसके अलावा, "जनसंख्या में न्यूनतम त्रुटि" से आपका क्या तात्पर्य है? यदि आप एक रन में 1000 मूल्यों में से एक ज्ञात सच्चे मूल्य और किसी भी समाधान के बीच न्यूनतम अंतर का मतलब है, तो क्या यह रन के परिणाम का एक पक्षपातपूर्ण संकेत नहीं है? सब के बाद, व्यवहार में आप प्रत्येक रन में अंतिम समाधान स्वीकार करेंगे और हर चीज को अस्वीकार कर देंगे, जो सही है?
whuber

गलती से मैं मूल रूप से 1 / फिटनेस का मतलब है, इसलिए मैं एक पीढ़ी में सबसे अच्छा व्यक्ति के मूल्य के बारे में बात कर रहा हूँ। मैंने हर पीढ़ी के लिए सर्वश्रेष्ठ व्यक्ति का फिटनेस मूल्य दर्ज किया है। इसलिए मेरे पास 1000 * 20 * 2 नंबर हैं, प्रत्येक एक विशेष रन के एक विशेष पीढ़ी में सर्वश्रेष्ठ व्यक्ति की "फिटनेस" के अनुरूप है।
nisc

मुझे लगता है कि प्रारंभिक प्रश्न बीमार था, मैंने कुछ स्पष्टीकरण जोड़ा है ..
nisc

जवाबों:


9

स्टोकेस्टिक एल्गोरिदम का परीक्षण करना मुश्किल हो सकता है!

मैं सिस्टम बायोलॉजी में काम करता हूं और एक मॉडल का अनुकरण करने के लिए कई स्टोकेस्टिक सिमुलेटर उपलब्ध हैं। इन सिमुलेटरों का परीक्षण मुश्किल है क्योंकि एक मॉडल से किसी भी दो अहसास आम तौर पर अलग-अलग होंगे।

में dsmts हम गणना की है (विश्लेषणात्मक) उम्मीद मूल्य और एक विशेष मॉडल के विचरण। हम तब यह निर्धारित करने के लिए एक परिकल्पना परीक्षण करते हैं कि क्या एक सिम्युलेटर सच्चाई से अलग है। की धारा 3 के userguide विवरण देता है। अनिवार्य रूप से हम माध्य मूल्यों के लिए एक टी-टेस्ट करते हैं और वेरिएंस के लिए ची-स्क्वेर्ड टेस्ट करते हैं।

आपके मामले में, आप दो सिमुलेटरों की तुलना कर रहे हैं, इसलिए आपको इसके बजाय दो-नमूने वाले टी-परीक्षण का उपयोग करना चाहिए।


मैं सभी पीढ़ियों से जानकारी का उपयोग करने के बारे में कैसे जाऊंगा?
nisc

सबसे आसान तरीका है कि हर पीढ़ी पर कई परीक्षण यानी परीक्षण किए जाएं, फिर बोनफेरोनी या एफडीआर करेक्शन का उपयोग करें।
csgillespie

हर पीढ़ी से तुलना करते समय, मुझे 1/1000 * 0.05 के महत्व स्तर पर परीक्षण करना होगा? क्या यह कठोर नहीं है?
nisc

सच है, लेकिन आप बहुत सारे परीक्षण भी कर रहे हैं - आपके पास सब कुछ नहीं हो सकता है;) आप पी-मूल्यों को रैंक कर सकते हैं, उन्हें एक गाइड के रूप में उपयोग कर सकते हैं जहां संभव हो सकता है त्रुटियां हो सकती हैं।
csgillespie

1
बोनफ्रोनी सुधार के बजाय, आप हमेशा अधिक शक्तिशाली बोनफेरोनी होल का उपयोग कर सकते हैं। यहाँ मेरे किसी भी व्यक्ति को देखें: सांख्यिकी. stackexchange.com/questions/575/…
हेनरिक

4

हो सकता है कि आप एक ही एल्गोरिथ्म के दो रनों के बीच औसत अंतर को अलग-अलग एल्गोरिदम से दो रनों के बीच के औसत अंतर को माप सकें। उस अंतर को मापने के तरीके की समस्या का समाधान नहीं करता है, लेकिन एक अधिक समस्याग्रस्त समस्या हो सकती है। और समय श्रृंखला के व्यक्तिगत मूल्य एक दूसरे के खिलाफ मूल्यांकन किए जाने वाले अलग-अलग डेटा पॉइंट के रूप में व्यवहार किए जाने के बजाय अंतर गणना में फीड होंगे (मुझे यह भी नहीं लगता कि nth कदम पर विशेष अंतर वह है जो आप वास्तव में चाहते हैं के बारे में बयान)।

अपडेट के संबंध में विवरण - अंतिम त्रुटि से परे, समय श्रृंखला की कौन-सी विशेषताएं आपकी रुचि हैं? मुझे लगता है कि आपको वास्तव में हल करने के लिए तीन अलग-अलग प्रश्न मिले:

  1. आपके लिए क्या समानता है, अर्थात जब आप कहते हैं कि आपको विश्वास नहीं है कि दोनों विधियाँ अलग-अलग हैं?
  2. आप इसे कैसे निर्धारित करते हैं - 1 के बाद उत्तर दिया जा सकता है, और
  3. आप अपने दो तरीकों के बीच महत्वपूर्ण अंतर के लिए कैसे परीक्षण कर सकते हैं?

मैं पहली पोस्ट में कह रहा था कि (1) का उत्तर संभवतः 1000 पीढ़ियों में से प्रत्येक पर व्यक्तिगत अंतर पर विचार नहीं करता है। और यह कि मैं हर बार श्रृंखला के लिए एक स्केलर मान या कम से कम समानता के साथ आने की सलाह दूंगा। तभी आपको वास्तविक आँकड़ों के प्रश्न मिलते हैं (जो कि मुझे कम से कम तीनों बिंदुओं के बारे में पता है, लेकिन मुझे सलाह दी गई थी कि मैं इसी तरह के प्रश्न में एक युग्मित टी-टेस्ट का उपयोग करूँ, जब मैंने प्रति तत्व एक स्केलर मान दिया हो)।


उचित लगता है, किसी भी अधिक जानकारी?
nisc
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.