Розвідковий аналіз даних

End-to-End Machine Learning

Joshua Stapleton

Machine Learning Engineer

Процес EDA

  • Дослідіть і проаналізуйте набір даних
  • Зрозумійте набір даних
  • Візуалізуйте набір даних
  • Охарактеризуйте / класифікуйте набір даних

Схема з компонентами EDA, застосованими до набору даних про серцеві захворювання пацієнтів

End-to-End Machine Learning

Розуміння наших даних

df.head()

  • Показує перші рядки набору даних
  • Дає уявлення про структуру даних
# Print the first 5 rows
print(heart_disease_df.head())

Перші 5 рядків нашого датафрейму про серцеві захворювання. Результат виклику операції df.head().

df.info()

  • Підсумовує ознаки
  • Показує ненульові значення та типи ознак
# Print out details
print(heart_disease_df.info())

Зведена інформація про наш датафрейм із серцевими захворюваннями. Результат виклику операції df.info().

End-to-End Machine Learning

(Не)збалансованість класів

df.value_counts()

  • Рахує кількість унікальних входжень кожного класу
  • Клас: бінарна наявність серцевої хвороби (1/0)
  • Важливо для моделювання
# print the class balance
print(heart_disease_df['target'].value_counts(normalize=True))

Баланс класів у стовпці target нашого датафрейму про серцеві захворювання. Результат виклику .value_counts() для стовпця target.

End-to-End Machine Learning

Пропущені значення

  • Може спричиняти помилки
  • Непредставницькі, упереджені результати

Використовуйте df.isnull()

  • Перевіряє null/порожні/пропущені значення
  • Застосовується до стовпця або їх набору

Використання

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

Викиди

  • Аномальні значення

    • Помилки вимірювання
    • Помилки введення даних
    • Рідкісні події
  • Можуть викривляти роботу моделі

    • Модель навчається на екстремальних значеннях
    • Не відображає загальну тенденцію
  • Іноді корисні:

    • Рідкісні значення
    • Виявлення: boxplot або IQR

Візуалізація, що показує викид.

End-to-End Machine Learning

Візуалізація даних

Візуалізації показують:

  • Загальні тенденції
  • Пропуски та викиди

Інші типи візуалізацій:

  • Оцінка ядерної густини
  • Емпіричні кумулятивні розподіли
  • Двовимірні розподіли
df['age'].plot(kind='hist')
plt.xlabel('Age')
plt.ylabel('Frequency')
plt.show()

Візуалізація розподілу віку в нашому наборі даних.

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

Цілі EDA

Зрозумійте дані

  • Чи є закономірності?
  • Напр.: чи мають чоловіки вищий рівень серцевих хвороб?

Виявляйте викиди

  • Чи виходять якісь дані за припустимі межі?
  • Чи є неправильні або пропущені значення?

Формулюйте гіпотези

  • Чого очікувати від даних?

Перевіряйте припущення

  • Чи збігаються очікування з реальністю?
End-to-End Machine Learning

Давайте потренуємось!

End-to-End Machine Learning

Preparing Video For Download...