[28][Narzędzia]

PYTANIA

Interfejs API prognoz Google: Jakie metody szkolenia / przewidywania Google Interfejs API prognoz?

Nie mogę znaleźć żadnych szczegółów na temat algorytmów predykcyjnych działających za interfejsem API. Do tej pory zebrałem informacje, że pozwalają one podać kroki przetwarzania wstępnego w formacie PMML

ODPOWIEDZI:

Jeśli spojrzysz na specyfikacje PMML, zobaczysz, jakie masz opcje (takie jak ModelTree, NaiveBayes, Neural Nets i tak dalej).

Użytkownik może korzystać z różnych metod. Dokumentacja pomocy technicznej zawiera wskazówki i porady dotyczące tego, kiedy jeden lub drugi model jest najbardziej odpowiedni.

Google nie publikuje modeli, których używają, ale w szczególności nie obsługują modeli ze specyfikacji PMML. Jeśli przyjrzysz się uważnie dokumentacji na tej stronie, zauważysz, że wybór modelu w schemacie jest wyszarzony, co wskazuje, że jest to nieobsługiwana funkcja schematu. Dokumentacja wyjaśnia, że ​​domyślnie użyje modelu regresji do danych treningowych, który ma odpowiedzi numeryczne, oraz nieokreślonego modelu kategoryzacji dla danych szkoleniowych, których wynikiem są odpowiedzi tekstowe. Interfejs API Google Prediction obsługuje również modele hostowane (chociaż obecnie dostępnych jest tylko kilka modeli demonstracyjnych) oraz modele określone za pomocą transformacji PMML. Dokumentacja zawiera przykład modelu zdefiniowanego przez transformację PMML. (Na tej stronie znajduje się również informacja, że ​​PMML… Elementy modelu nie są obsługiwane). Standard PMML, który Google częściowo obsługuje, to wersja 4.0.1.

Czy potrzebujesz maszyny wirtualnej jako narzędzia do praktyki danych?

Jestem zupełnie nowy w dziedzinie nauki o danych, chcę się w to wgryźć, a jest tam tak wiele narzędzi. Na tych maszynach wirtualnych jest dużo oprogramowania, ale nie udało mi się znaleźć żadnego porównania obok siebie.

To początek moich badań, ale jeśli ktoś mógłby mi powiedzieć, że ktoś jest obiektywnie bardziej bogaty w funkcje, ma większą społeczność wsparcia i jest przydatny na początku, to by to bardzo pomogło: datasciencetoolKIT.org -> vm jest w chwiejnej chmurze (4 GB) i wydaje się bardziej „hip” z R, notebookiem iPython i innymi przydatnymi narzędziami wiersza poleceń (html-> txt, json-> xml itp.).

ODPOWIEDZI:

Potrzebujesz maszyny wirtualnej?

Należy pamiętać, że maszyna wirtualna jest emulacją oprogramowania własnej lub innej konfiguracji sprzętowej maszyny, która może obsługiwać systemy operacyjne. Mówiąc najprościej, działa jako warstwa interfejsu między wirtualnym systemem operacyjnym a własnym systemem operacyjnym, który następnie komunikuje się ze sprzętem niższego poziomu, aby zapewnić obsługę wirtualnego systemu operacyjnego. Oznacza to dla Ciebie:

Minusy

Wsparcie sprzętowe

Wadą technologii maszyn wirtualnych jest to, że obsługuje tylko sprzęt obsługiwany zarówno przez hiperwizora maszyny wirtualnej, jak i system operacyjny gościa. Nawet jeśli system operacyjny gościa obsługuje sprzęt fizyczny, widzi tylko sprzęt wirtualny prezentowany przez maszynę wirtualną. Drugim aspektem obsługi sprzętu wirtualnego jest sprzęt prezentowany systemowi-gościowi. Bez względu na sprzęt w hoście, sprzęt prezentowany w środowisku gościa jest zwykle taki sam (z wyjątkiem procesora, który pokazuje). Na przykład VMware GSX Server przedstawia kartę AMD PCnet32 Fast Ethernet lub zoptymalizowaną, zastrzeżoną kartę sieciową VMware, w zależności od wyboru. Karta sieciowa na hoście nie ma znaczenia. Serwer VMware GSX wykonuje translację między kartą sieciową środowiska gościa a kartą sieciową hosta. Jest to świetne do standaryzacji, ale oznacza również, że sprzęt hosta, którego VMware nie rozumie, nie będzie obecny w środowisku gościa.

Kara za wyniki

Technologia maszyn wirtualnych nakłada ograniczenie wydajności na uruchomienie dodatkowej warstwy powyżej fizycznego sprzętu, ale poniżej systemu operacyjnego gościa. Kara za wydajność różni się w zależności od użytego oprogramowania do wirtualizacji i uruchomionego oprogramowania gościa. To jest znaczące.

Plusy

Izolacja

Jednym z kluczowych powodów zastosowania wirtualizacji jest izolowanie aplikacji od siebie. Uruchamianie wszystkiego na jednej maszynie byłoby świetnie, gdyby wszystko działało, ale wiele razy powoduje niepożądane interakcje, a nawet bezpośrednie konflikty. Przyczyną często są problemy z oprogramowaniem lub wymagania biznesowe, takie jak potrzeba izolowanych zabezpieczeń. Maszyny wirtualne umożliwiają izolowanie każdej aplikacji (lub grupy aplikacji) we własnym środowisku piaskownicy. Maszyny wirtualne mogą działać na tej samej maszynie fizycznej (co upraszcza zarządzanie sprzętem IT), ale są wyświetlane jako niezależne maszyny dla uruchomionego oprogramowania. Do wszystkich celów i celów – z wyjątkiem wydajności, maszyny wirtualne są maszynami niezależnymi. Jeśli jedna maszyna wirtualna ulegnie awarii z powodu błędu aplikacji lub systemu operacyjnego, pozostałe będą nadal działać, zapewniając usługi potrzebne Twojej firmie do sprawnego funkcjonowania.

Normalizacja

Kolejną kluczową korzyścią zapewnianą przez maszyny wirtualne jest standaryzacja. Sprzęt prezentowany w systemie operacyjnym gościa jest w większości jednolity, zwykle z CPU jako jedynym komponentem, który jest „tranzytowy” w tym sensie, że gość widzi to, co znajduje się na hoście. Standaryzowana platforma sprzętowa zmniejsza koszty wsparcia i zwiększa udział zasobów informatycznych, które można przeznaczyć na realizację celów, które zapewnią firmie przewagę konkurencyjną. Maszyny hosta mogą być różne (jak w rzeczywistości często są, gdy sprzęt jest nabywany w różnym czasie), ale maszyny wirtualne będą wyglądać tak samo we wszystkich z nich.

Łatwość testowania

Maszyny wirtualne umożliwiają łatwe testowanie scenariuszy. Obecnie większość oprogramowania maszyn wirtualnych zapewnia migawki i funkcje przywracania. Oznacza to, że możesz zatrzymać maszynę wirtualną, utworzyć migawkę, wykonać więcej operacji na maszynie wirtualnej, a następnie cofać się raz za razem, aż zakończysz testowanie. Jest to bardzo przydatne do tworzenia oprogramowania, ale jest również przydatne do administrowania systemem. Administratorzy mogą wykonać migawkę systemu i zainstalować oprogramowanie lub wprowadzić zmiany konfiguracji, które, jak podejrzewają, mogą zdestabilizować system. Jeśli oprogramowanie instaluje się lub zmiany działają, administrator może zatwierdzić aktualizacje. Jeśli aktualizacje uszkodzą lub zniszczą system, administrator może je wycofać. Maszyny wirtualne ułatwiają także testowanie scenariuszy, umożliwiając sieci wirtualne. Na przykład w VMware Workstation można skonfigurować wiele maszyn wirtualnych w sieci wirtualnej z konfigurowalnymi parametrami, takimi jak utrata pakietów z powodu przeciążenia i opóźnienia. W ten sposób możesz przetestować aplikacje wrażliwe na czas lub wrażliwe na obciążenie, aby zobaczyć, jak działają pod obciążeniem symulowanego dużego obciążenia pracą.

Mobilność

Maszyny wirtualne można łatwo przenosić między maszynami fizycznymi. Większość dostępnego obecnie oprogramowania maszyn wirtualnych przechowuje cały dysk w środowisku gościa jako pojedynczy plik w środowisku hosta. Funkcje migawki i wycofywania są implementowane poprzez przechowywanie zmiany stanu w osobnym pliku w informacjach o hoście. Jeden plik reprezentuje cały dysk środowiska gościa, co sprzyja mobilności maszyn wirtualnych. Przeniesienie maszyny wirtualnej na inną maszynę fizyczną jest tak proste, jak przeniesienie pliku dysku wirtualnego i niektórych plików konfiguracyjnych na inną maszynę fizyczną. Wdrożenie innej kopii maszyny wirtualnej jest tym samym, co przeniesienie maszyny wirtualnej, tyle że zamiast przenoszenia plików, kopiujesz je.

Jakiej maszyny wirtualnej powinienem użyć, jeśli zaczynam?

Data Science Box lub Data Science Toolbox to twoje najlepsze nakłady, jeśli dopiero zaczynasz naukę danych. Mają podstawowe oprogramowanie, którego będziesz potrzebować, a podstawową różnicą jest wirtualne środowisko, w którym każde z nich może działać. DSB może działać na AWS, podczas gdy DST może działać na Virtual Box (najczęściej używanym narzędziu do maszyn wirtualnych).

ODPOWIEDZI :

W większości przypadków praktykujący badacz danych tworzy własne środowisko pracy na komputerze osobistym instalując preferowane pakiety oprogramowania. Zwykle jest to wystarczające i wydajne wykorzystanie zasobów obliczeniowych, ponieważ aby uruchomić maszynę wirtualną (VM) na głównej maszynie, musisz przeznaczyć na nią znaczną część pamięci RAM. Oprogramowanie będzie działało zauważalnie wolniej zarówno na głównej, jak i wirtualnej maszynie, chyba że będzie dużo pamięci RAM. Ze względu na ten wpływ na szybkość nie jest często używane maszyny wirtualne jako główne środowisko pracy, ale są dobrym rozwiązaniem w kilku przypadkach, gdy istnieje potrzeba dodatkowego środowiska pracy.

Maszyny wirtualne należy brać pod uwagę, gdy:

  1. Istnieje potrzeba łatwej replikacji wielu identycznych środowisk komputerowych podczas nauczania kursu lub prezentacji na konferencji.
  2. Istnieje potrzeba zapisania i odtworzenia dokładnego środowiska dla eksperymentu lub obliczenia.
  3. Istnieje potrzeba uruchomienia innego systemu operacyjnego lub przetestowania rozwiązania na narzędziu, które działa na innym systemie operacyjnym.
  4. Chcemy wypróbować pakiet narzędzi programowych przed zainstalowaniem ich na głównym komputerze. Na przykład. istnieje możliwość zainstalowania instancji Hadoop (CDH) na maszynie wirtualnej podczas kursu Wprowadzenie do Hadoop na Udacity.
  5. Maszyny wirtualne są czasami używane do szybkiego wdrażania w chmurze, takich jak AWS EC, Rackspace itp.

Maszyny wirtualne wymienione w pierwotnym pytaniu są wykonane jako łatwe do zainstalowania pakiety oprogramowania do analizy danych. Jest ich więcej niż dwa. Ten post na blogu autorstwa Jeroen Janssens zawiera porównanie co najmniej czterech:

  1. Zestaw narzędzi do analizy danych
  2. Wyszukiwanie w sieci społecznościowej
  3. Zestaw narzędzi do analizy danych
  4. Data Science Box

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

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?

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ć funkcje kolekcji, z których każda pozycja ma nazwę, opis sposobu obliczenia funkcji, plik python, który uruchomił ekstrakcję itp. Podobnie modele kolekcji zawierają 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 ostateczne parametry, przewidywane wartości w przetrzymywanym zestawie testowym, miary dotyczące wydajności modelu itp. Z mojego punktu widzenia ma to liczba korzyści:

* 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, czego próbowałem. Nigdy nie muszę się zastanawiać: „Czy wypróbowałem LASSO z parametrami regularyzacji ustawionymi przez gridsearch CV?” 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.

Czy badacze danych używają Excela?

Uważałbym się za naukowca danych czeladnika. Jak większość (tak myślę), robiłem pierwsze wykresy i pierwsze agregacje w liceum i na studiach, używając Excela. Po ukończeniu, szkoły średniej i ,7-letniego doświadczenia zawodowego szybko podjąłem to, co ja uważamy za bardziej zaawansowane narzędzia, takie jak SQL, R, Python, Hadoop, LaTeX itp. Prowadzimy rozmowy kwalifikacyjne na stanowisko specjalisty ds. danych, a jeden kandydat reklamuje się jako „starszy specjalista ds. danych” (obecnie bardzo burzliwy termin) z +15  lata doświadczenia. Zapytany, jaki jest jego ulubiony zestaw narzędzi, odpowiedział, że to Excel. Wziąłem to za dowód, że nie był tak doświadczony, jak twierdziłby jego życiorys, ale nie był pewien. W końcu to, że nie jest to moje ulubione narzędzie, nie oznacza, że ​​nie należy ono do innych osób. Czy doświadczeni naukowcy danych używają programu Excel? Czy możesz założyć, że nie masz doświadczenia w korzystaniu z programu Excel?

Większość nietechnicznych osób często używa programu Excel jako zamiennika bazy danych. Myślę, że to źle, ale do zaakceptowania. Jednak ktoś, kto podobno ma doświadczenie w analizie danych, po prostu nie może używać programu Excel jako swojego głównego narzędzia (z wyjątkiem oczywistego zadania polegającego na pierwszym spojrzeniu na dane). Wynika to z faktu, że Excel nigdy nie był przeznaczony do tego rodzaju analiz, w związku z czym niezwykle łatwo jest popełniać błędy w programie Excel (nie oznacza to, że nie jest niewiarygodnie łatwo popełniać inny rodzaj błędów przy użyciu innych narzędzi, ale

Excel jeszcze bardziej pogarsza sytuację.) Podsumowując, czego nie ma i jest niezbędny do każdej analizy:

  1. Odtwarzalność. Analiza danych musi być odtwarzalna.
  2. Kontrola wersji. Dobry dla współpracy, a także dla powtarzalności. Zamiast używać xls, użyj csv (wciąż bardzo złożony i ma wiele przypadków brzegowych, ale parsery csv są obecnie dość dobre).
  3. Testowanie. Jeśli nie masz testów, Twój kod jest uszkodzony. Jeśli kod jest uszkodzony, analiza jest gorsza niż bezużyteczna.
  4. Konserwowalność.
  5. Dokładność. Dokładności numerycznej, dokładnej analizy dat, między innymi, naprawdę brakuje w Excelu.

Czy doświadczeni naukowcy danych używają programu Excel?

Widziałem kilku doświadczonych naukowców zajmujących się danymi, którzy używają Excela – albo ze względu na swoje preferencje, albo ze względu na specyfikę ich miejsca pracy i środowiska IT (na przykład wiele instytucji finansowych używa Excela jako głównego narzędzia przynajmniej do modelowania). Myślę jednak, że najbardziej doświadczeni badacze danych uznają potrzebę korzystania z narzędzi, które są optymalne dla określonych zadań, i stosują to podejście.

Czy możesz założyć, że nie masz doświadczenia w korzystaniu z programu Excel? Nie, nie możesz. Jest to następstwem moich wyżej wymienionych myśli. Analiza danych nie oznacza automatycznie dużych zbiorów danych – program Excel jest w stanie wykonać wiele prac związanych z analizą danych. Powiedziawszy to, jeśli specjalista ds. Danych (nawet doświadczony) nie ma wiedzy (przynajmniej podstawowej) o nowoczesnych narzędziach do analizy danych, w tym o dużych danych, jest to nieco niepokojące. Wynika to z faktu, że eksperymenty są głęboko zakorzenione w naturze nauki o danych, ponieważ eksploracyjna analiza danych jest jej istotną, a nawet kluczową częścią. Dlatego osoba, która nie ma ochoty eksplorować innych narzędzi w swojej dziedzinie, mogłaby zająć niższą pozycję wśród kandydatów w ogólnej zdolności do zajmowania stanowiska w dziedzinie danych (oczywiście jest to dość niejasne, ponieważ niektórzy ludzie bardzo szybko się uczą nowy materiał, a ponadto ludzie mogli nie mieć okazji zaspokoić swojego zainteresowania innymi narzędziami z różnych powodów osobistych lub w miejscu pracy). Podsumowując, uważam, że najlepsza odpowiedź doświadczonego badacza danych na pytanie dotyczące preferowanego narzędzia jest następująca: Moim preferowanym narzędziem jest narzędzie optymalne, czyli takie, które najlepiej pasuje do danego zadania.

Program Excel dopuszcza tylko bardzo małe dane i nie zawiera niczego, co byłoby wystarczająco przydatne i elastyczne do uczenia maszynowego, a nawet do kreślenia. Wszystko, co bym zrobił w Excelu, to wpatrywanie się w podzbiór danych, aby po raz pierwszy rzucić okiem na wartości, aby upewnić się, że nie umknie mi nic widocznego dla oka. Tak więc, jeśli jego ulubionym narzędziem jest Excel, może to sugerować, że rzadko zajmuje się uczeniem maszynowym, statystykami, większymi rozmiarami danych lub zaawansowanym drukowaniem. Ktoś taki jak ten nie nazwałbym Data Scientist. Oczywiście tytuły nie mają znaczenia i wiele zależy od twoich wymagań. W każdym razie nie oceniaj na podstawie doświadczeń lub CV. Widziałem CV i znałem ludzi za tym. Nie zakładaj. Przetestuj go! Powinieneś być wystarczająco dobry, aby przygotować test. Wykazano, że same wywiady są prawie bezużyteczne w celu ustalenia umiejętności (pokazują jedynie osobowość). Przygotuj bardzo prosty nadzorowany test uczenia się i pozwól mu korzystać z dowolnego narzędzia, jakie tylko zechce. A jeśli chcesz najpierw przesłuchać ludzi podczas wywiadu, zapytaj go o bardzo podstawowe, ale ważne informacje na temat statystyki lub uczenia maszynowego. Coś, o czym wie każdy z obecnych pracowników.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *