Exploratory Data Analysis

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

EDA-processen

  • Undersök och analysera datamängden
  • Förstå datamängden
  • Visualisera datamängden
  • Karaktärisera / klassificera datamängden

Ett diagram som visar olika komponenter i EDA tillämpat på patientdatamängden för hjärtsjukdom

End-to-End Machine Learning

Förstå våra data

df.head()

  • Visar datasetets första rader
  • Ger en överblick av datats struktur
# Print the first 5 rows
print(heart_disease_df.head())

De 5 första raderna i vår hjärtsjukdoms-DataFrame. Resultatet av att anropa df.head().

df.info()

  • Sammanfattar särdragen
  • Visar icke-null-poster och särdragstyper
# Print out details
print(heart_disease_df.info())

Sammanfattande information om vår hjärtsjukdoms-DataFrame. Resultatet av att anropa df.info().

End-to-End Machine Learning

Klassbalans (och obalans)

df.value_counts()

  • Räknar unika förekomster per klass
  • Klass: binär förekomst av hjärtsjukdom (1/0)
  • Viktig för modellering
# print the class balance
print(heart_disease_df['target'].value_counts(normalize=True))

Klassbalansen för målkolumnen i vår hjärtsjukdoms-DataFrame. Resultatet av att anropa .value_counts() på målkolumnen.

End-to-End Machine Learning

Saknade värden

  • Kan leda till fel
  • Snedvridna, icke-representativa resultat

Använd df.isnull()

  • Kontrollerar om värden är null/tomma/saknas
  • Tillämpas på en kolumn eller flera kolumner

Användning

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

Extremvärden

  • Avvikande värden

    • Mätfel
    • Inmatningsfel
    • Sällsynta händelser
  • Kan snedvrida modellens prestanda

    • Modellen lär sig utifrån extremvärden
    • Fångar inte den generella trenden i data
  • Kan ibland vara användbara:

    • Sällsynta värden
    • Identifiering: använd boxplot eller IQR

En visualisering som visar ett extremvärde.

End-to-End Machine Learning

Visualisera våra data

Visualiseringar visar:

  • Allmänna trender
  • Saknade värden och extremvärden

Andra typer av visualiseringar:

  • Kärntäthetsskattning
  • Empiriska kumulativa fördelningar
  • Bivariata fördelningar
df['age'].plot(kind='hist')
plt.xlabel('Age')
plt.ylabel('Frequency')
plt.show()

En visualisering som visar åldersfördelningen i vår datamängd.

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

Mål med EDA

Förstå data

  • Finns det några mönster?
  • T.ex.: har män högre förekomst av hjärtsjukdom?

Identifiera extremvärden

  • Finns data utanför det acceptabla intervallet?
  • Förekommer felaktiga eller saknade värden?

Formulera hypoteser

  • Vad bör vi förvänta oss av data?

Kontrollera antaganden

  • Stämmer våra förväntningar överens med verkligheten?
End-to-End Machine Learning

Nu kör vi en övning!

End-to-End Machine Learning

Preparing Video For Download...