У меня есть две реализации генетического алгоритма, которые должны вести себя одинаково. Однако из-за технических ограничений, которые не могут быть разрешены, их выходные данные не совпадают, учитывая тот же вклад.
Тем не менее, я хотел бы показать, что нет существенной разницы в производительности.
У меня есть 20 прогонов с одинаковой конфигурацией для каждого из двух алгоритмов, использующих различные начальные начальные числа случайных чисел. Для каждого запуска и генерации минимальной ошибки приспособленность лучшей особи в популяции была зафиксирована. Алгоритм использует механизм сохранения элиты, поэтому приспособленность лучшего человека монотонно уменьшается. Прогон состоит из 1000 поколений, поэтому у меня есть 1000 значений за цикл. Я не могу получить больше данных, так как расчеты очень дороги.
Какой тест я должен использовать? Самый простой способ, вероятно, состоит в том, чтобы сравнить ошибку только в последних поколениях (опять же, какой тест я бы здесь использовал)? Но можно также подумать о сравнении поведения сходимости в целом.
Ответы:
Тестирование стохастических алгоритмов может быть довольно сложным!
Я работаю в системной биологии, и есть много стохастических симуляторов, доступных для моделирования модели. Тестирование этих симуляторов довольно сложно, так как любые две реализации одной модели обычно отличаются.
В dsmts мы рассчитали (аналитически) ожидаемое значение и дисперсию конкретной модели. Затем мы выполняем проверку гипотезы, чтобы определить, отличается ли симулятор от истины. Раздел 3 UserGuide дает детали. По сути, мы делаем t-тест для средних значений и критерий хи-квадрат для дисперсий.
В вашем случае вы сравниваете два симулятора, поэтому вам следует просто использовать t-критерий с двумя выборками.
источник
Возможно, вы могли бы измерить среднюю разницу между двумя прогонами одного и того же алгоритма и среднюю разницу между двумя прогонами из разных алгоритмов. Не решает проблему того, как измерить эту разницу, но может быть более податливой проблемой. И отдельные значения временного ряда будут использоваться в расчете разности вместо того, чтобы обрабатываться как отдельные точки данных для оценки друг друга (я также не думаю, что конкретное различие на n-м шаге - это то, что вы действительно хотите делать заявления о).
Обновление Относительно подробностей - какие особенности временного ряда вас интересуют, кроме окончательной ошибки? Я полагаю, у вас есть три разных вопроса:
Все, что я говорил в первом посте, было то, что ответ на (1), вероятно, не учитывает индивидуальные различия в каждом из 1000 поколений. И что я бы посоветовал придумать скалярное значение для каждого временного ряда или хотя бы сходства между временными рядами. Только тогда вы перейдете к актуальному статистическому вопросу (о котором я знаю меньше всего из всех трех пунктов, но мне посоветовали использовать парный t-тест в аналогичном вопросе, который я только что задал, при наличии скалярного значения на элемент).
источник