# Exploratory data analysis [v1]
Гущин Александр, DMIA, осень 2019
[TOC]
---
1. Раскапывать интересности в данных :scream_cat:
2. Уметь их наглядно продемонстрировать :heart_eyes_cat:
---
Данные до хорошего EDA
<!--  -->

---
Данные после хорошего EDA

---
Мир глазами европейцев в 1459 году
<!--  -->

---
Мир глазами европейцев в 1529

---
Мир глазами европейцев в 1794

---
## Цели EDA
Exploratory Data Analysis
1. Лучше понять задачу
1. Найти закономерности
1. Найти выбросы
1. Найти лики и баги в выгрузке
1. Придумать новые гипотезы и фичи
1. Понять, какие модели предпочтительнее
Изучайте предметную область - это интересно и пригодится при решении и других задач.
---
## Способы смотреть на данные
1. Признаки
1. Отдельные признаки
2. Группы признаков
3. Объекты
1. Отдельные объекты
2. Группы объектов
3. Файлы
1. Содержимое файлов
2. Метаданные файлов
**Стоит также помнить о таргете**
---
## Отдельные признаки
Используйте статистики
* среднее
* std
* медиана, перцентили
* многие другие
---
Поясняющий слайд про статистики

---
Используйте важности признаков и параметры моделей
1. model.coef_ (sklearn.linear_model)
1. model.feature_importance_
(sklearn, xgboost, lightgbm)
1. [SHAP](https://github.com/slundberg/shap)
1. [Permutation values](https://eli5.readthedocs.io/en/latest/)
---
Используйте визуализацию
1. Изображая один признак:
* histogram
* kdeplot
* box-plot
1. Сравнивая разные признаки:
* scatterplot
* violinplot
---
Рисовать картинки необязательно
```python
# Dataframe
df.describe()
df.info()
df.dtypes
# Series
df[column].unique()
df[column].value_counts()
```
---

---

---

---
Вопрос: о чем может сказать равномерное распределение признака?
<!-- картинка -->
<!-- ---
Набор примеров
- вайолинплот
- номер признака против его статистики
- номер признака против его важности
- -->
---
## Группы признаков
На что смотреть
- На интересные завимости между признаками
- На группы коррелирующих признаков
- На наличие сортировки признаков
---
Используйте визуализацию
1. Пары признаков
* scatterplot
* 2D-densityplot
3. Большие группы признаков
* correlation matrix
* other F(f1, f2) matrices
Попробуйте упорядочить признаки по-другому и нарисовать матрицу корреляций снова
<!-- ---
Статистика по набору признаков может дать интересный результат (tfidf) -->
---

---

---
Матрица корреляций между признаками

<!-- ---

-->
<!-- ---
пример коррплота
пример матрицы с попарными важностями
пример из шапа?
-->
---
## Группы объектов
На что смотреть
- Есть ли порядок в расположении объектов?
- Связаны ли соседние объекты?
- Связаны ли **какие-нибудь** объекты?
- Связаны ли объекты из трейна и теста?
---

<!-- Картинка номер объекта против значения фичи -->
---

<!-- ---
Можно посмотреть внимательнее на
1. diff разных порядков
2. -->
---
## Метаданные файлов
Примеры данных:
- текстовые документы
- картинки
- байт-код
- и так далее
Объекты лежат в разных файликах на диске.
---
Метаданные файлов:
- название и формат файла
- время создания/изменения
- создавший пользователь
- права на доступ
- какая программа записала файл
- какой девайс был использован
Использовать метаданные не всегда ОК
<!-- --- -->
<!-- Пример с метаданными -->
<!-- ---
https://en.wikipedia.org/wiki/Voynich_manuscript -->
---
Надо помнить, что базовый EDA можно сделать автоматически
- pandas-profiling
https://github.com/pandas-profiling/pandas-profiling
- Titanic example:
https://pandas-profiling.github.io/pandas-profiling/examples/titanic/titanic_report.html
И какие-то EDA всегда можно найти на форумах соревнований
---
## Способы смотреть на данные
1. Признаки
1. Отдельные признаки
2. Группы признаков
3. Объекты
1. Отдельные объекты
2. Группы объектов
3. Файлы
1. Содержимое файлов
2. Метаданные файлов
**Стоит также помнить о таргете**
---
<!-- .slide: data-background="https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/1794_Samuel_Dunn_Wall_Map_of_the_World_in_Hemispheres_-_Geographicus_-_World2-dunn-1794.jpg/1920px-1794_Samuel_Dunn_Wall_Map_of_the_World_in_Hemispheres_-_Geographicus_-_World2-dunn-1794.jpg" -->
<div style="color: #000;">
# EDA
</div>
{"metaMigratedAt":"2023-06-15T00:38:55.324Z","metaMigratedFrom":"YAML","title":"Exploratory data analysis","breaks":true,"description":"View the slide with \"Slide Mode\".","slideOptions":"{\"theme\":\"white\",\"transition\":\"slide\"}","contributors":"[{\"id\":\"e0bc91de-98f7-46f8-a3a9-852912833a93\",\"add\":9803,\"del\":3474}]"}