Должен ли я сравнить предложенную работу с моей реализацией предыдущих связанных статей или с полученным результатом?

В информатике мне нужно сравнить точность предложенного мной метода с предыдущими. Возможны два варианта:

  1. Реализовать методы, описанные в соответствующих документах, на моей собственной машине
  2. Использовать заявленные результаты авторов

Иногда, когда я реализую другие статьи, результаты отличаются от заявленных из-за отсутствия деталей, параметров и гиперпараметров. Какое правильное решение? Стоит ли сравнивать свою работу с реализованной? Кроме того, иногда отчеты о предыдущих работах находятся на другом наборе данных, и мне приходится реализовывать код. Это правильный путь?

Ответы (4)

Я бы сказал, что, как правило, вы просто опираетесь на результаты, предоставленные авторами статей, которые вы цитируете. На самом деле вы не должны заново реализовывать их алгоритм только для того, чтобы подтвердить их результаты.

Давайте погрузимся немного глубже, особенно с точки зрения рецензента. Когда рецензент видит, что ваш метод в чем-то превосходит ранее опубликованную работу, это именно то, что ожидается, поэтому все довольны. Если вы не можете доказать, что ваш метод лучше, потому что вы используете другой набор данных, это довольно проблематично (как для вас, так и для рецензента), и в общем случае было бы очень желательно получить одинаковые данные. Пожалуй, это первый шаг, который нужно сделать.

Если вы не можете получить тот же набор данных и попытаться перереализовать алгоритм, конечно, это открывает всю банку червей, поскольку рецензент может справедливо предположить, что ваша реализация чем-то отличается (из-за других параметров или возможных ошибок) и, следовательно, несопоставима. . Я бы сказал, что обычный допустимый сценарий для такого предприятия — это когда вы сомневаетесь в выводах оригинальной статьи и хотите подтвердить или опровергнуть их.

В качестве примечания, я думаю, что нужно определиться со стратегией оценки, прежде чем разрабатывать и внедрять собственные методы. Если вы хотите повысить уровень техники, разумно сначала проверить существующие документы и убедиться, что вы можете получить тот же набор данных, что и их авторы, чтобы показать, что ваш метод более точен на тех же данных.

1) Сравнение с результатами, о которых сообщают другие авторы, по всей вероятности, приемлемо.

2) Однако опубликованным результатам не следует безоговорочно верить, поэтому лучше (в смысле лучшего служения науке) воспроизвести результаты других авторов. Кроме того, кто знает, в случае, если заявленные хорошие результаты не повторяются, у вас есть еще один аргумент против конкурента и в пользу вашего метода.
Если информации для этого недостаточно в цитируемой вами статье (которую рецензенты этой статьи должны были подвергнуть критике, на мой взгляд), самый надежный способ сделать это — запросить у авторов их код (если это не так). доступны в любом месте, т.е.).

3) Если авторы не делятся своим кодом, на мой взгляд, хорошо попытаться воспроизвести их результаты, используя ваш собственный код (хотя, если вы можете использовать опубликованные результаты, это не обязательно для вашей публикации, см. пункт 1) . Если вы обнаружите различия, лучше всего связаться с первоначальными авторами по этому поводу, но вы также имеете полное право сказать в своей статье, что эти результаты отличаются от оригинальных, несмотря на то, что вы сделали все возможное, чтобы воспроизвести их. В любом случае вы должны признать, что это ваша реализация, и перечислить любые решения, принятые вами для реализации, которые не очевидны из оригинальной статьи. Опять же, это больше работы, чем просто использование их результатов и, по всей вероятности, не требуется для публикации.

Я добавляю (с опозданием), что помимо ценности конкретной публикации, которую вы, возможно, имеете в виду, я узнал несколько ценных вещей, пытаясь воспроизвести работу других людей.

4) Другие респонденты правы, сравнивая только то, что сопоставимо, см. их ответы.

Это будет зависеть от того, как вы измеряете вещи. Если результаты представляют собой простые тайминги, тогда скорость/архитектура машины могут иметь большое значение. Но если вы, например, считаете сравнения, то результат не зависит от скорости машины.

Убедитесь, что вы сравниваете яблоки с яблоками, а не яблоки с арахисом.

Мне нужно сравнить точность моей работы с другими документами, и она не зависит от скорости и архитектуры.
Всех параметров я, конечно, не знаю. Но «яблоки к яблокам» были важной частью.

Вычислительная сложность — полезный инструмент для измерения производительности и сравнения результатов. Например, таким образом сравниваются алгоритмы сортировки . Но то, что вам подходит, действительно зависит от того, что вы решаете.