Księgowość przebiegów i wyników eksperymentów

11

Jestem naukowcem i lubię testować realne rozwiązania, więc często przeprowadzam wiele eksperymentów. Na przykład, jeśli obliczam wynik podobieństwa między dokumentami, może chciałbym wypróbować wiele miar. W rzeczywistości dla każdego pomiaru może być konieczne wykonanie kilku przebiegów w celu przetestowania wpływu niektórych parametrów.

Do tej pory śledziłem wejścia przebiegów i ich wyniki, zapisując wyniki w plikach z tak dużą ilością informacji o wejściach. Problem polega na tym, że uzyskanie określonego wyniku staje się czasem wyzwaniem, nawet jeśli próbuję dodać informacje wejściowe do nazwy pliku. Próbowałem użyć arkusza kalkulacyjnego z linkami do wyników, ale to nie robi dużej różnicy.

Jakich narzędzi / procesów używasz do prowadzenia ksiąg swoich eksperymentów?

mądrość maszynowa
źródło
1
Chciałem dodać najlepsze praktyki tagu, ale nie mogę, ponieważ nie mam 150 punktów reputacji. Szczerze mówiąc, nie rozumiem, w jaki sposób nowy użytkownik może skutecznie przyczynić się do powstania witryny przy wszystkich takich zasadach. Widzę wiele pytań, na które znam odpowiedzi, ale nie mogę odpowiedzieć ani nawet głosować na odpowiedź, jeśli już tam jest.
mądrość maszynowa
Myślę, że jest to bardziej ogólne pytanie programistyczne, więc StackOverflow może być lepszy. Możesz dołączyć fragment tego, co próbujesz zrobić i dlaczego jest on wolny, i poprosić o sugerowane optymalizacje.
Sean Owen
Właściwie uważam, że opendata.stackexchange.com byłby lepszym rozwiązaniem.
Emre,
1
Niedawno szybko rozejrzałem się po rynku produktów, które by w tym pomogły, i chcę podzielić się swoimi spostrzeżeniami. Istnieją dwa produkty SAAS, które mogą pomóc zespołowi Data Science w udostępnianiu analiz wykonanych w Pythonie i R. Oba mają notes IPython, taki jak IDE, i oba zawierają wokół niego wiele funkcji do uruchamiania i udostępniania zadań. Uważam, że oba są prawie identyczne: [Domino Data Lab] [1] i [Sense.io] [2] [1]: dominodatalab.com [2]: sense.io
machine-mądrość
Istnieje również środowisko uczenia maszynowego dla Hadoop, które śledzi uruchamianie zadań; [h2o.ai] [3]. Nie jest przeznaczony do usprawnienia pracy zespołu danych, ale przy pewnych ostrożnych konwencjach nazewnictwa może bardzo pomóc. Ten najlepiej pasuje do [3]: h2o.ai
mądrość maszynowa

Odpowiedzi:

5

Niedawno natknąłem się na podobny problem: jak zarządzać wydobywaniem różnych funkcji z dużego zestawu danych, nie wiedząc z góry, jakie byłyby wszystkie. (Nawet wielokrotne obliczanie średnich wartości byłoby kosztowne obliczeniowo.) Ponadto, w jaki sposób zarządzałbym prognozami na podstawie różnych zestawów cech? Oznacza to, że jeśli dodam nową funkcję, skąd mam wiedzieć, które modele trenować na nowych funkcjach? Mogłoby to szybko przerwać śnieżkę w ogromny bałagan.

Moje obecne rozwiązanie polega na śledzeniu tego wszystkiego w lokalnej bazie danych NoSQL (MongoDB). Na przykład mogę mieć kolekcję features, której każdy wpis ma nazwę, opis sposobu obliczenia funkcji, plik python, który uruchomił ekstrakcję itp.

Podobnie kolekcja modelszawiera modele działające na danych. Każdy wpis może mieć nazwę, listę funkcji, które zostały użyte do wyszkolenia modelu, jego ostatecznych parametrów, przewidywanych wartości w odłożonym zestawie testowym, metryki dotyczące wydajności modelu itp.

Z mojego punktu widzenia ma to wiele zalet:

  • Zapisując prognozy, mogę je później wykorzystać w zestawieniach predykcyjnych.
  • Ponieważ śledzę, które funkcje zostały użyte, wiem, które z nich wymagają ponownego przeszkolenia, gdy wydobywam więcej funkcji.
  • Zapisując opisy modeli, zapewniam, że zawsze wiem, co próbowałem. Nigdy nie muszę się zastanawiać: „Czy wypróbowałem LASSO z parametrami regularyzacji ustawionymi przez CV z wyszukiwaniem siatki?” Zawsze mogę to sprawdzić i przekonać się, jak udany.

Z twojego pytania wynika, że ​​możesz dostosować to podejście do przebiegu problemu. Zainstaluj Mongo lub inną wybraną bazę danych, a następnie zapisz każdy przebieg eksperymentalny, jego dane wejściowe, wyniki i wszystko, co chcesz śledzić w trakcie realizacji projektu. Przynajmniej powinno to być znacznie łatwiejsze do wykonania zapytania niż arkusza kalkulacyjnego.

Sean Easter
źródło
chciałbym głosować, ale nie wolno mi.
mądrość maszynowa