Wpis użytkownika hackerman w Hydepark
hackermanKompan
12piorunówJednym z bardziej ciekawych wzorców architektonicznych jest architektura zwana Pipe And Filters.
Co nam daje?
Polega ona na utworzeniu za pomocą modułów w kodzie idempotentych przepływów danych.
Przykład na ML flow:
Dane => Mapowanie danych => Analiza danych => Imputacja danych => Transformacja danych (np scalowanie) => Uczenie na danych => Weryfikacja modelu => Deploy modelu
Co nam daje P&F?
Możemy bez problemu każdą z tych części zrównoleglić od siebie i użyć tak zwanych collectors do zbierania wyników i przekazania ich do kolejnego modułu.
Dane => 1..N osobnych procesów => Mapowanie danych => Analiza danych => Imputacja danych => Transformacja danych => Kolektor => Uczenie na danych => weryfikacja modelu => Deploy modelu
P. S. Co to podziału analizy statystycznej na mniejsze batche opieram się na Centralnym Twierdzeniu Granicznym, dlatego mogę robić na zatomizowanych ilościach 😉
Z ciekawości czy ktoś chciałby coś o ML/DS ?
Komentarze (11)
@hackerman Z chęcią poczytam. Sam ostatnio raczkuję w pracy w tematyce MLOps, dlatego też przyda się poszerzyć wiedzę :slightly_smiling_face:
@hackerman takie są najlepsze, ale trzeba mieć o tym większe pojęcie, niż wydzierganie prostego programiku w konsoli 😛
@chusteczka_haftowana Yeap :slightly_smiling_face: myślę, że temat fajny :slightly_smiling_face: ale bardzo szeroki
@hackerman brzmi jak fajna optymalizacja
@hackerman zrobiłam jedno podejście, ale szybko odpuściłam, może dlatego, że kurs był nastawiony pod AI. Za to swojego czasu fajnie mi szła zabawa na danych SQLem, a potem zostałam w piaskownicy - Excel, ale za to coś tam z VBA chwilę romansowałam, jak było mi to potrzebne
Btw uzupełnianie NaN 0 to jest przykład 🙂 Żeby dane brakujące uzupełnić warto dane zbadać pod kątem rozkładu, statystycznych testów...
@chusteczka_haftowana Dokładnie tak :slightly_smiling_face: Ogólnie nie wiem czy używasz Pythona.
Ale w pandas jest coś takiego jak inplace=True/False
Czyli ma nadpisać dane, albo zwrócić obiekt po transformacji. Czyli przykład.
def fill_nan_by_zero(df: DataFrame) -> DataFrame:
return df.fillna(0)
Nie dość, że jest zyskywiana atomowość, to łatwo tworzyć klocki, które potem można przemiennie używać
@hackerman czyli taki jakby lejek tak?
wyciągam dane > wrzucam do nowej tabeli (czyli ucinam im wcześniejsze powiązania z innymi danymi) > manipulacja 1 > nowa tabela 1 > ... >manipulacja n > nowa tabela n z ostatecznym wynikiem
coś w ten deseń?
@chusteczka_haftowana To słowo jest bardzo fajne. Po prostu chodzi o to, że każdy krok tworzy nowy obiekt. W podejściu obiektowym pracuje się często i gęsto na jednych danych i je się manipuluje, zmienia. Chodzi tutaj o to, że pierwotne dane zostają skopiowane. Daje to możliwość odcięcia się od problemów z wielowątkowością jak wyścigiem do zasobu 🙂 Dałem radę?
@hackerman O! Widzę #qualitycontent! Może jakaś seria wpisów?