Eksploracyjna analiza danych

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

Proces EDA

  • Badanie i analiza zbioru danych
  • Zrozumienie zbioru danych
  • Wizualizacja zbioru danych
  • Charakteryzacja / klasyfikacja zbioru danych

Diagram przedstawiający elementy EDA zastosowane do zbioru danych o chorobach serca

End-to-End Machine Learning

Poznawanie danych

df.head()

  • Pokazuje pierwsze wiersze zbioru danych
  • Podgląd struktury danych
# Print the first 5 rows
print(heart_disease_df.head())

Pierwsze 5 wierszy ramki danych o chorobach serca. Wynik wywołania operacji df.head().

df.info()

  • Podsumowanie cech
  • Pokazuje wpisy niepuste i typy cech
# Print out details
print(heart_disease_df.info())

Informacje podsumowujące ramkę danych o chorobach serca. Wynik wywołania operacji df.info().

End-to-End Machine Learning

Balans klas

df.value_counts()

  • Zlicza unikalne wystąpienia każdej klasy
  • Klasa: binarna obecność choroby serca (1/0)
  • Istotne dla modelowania
# print the class balance
print(heart_disease_df['target'].value_counts(normalize=True))

Balans klas kolumny docelowej ramki danych o chorobach serca. Wynik wywołania operacji .value_counts() na kolumnie docelowej.

End-to-End Machine Learning

Brakujące wartości

  • Mogą prowadzić do błędów
  • Niereprezentacyjne, stronnicze wyniki

Użyj df.isnull()

  • Sprawdza wartości null/puste/brakujące
  • Stosowane do kolumny lub zbioru kolumn

Użycie

# check whether all values in a column are null
print(heart_disease_df['oldpeak'].isnull().all())
True
End-to-End Machine Learning

Wartości odstające

  • Wartości anomalne

    • Błędy pomiarowe
    • Błędy wprowadzania danych
    • Rzadkie zdarzenia
  • Mogą zaburzać działanie modelu

    • Model uczy się na wartościach skrajnych
    • Nie oddaje ogólnego trendu
  • Czasem mogą być przydatne:

    • Rzadkie wartości
    • Wykrywanie: wykres pudełkowy lub IQR

Wizualizacja przedstawiająca wartość odstającą.

End-to-End Machine Learning

Wizualizacja danych

Wizualizacje pokazują:

  • Ogólne trendy
  • Brakujące wartości i wartości odstające

Inne typy wizualizacji:

  • Estymacja gęstości jądra
  • Empiryczne dystrybuanty
  • Rozkłady dwuwymiarowe
df['age'].plot(kind='hist')
plt.xlabel('Age')
plt.ylabel('Frequency')
plt.show()

Wizualizacja rozkładu wieku w zbiorze danych.

1 https://seaborn.pydata.org/tutorial/distributions.html, https://app.datacamp.com/learn/courses/intermediate-data-visualization-with-seaborn
End-to-End Machine Learning

Cele EDA

Zrozumienie danych

  • Czy widoczne są wzorce?
  • Np.: czy mężczyźni mają wyższy wskaźnik chorób serca?

Wykrywanie wartości odstających

  • Czy jakieś dane wykraczają poza akceptowalny zakres?
  • Czy są błędne lub brakujące wartości?

Formułowanie hipotez

  • Czego oczekujemy od danych?

Weryfikacja założeń

  • Czy oczekiwania pokrywają się z rzeczywistością?
End-to-End Machine Learning

Czas na ćwiczenia!

End-to-End Machine Learning

Preparing Video For Download...