un

guest
1 / ?
back to lessons

Co to jest nauka o danych?

Nauka o danych to nie tylko uczenie maszynowe. To nie tylko statystyka. To nie tylko programowanie.

Nauka o danych to dziedzina wydobywania użytecznych wiedzy z danych. Większość tej pracy nie jest przekąską: to czyszczenie brudnych arkuszy, zadawanie odpowiednich pytań oraz komunikowanie wyników osobom, które nie mają zapału do Twojego kodu.

Pipeline nauki o danych

Typowy pipeline nauki o danych wygląda tak:

1. Zbieranie: zbieranie danych surowych z baz danych, API, CSV lub wyciąganie z internetu

2. Czyszczenie: obsługa wartości brakujących, korekta typów, usuwanie duplikatów

3. Eksploracja: wizualizacja rozkładów, znalezienie wzorców, zadawanie pytań

4. Inżynieria: tworzenie nowych cech, które pomagają modelom uczyć się

5. Modelowanie: szkolenie algorytmów, ocena wydajności, iteracja

6. Komunikacja: prezentacja wyników decydentom

Jeśli kiedykolwiek korzystaliście z narzędzi Excel, takich jak tabele zwracające wartości, formatowanie warunkowe lub VLOOKUP, już wykonywałeś kroki 1-3. Ten lekcja połączy twoje doświadczenie z przepływem pracy opartym na Pythonie, stosowanym w przemyśle.

Rozgrzewka

Twoje doświadczenie z danymi

Każdy pracował z danymi w jakiejś formie: arkuszem budżetowym, śledzeniu ocen, aplikacji na fitness, nawet playlist z liczbą odtworzeń.

Opisz czas, w którym pracowałeś z danymi w arkuszu lub aplikacji. Co próbowałeś wyjaśnić, a dane dały Ci odpowiedź?

Śmieci wejściowe, śmieci wyjściowe

Dlaczego czyszczenie jest ważne

Naukowcy danych spędzają 60-80% czasu na czyszczeniu danych. To nie przesada: to stałe znalezienie w badaniach przeprowadzanych w przemyśle.

Powód jest prosty: śmieci wejściowe, śmieci wyjściowe. Jeśli Twoje dane mają błędy, wartości brakujące lub nieregularne formacje, każde badanie oparte na nich będzie błędne. Idealny model szkoleniowy na brudnych danych wydziela pewnie błędne odpowiedzi.


Najczęstsze problemy z danymi

- Brak wartości: komórki są puste. Czy dane nie zostały zebrane, czy wartość jest faktycznie równa zero? Są to różne sytuacje, które wymagają różnego rodzaju obsługi.

- Niepoprawne typy danych: kolumna liczb zapisanych jako tekst, daty w niezgodnych formatach (01/02/2024: to może być 1 lutego czy 2 stycznia?)

- Wyjścia: w kolumnie zarobków występuje jedno wprowadzenie w wysokości 1 000 000 000 dolarów. Czy to jest rzeczywiste, czy błąd ortograficzny? W obu przypadkach wpłynie to na składowanie średniej.

- Powtarzalne wartości: ten sam rekord pojawia się dwukrotnie z powodu niewłaściwego połączenia dwóch systemów

- Kategoryczne kodowanie: kolumna zawiera wartości 'Tak', 'tak', 'T', 'TRUE' i '1'. Oznaczają one to samo, ale Twojego komputera to nie zawsze wiadomo.


W pandas (standardowej bibliotece danych w Pythonie) obsługujesz te problemy za pomocą metod takich jak dropna(), fillna(), astype() i drop_duplicates(). Ale trudna część nie jest w kodzie: trudno jest zdecydować, co zrobić w każdym przypadku.

Powszechnie spotykane problemy z danymi

Decyzje dotyczące czyszczenia

Decydowanie, co zrobić

Oto rzeczywisty scenariusz. Masz zestaw danych zawierających 10 000 rekordów klientów. Kolumna 'wiek' ma 500 brakujących wartości.

Twoje opcje:

- Skasuj wiersze: usunąć wszystkie 500 rekordów. Proste, ale tracisz 5% danych. Jeśli te 500 klientów ma wspólny cech (może z powodu ich roszczeń dotyczących prywatności nie wypełnili pola 'wiek'), usuwanie ich wprowadza bias.

- Wypełnij średnią: zastąpij puste wartości średnią wieku. Szybko, ale sztucznie obniża to zmiennoprzecinkowość twojej kolumny 'wiek'.

- Wypełnij medianą: lepsze od średniej, jeśli rozkład wieku jest skłócony (niewielu bardzo starych lub bardzo młodych klientów wpływa na średnią).

- Użyj flagi: utwórz nową kolumnę o nazwie 'wiek_brakujący' (1 lub 0) i wypełnij oryginalną wartością medianą. Teraz model Twojego programu może nauczyć się, czy brakujące wartości są informacyjne.

Nie ma uniwersalnej odpowiedzi. Wybór zależy od tego, dlaczego dane są brakujące i jak zamiarem z nich korzystać.

Masz zestaw danych zawierających zarobki pracowników. 200 z 5000 rekordów ma brakujące wartości zarobków. Obserwujesz, że większość brakujących wartości pochodzi od dyrektorów. Skasujesz te wiersze, wypełnisz średnią, czy zrobisz coś innego? Wyjaśnij swoje przemyślenia.

Zadawanie Prawidłowych Pytań

Eksploracyjna Analiza Danych (EDA)

Przed zbudowaniem jakiegokolwiek modelu musisz zrozumieć swoje dane. EDA to proces podsumowywania, wizualizowania & pytania o zestaw danych w celu znalezienia wzorców, anomalii & związków.


Kluczowe Narzędzia

- Histogramy: pokazują rozkład pojedynczej zmiennej. Czy ma kształt w kształcie litery 'S'? Skośny? Bimodalny (dwa szczyty)? Histogram pensum zawsze będzie skośny po lewej stronie, ponieważ niewiele osób zarabia znacznie więcej niż większość.

- Wykresy rozrzuconych punktów: pokazują związek między dwiema zmiennymi. Czy ciężsi ludzie ważą więcej? Czy więcej czasu na naukę wiąże się z wyższymi ocenami? Oświetlenie wzorca (lub braku wzorca) informuje, czy istnieje związek.

- Korelacja: liczba między -1 a +1, która mierzy liniowe związanie. +1 oznacza doskonałe pozytywne związanie, -1 oznacza doskonałe ujemne, 0 oznacza brak liniowego związania. Ale korelacja nie implikuje przyczynowości: sprzedaż lodów i liczby wypadków pod wodą są korelowane, ponieważ obie wzrastają latem.

- Podsumowanie statystyk: średnia, medianę, odchylenie standardowe, minimum, maksimum. W pandas: df.describe() daje ci wszystko to w jednej linii.


Prawdziwa Umiejętność

Narzędzia są łatwe do nauki. Trudniejsze jest zadawanie odpowiednich pytań. Źle: 'Co mówią dane?' Dobrze: 'Czy klienci, którzy kontaktują się z obsługą w pierwszym tygodniu, mają wyższe stopy zwrotu?'

Narzędzia EDA

Pułapka Korelacji

Korelacja vs. Przyczynowość

To najważniejszy koncept w edukacji danych. Dwie zmienne mogą być silnie korelowane bez wzajemnego powodowania się.

Klasyczne przykłady:

- Miasta z większą liczbą strażaków mają więcej pożarów. (Większe miasta mają obie rzeczy.)

- Uczniowie, którzy śpią na śniadanie, osiągają lepsze oceny. (Może bogatsi rodzice są bardziej skłonni do dostarczania śniadania I wsparcia akademickiego.)

- Kraj, który spożywa więcej czekolady, wygrywa więcej Nagród Nobla. (Obie korelują z bogactwem narodowym.)

Skryty czynnik nazywany jest zmienną sprzężoną: trzecią zmienną, która wpływa na obie badane.

Korelacja vs. Wpływ

Firma odkrywa, że pracownicy korzystający z siłowni w biurze mają 30% mniej nieobecności z powodów chorobowych. Prezes chce wymagać od wszystkich pracowników korzystania z siłowni. Jaka jest błędna argumentacja? Jakie zmiennye konfounding mogą wyjaśnić korelację?

Tworzenie użytecznych zmiennych

Co to jest inżynieria cech?

Cecha to zmienna wejściowa, której model używa do wykonywania przewidywań. Inżynieria cech to sztuka tworzenia nowych cech z danych surowych, aby pomóc modelom uczyć się wzorców, które w innym przypadku nie mogłyby zobaczyć.

Dane surowe rzadko pojawiają się w postaci, w jakiej modele potrzebują. Rozważ zestaw danych z kolumną 'data urodzenia'. Model nie może zrobić wiele z surowych dat. Ale jeśli stworzysz cechę 'wiek' z niej, nagle model może uczyć się wzorców opartych na wieku.


Techniki często używane

- Normalizacja: skalowanie liczb do wspólnego zakresu (0 do 1, lub średnia=0 i odchylenie standardowe=1). Bez tego cecha pomiarowana w tysiącach (wynagrodzenie) będzie dominować nad cechą pomiarowaną w pojedynczych cyfrach (lata pracy).

- Kodowanie jednorodne: przekształcanie zmiennych kategorycznych w kolumny binarne. Kolumna 'kolor' z wartościami [czerwony, niebieski, zielony] staje się trzema kolumnami: 'kolor_czerwony', 'kolor_niebieski', 'kolor_zielony', każda z wartością 0 lub 1.

- Działanie na zakresy: przekształcanie zmiennej ciągłej w kategorie. Wiek 0-17 staje się 'młodzieńcem', 18-64 staje się 'dorosłym', 65+ staje się 'starszym'. To pomaga, gdy związek nie jest liniowy.

- Interakcyjne cechy: mnożenie dwóch cech razem. 'Pole powierzchniowe razy liczba łazienek' może lepiej przewidywać cenę domu niż każde z nich osobno.

- Wiedza związana z obszarem: najpotężniejsza technika. Lekarz tworząc cechy dla modelu medycznego wie, które wartości laboratoryjne mają znaczenie. Marketer wie, że 'dni od ostatniego zakupu' jest bardziej użyteczne niż 'data zakupu'. Nic nie może zastąpić tego algorytmu.

Technika Inżynierii cech

Praktyka cech

Zastosowanie Inżynierii cech

Wyobraźmy sobie, że budujemy model, aby przewidzieć, którzy klienci anulują swój abonament streamingowy w przyszłym miesiącu. Twoje dane surowe obejmują:

- Data utworzenia konta

- Ostatnia data logowania

- Liczba odcinek obejrzanych w ostatnim miesiącu

- Miesięczny koszt płatności

- Zgłoszone bilety obsługi klienta

- Kraj

Z danych surowych podanych powyżej zalecających co najmniej trzy nowe cechy, które zastosowałbyście. Wytłumaczenie, co one odzwierciedlają i dlaczego mogą pomóc w przewidywaniu anulowania.

Podział na treningowy i testowy

Dlaczego podzielasz dane

Najważniejsza zasada w modelowaniu: nie oceniałes modelu na tych samych danych, na których go szkoliłeś.

Jeśli to zrobisz, model może tylko zapamiętać odpowiedzi. Zostanie osiągnąć doskonałą ocenę na danych treningowych, ale zawiodą na nowych, niewidocznych danych. To nazywane nadmiernym dopasowaniem: model nauczył się odpowiedzi na dane specjalne zamiast prawdziwych wzorców.

Standardowa praktyka polega na podziale danych:

- Dane treningowe (typowo 70-80%): model uczy się z nich

- Dane testowe (typowo 20-30%): zabezpieczone, używane tylko do oceny ostatecznego modelu

W scikit-learn: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)


Algorytmy standardowe

- Regresja liniowa: rysuje najlepiej pasującą prostą przez dane. Prosta, łatwa w interpretacji, działa, gdy relacja jest mniej więcej liniowa. Przewiduje liczbę (cena, temperatura, ocena).

- Drzewa decyzyjne: schemat przepływu z pytaniami tak/nie. Łatwe w zrozumieniu i wyjaśnieniu. Narażone na nadmiernego dopasowania, chyba że zostaną obcięte lub ograniczone w głębokości.

- Las lasy losowo wybranych drzew decyzyjnych: wiele drzew decyzyjnych, które głosują wspólnie. Są dokładniejsze niż pojedyncze drzewo, mniej podatne na przesadne dopasowanie, ale trudniejsze do wyjaśnienia.


Przesadne Dopasowanie vs. Niedostateczne Dopasowanie

- Przesadne Dopasowanie: model jest zbyt złożony. Pamięta dane szkoleniowe, w tym szum. Wysoka dokładność na danych szkoleniowych, niska dokładność na danych testowych.

- Niedostateczne Dopasowanie: model jest zbyt prosty. Nie jest w stanie odzwierciedlić rzeczywistych wzorców. Niska dokładność na obu danych szkoleniowych i testowych.

Cel to miejsce środkowe między nimi.

Podział na Szkoleniowe i Testowe oraz Zrównoważenie Prawdopodobieństwa Błędów-Wariancji

Metodyka Oceny

Jak Wiedzieć, Czy Twój Model Jest Dobry?

Dokładność sama w sobie może być myląca. Jeśli 95% transakcji nie są spamem, model, który zawsze mówi 'nie jest spam', ma 95% dokładności: ale jest zupełnie bezużyteczny.

Kluczowe wskaźniki:

- Dokładność: procent poprawnych przewidywań. Służy, gdy klasy są równomiernie rozłożone.

- Czułość (Precision): z wszystkich rzeczy, które model oznaczył jako pozytywne, ile faktycznie było? Wysoka czułość oznacza mało fałszywych alarmów.

- Wpływ (Recall): z wszystkich rzeczywistych pozytywów, ile z nich udało się zidentyfikować przez model? Wysoka wydajność oznacza mało pominiętych przypadków.

- F1 score: średniowieczny średni (harmoniczny) między czułością a wydajnością. Służy, gdy potrzebujesz zachować oba aspekty.

- RMSE (Współczynnik Odchylenia Średniego Kwadratowego): dla regresji (przewidywania liczb). Jak daleko są przewidywania średnio?

Który wskaźnik ma największe znaczenie zależy od problemu. Dla wykrywania raka ważniejsza jest czułość: nie chcesz przegapić przypadku. Dla filtracji spamu ważniejsza jest precyzja: nie chcesz usunąć prawdziwego mejla.

Metodyka Oceny i Macierz Zamieszania

Budujesz model do wykrywania nieautoryzowanych transakcji kart kredytowych. Jedynie 0,1% transakcji jest rzeczywiście nieautoryzowanych. Jeśli twój model przewiduje każdą transakcję jako niezwiązane z nadużyciem, jakie jest jego dokładność? Dlaczego dokładność może być złym wskaźnikiem tutaj, & jaki wskaźnik zastąpisz?

Analista Danych vs. Naukowiec Danych vs. Inżynier ML

Trzy Różne Role

Pole danych ma trzy główne ścieżki kariery, a wymagają one różnych umiejętności.


Analista Danych

- Kierunek: odpowiadanie na pytania biznesowe za pomocą istniejących danych

- Narzędzia: SQL, Excel, Tableau, podstawowy Python lub R

- Dziennie: dashboards, raporty, analiza testów A/B, prezentacje dla interesariuszy

- Ścieżka wejściowa: najczęściej dostępna. Wielu analityków zaczyna bez tytułu z nauk informatycznych.


Naukowiec Danych

- Kierunek: budowanie modeli prognozujących i wykrywanie wzorców w złożonych danych

- Narzędzia: Python (pandas, scikit-learn, matplotlib), statystyka, SQL, Jupyter notebooks

- Dziennie: EDA, inżynieria cech, budowanie modeli, eksperymentowanie

- Ścieżka wejściowa: zwykle wymaga tła statystycznego lub kwantytatywnego. Bootcamps i samokształcenie są możliwe.


Inżynier ML

- Kierunek: wdrażanie i skalowanie modeli w systemach produkcyjnych

- Narzędzia: Python, TensorFlow/PyTorch, Docker, platformy chmurowe (AWS/GCP), API

- Dziennie: optymalizacja modeli, infrastruktura węzłów, monitorowanie wdrażanych modeli

- Ścieżka wejściowa: zwykle wymaga silnych umiejętności programowania plus wiedzy na temat ML.


Budowanie Portfolio

Pracodawcy interesują się tym, co możesz zrobić, a nie tym, co studiowałeś. Portfolio 3-5 solidnych projektów na GitHub ma większe znaczenie niż certyfikaty. Dobre projekty wykorzystują rzeczywiste (a nie towarzyskie) zestawy danych, zawierają jasne dokumentacje i pokazują cały łańcuch: od brudnych danych do wydajnych wglądów.

Słupy Karier Danych

Twoje Krok Następny

Gdzie iść stamtąd

Narzędzia codziennego użytku są dostępne za darmo:

- pandas: standardowa biblioteka Pythona do manipulacji danymi

- matplotlib / seaborn: biblioteki do tworzenia wykresów

- scikit-learn: pracownica klasyka uczenia maszynowego

- Jupyter notebooks: interaktywne środowiska do tworzenia kodu, wyjść i notatek

- Kaggle: darmowe zestawy danych, konkursy i społeczność praktyków

Zacznij od jednego rzeczywistego zestawu danych, który Cię zainteresuje. Pobierz je, wyczyszczij, zbadaj i spróbuj odpowiedzieć na pytanie. Ten jeden projekt nauczycie Ci więcej niż jakikolwiek kurs.

Na podstawie tego, co dowiedziałeś się w tej lekcji, który z trzech ról (analista danych, naukowiec danych czy inżynier ML) Cię najbardziej interesuje? Jaką jedno konkretną czynność możesz wykonać w tym tygodniu, aby zacząć budować umiejętności dla tej roli?