Бухгалтерский учет экспериментов и результатов

11

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

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

Какие инструменты / процесс вы используете для учета ваших экспериментов?

машинно-мудрость
источник
1
Я хотел добавить метку Best Practices, но не могу, поскольку у меня нет 150 очков репутации. Честно говоря, я не понимаю, как новичок может эффективно внести свой вклад в сайт со всеми такими правилами. Я вижу много вопросов, на которые я знаю ответы, но я не могу ответить или даже проголосовать за ответ, если он уже есть.
машинная мудрость
Я думаю, что это больше общий вопрос программирования, поэтому StackOverflow может быть лучше. Вы можете включить фрагмент того, что вы пытаетесь сделать, и почему это медленно, и запросить предложенную оптимизацию.
Шон Оуэн,
На самом деле я думаю, что opendata.stackexchange.com будет лучше.
Эмре
1
Недавно я быстро осмотрел рынок для продуктов, которые могли бы помочь с этим, и я хочу поделиться своими выводами. Есть два продукта SAAS, которые могут помочь команде Data Science поделиться результатами анализов, выполненных на Python и R. Они оба имеют блокнот IPython, такой как IDE, и оба они строят вокруг него множество функций для выполнения и совместного использования заданий. Я нахожу их обоих почти идентичными: [Domino Data Lab] [1] и [Sense.io] [2] [1]: dominodatalab.com [2]: sense.io
машинная мудрость,
Существует также среда машинного обучения для Hadoop, которая отслеживает выполнение заданий; [h2o.ai] [3]. Он не предназначен для того, чтобы быть инструментом для оптимизации работы группы данных, но с некоторыми осторожными соглашениями об именах это может очень помочь. Это больше всего подходит для [3]: h2o.ai
машинная мудрость

Ответы:

5

Вы можете посмотреть на http://deeplearning.net/software/jobman/intro.html

это было разработано для глубокого изучения (я думаю), но это не зависит от приложения. По сути, это версия API подхода SeanEasters.

seanv507
источник
5

Недавно я столкнулся с похожей проблемой: как управлять извлечением различных функций из большого набора данных, не зная заранее, какими они будут. (Даже повторное вычисление средних значений было бы вычислительно дорогостоящим.) Кроме того, как бы я управлял прогнозами, основанными на разных наборах функций? То есть, если бы я добавил новую функцию, как бы я узнал, какие модели обучать новым функциям? Это может быстро превратиться в огромный снежный ком.

Мое текущее решение - отслеживать все это в локальной базе данных NoSQL (MongoDB). Например, у меня может быть коллекция features, каждая запись которой имеет имя, описание того, как была рассчитана функция, файл python, который выполнял извлечение, и т. Д.

Аналогично, коллекция modelsвключает модели, работающие с данными. У каждой записи может быть имя, список функций, которые использовались для обучения модели, ее возможные параметры, прогнозируемые значения в удерживаемом наборе тестов, показатели эффективности работы модели и т. Д.

С моей точки зрения, это имеет ряд преимуществ:

  • Сохраняя прогнозы, я могу использовать их позже в ансамблевых прогнозах.
  • Поскольку я отслеживаю, какие функции были использованы, я знаю, какие из них необходимо переподготовить, поскольку я извлекаю больше функций.
  • Сохраняя описания моделей, я гарантирую, что всегда буду знать, что я пробовал. Мне никогда не приходится задаваться вопросом: «Пробовал ли я LASSO с параметрами регуляризации, установленными CV для поиска в сетке?» Я всегда могу посмотреть на это и увидеть, насколько успешно это было.

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

Шон Пасха
источник
Я хотел бы поднять голос, но мне не разрешено.
машина-мудрость