10 библиотек Python для автоматического разведочного анализа данных

Разведочный анализ данных (EDA) является важнейшим шагом в разработке модели Data science и исследовании наборов данных. EDA включает в себя изучение, анализ и обобщение фундаментальных характеристик наборов данных для получения представления о внутренней информации, содержащейся в них. Для оптимизации процесса EDA доступны библиотеки Python, которые автоматизируют задачи EDA и генерируют аналитические данные всего несколькими строками кода. Эти библиотеки предлагают такие функциональные возможности, как визуализация данных, сводные отчеты, корреляционный анализ и манипулирование данными. Известные библиотеки Python для автоматизированного EDA:

  1. D-Tale
  2. Pandas-profiling
  3. Sweetviz
  4. Autoviz
  5. dataprep
  6. KLib
  7. dabl
  8. speedML
  9. data tile
  10. Bamboolib
  1. D-Tale
10 библиотек Python для автоматического разведочного анализа данных

D-Tale – это библиотека Python, которая предоставляет интерактивный и удобный интерфейс для визуализации и анализа структур данных Pandas. Она использует Flask в качестве серверной части и React в качестве интерфейса, что упрощает просмотр и изучение фреймов данных Pandas, объектов Series, MultiIndex, DatetimeIndex и RangeIndex. Она легко интегрируется с Jupyter, терминалами Python и ipython.

Для создания отчёта с помощью D-Tale можно использовать одну строку кода. Отчёт содержит общую сводку набора данных, корреляции, графики и тепловые карты, а также выделяет недостающие значения. Диаграммы в отчёте являются интерактивными, позволяя вам исследовать и анализировать данные.

import dtale
import pandas as pd

# Load your dataset into a Pandas DataFrame
df = pd.read_csv('your_dataset.csv')

# Generate a report using D-Tale
dtale.show(df)

При запуске этого кода будет запущен веб-интерфейс D-Tale, отображающий сгенерированный отчёт. Вы можете изучить различные разделы отчёта, такие как сводка, корреляции, графики и тепловые карты. Интерфейс предоставляет интерактивные элементы управления для масштабирования, панорамирования, фильтрации и дальнейшего анализа данных.

D-Tale предоставляет мощный и интуитивно понятный способ выполнения поискового анализа данных в структурах данных Pandas с минимальным количеством кода. Это упрощает рабочий процесс поиска данных и позволяет вам более эффективно получать информацию и принимать решения, основанные на данных.

Примечание: Перед запуском приведённого выше фрагмента кода убедитесь, что вы установили библиотеку D-Tale с помощью pip или conda.

2. Pandas-profiling

10 библиотек Python для автоматического разведочного анализа данных

Pandas-Profiling – это библиотека Python, которая предоставляет всеобъемлющий сводный отчёт о фрейме данных Pandas, предлагая подробную информацию и анализ данных. С помощью всего одной строки кода вы можете сгенерировать отчёт, включающий описательную статистику, проверки качества данных, корреляции, распределения, пропущенные значения и многое другое. Библиотека предназначена для эффективной работы даже с большими наборами данных, генерируя отчёты за считанные секунды.

Чтобы использовать Pandas-Profiling и сгенерировать сводный отчёт для фрейма данных, вам необходимо выполнить следующие действия:

A) Установите библиотеку Pandas-Profiling с помощью pip или conda:

pip install pandas-profiling

Б) Импортируйте необходимые библиотеки:

import pandas as pd
from pandas_profiling import ProfileReport

C) Загрузите свой набор данных в фрейм данных Pandas:

df = pd.read_csv('your_dataset.csv')

D) Сгенерируйте отчёт профиля:

profile = ProfileReport(df)

E) При желании вы можете настроить заголовок отчета:

profile = ProfileReport(df, title='Pandas Profiling Report')

F) Визуализируйте отчёт в виде HTML-файла:

profile.to_file("report.html")

Выполнение приведённого выше кода сгенерирует подробный итоговый отчёт в формате HTML, который можно открыть в веб-браузере. Отчёт будет содержать информацию о структуре набора данных, типах данных, статистических показателях, категориальных переменных, корреляциях, отсутствующих значениях и многом другом.

3. Sweetviz

10 библиотек Python для автоматического разведочного анализа данных

Sweetviz – это библиотека Python с открытым исходным кодом, которая упрощает процесс разведочного анализа данных (EDA), создавая красивые визуализации и сводные отчёты всего несколькими строками кода. Это позволяет вам быстро получить представление о вашем наборе данных, сравнить наборы данных и проанализировать целевые значения.

Чтобы использовать Sweetviz и сгенерировать отчёт для вашего набора данных, выполните следующие действия:

A) Установите библиотеку Sweetviz с помощью pip:

pip install sweetviz

Б) Импортируйте необходимые библиотеки:

import pandas as pd
import sweetviz as sv

C) Загрузите свой набор данных в фрейм данных Pandas:

df = pd.read_csv('your_dataset.csv')

D) Сгенерируйте отчёт EDA:

report = sv.analyze(df)

E) Отобразите отчёт в HTML-приложении:

report.show_html("report.html")

Выполнение приведённого выше кода сгенерирует HTML-отчёт с именем “report.html”, который содержит общую сводку вашего набора данных, включая визуализации, статистические показатели, корреляции и ассоциации между категориальными и числовыми признаками. В отчёте будет представлена информация о структуре набора данных, отсутствующих значениях, распределении переменных и многом другом.

Библиотека Sweetviz призвана сделать EDA быстрее и доступнее за счёт автоматизации создания наглядных визуализаций и сводных отчётов. Используя Sweetviz, вы можете сэкономить время и усилия при ручном создании отдельных визуализаций и сводной статистики, что позволит вам сосредоточиться на анализе шаблонов и взаимосвязей в ваших данных.

4. Autoviz

10 библиотек Python для автоматического разведочного анализа данных

AutoViz – это библиотека Python, предоставляющая возможности автоматической визуализации данных, позволяющая пользователям визуализировать наборы данных любого размера всего одной строкой кода. Программа автоматически генерирует отчёты в различных форматах, включая HTML и Bokeh, и позволяет пользователям взаимодействовать с созданными HTML-отчетами.

from autoviz.AutoViz_Class import AutoViz_Class

# Create an instance of AutoViz_Class
AV = AutoViz_Class()

# Generate visualizations for your dataset
report = AV.AutoViz(
 filename='',
 sep=',',
 depVar='',
 dfte=df,
 header=0,
 verbose=0,
 lowess=False,
 chart_format='html',
 max_rows_analyzed=150000,
 max_cols_analyzed=30
)

В приведённом выше коде обязательно замените 'your_dataset.csv' на путь к файлу вашего набора данных. Метод AutoViz принимает несколько параметров, в том числе filename (имя файла набора данных), sep (разделитель, используемый в наборе данных), depVar (зависимая переменная, если применимо), dfte (Фрейм данных Pandas), header (информация заголовка), verbose (уровень детализации), lowess (использовать ли сглаживание по умолчанию), chart_format (формат вывода, ‘html’ в этом примере), max_rows_analyzed (максимальное количество строк для анализа) и max_cols_analyzed (максимальное количество столбцов для анализа).

Запуск кода автоматически сгенерирует визуализации для вашего набора данных с помощью AutoViz. Результирующий отчёт будет сохранён в виде HTML-файла, который можно открыть в веб-браузере. Отчёт в формате HTML будет содержать интерактивные диаграммы и визуализации, с которыми пользователи смогут взаимодействовать для изучения и анализа данных.

AutoViz упрощает процесс визуализации данных, автоматически выбирая подходящие визуализации на основе характеристик набора данных. Это устраняет необходимость ручного кодирования и настройки отдельных визуализаций, экономя время и усилия.

5. dataprep

10 библиотек Python для автоматического разведочного анализа данных

DataPrep – это библиотека Python с открытым исходным кодом, которая предоставляет функциональные возможности для анализа, подготовки и обработки данных. Она построен поверх Pandas и Dask DataFrame, что делает её легко интегрируемым с другими библиотеками Python.

from dataprep.eda import create_report
from dataprep.datasets import load_dataset

# Load a sample dataset
df = load_dataset('titanic')

# Generate an EDA report
report = create_report(df)

# Show the report
report.show()

В приведённом выше коде мы сначала импортируем функцию create_report из модуля dataprep.eda. Мы также импортируем функцию load_dataset из dataprep.datasets, чтобы загрузить образец набора данных для демонстрационных целей. Вы можете заменить 'titanic' на имя вашего набора данных или указать путь к вашему собственному файлу набора данных.

Затем мы загружаем набор данных с помощью функции load_dataset, которая возвращает фрейм данных Pandas. Затем мы вызываем функцию create_report, передавая фрейм данных в качестве аргумента. Эта функция генерирует отчет о комплексном разведочном анализе данных (EDA) для набора данных.

Наконец, мы используем метод show для отображения сгенерированного отчёта. Отчёт будет содержать различные статистические анализы, визуализации и информацию о наборе данных.

Модуль EDA DataPrep разработан таким образом, чтобы быть быстрым, позволяя вам разобраться в наборе данных за считанные секунды. Он использует оптимизированные вычисления на основе Dask для достижения значительного повышения скорости по сравнению с традиционными инструментами профилирования на основе Pandas. Сгенерированный отчёт предоставляет интерактивные визуализации и статистику, которые помогают вам получить представление о ваших данных.

6. KLIB

10 библиотек Python для автоматического разведочного анализа данных

KLib – это библиотека Python, которая предоставляет возможности автоматического разведочного анализа данных (EDA) и профилирования данных. Она предлагает различные функции и визуализации для быстрого изучения и анализа наборов данных. KLib стремится упростить процесс EDA и сделать его более доступным.

import klib
import pandas as pd

# Load the dataset
df = pd.read_csv('your_dataset.csv')

# Visualize categorical features
klib.cat_plot(df)

# Calculate and visualize correlation matrix
klib.corr_mat(df)

# Visualize correlation heatmap
klib.corr_plot(df)

# Visualize distribution plots for numeric features
klib.dist_plot(df)

# Generate a report on missing values
klib.missingval_plot(df)

В приведённом выше коде мы сначала импортируем библиотеки klib и pandas. Затем мы загружаем ваш набор данных с помощью функции read_csv, заменяя 'your_dataset.csv' на путь или имя файла вашего набора данных.

Далее мы используем различные функции из KLib для выполнения задач EDA. Вот некоторые из них:

  • cat_plot: Эта функция генерирует визуализацию количества и частоты категориальных объектов в наборе данных.
  • corr_mat: Эта функция вычисляет корреляционную матрицу для всех числовых объектов и возвращает её представление в цветовой кодировке.
  • corr_plot: Эта функция генерирует тепловую карту с цветовой кодировкой для корреляций между объектами в наборе данных.
  • dist_plot: Эта функция генерирует графики распределения для всех числовых объектов в наборе данных.
  • missingval_plot: Эта функция генерирует рисунок, содержащий информацию об отсутствующих значениях в наборе данных.

Вы можете настроить фрагмент кода на основе ваших конкретных требований и изучить другие функции, предоставляемые KLib, для выполнения дополнительных анализов и визуализаций.

7. dabl (Data Analysis Baseline Library)

10 библиотек Python для автоматического разведочного анализа данных

Dabl (Data Analysis Baseline Library) – библиотека Python, предназначенная для автоматизации процесса предварительной обработки данных, выбора функций и оценки модели. Она предоставляет высокоуровневый интерфейс для выполнения разведочного анализа данных (EDA) и быстрого построения базовых моделей.

Функция plot() в Dabl используется для создания различных визуализаций. Она предлагает краткий обзор с помощью визуализаций, а не фокусируется на статистических показателях отдельных столбцов.

import dabl
import matplotlib.pyplot as plt

# Load the dataset
data = dabl.datasets.load_boston()

# Plot the target distribution
dabl.plot(data, target_col='target')

# Generate scatterplot
dabl.plot(data, 'RM', 'target', kind='scatter')

# Apply Linear Discriminant Analysis
dabl.plot(data, target_col='target', kind='lda')

plt.show()

В приведённом выше коде мы сначала импортируем библиотеку dabl и модуль matplotlib.pyplot. Затем мы загружаем набор данных с помощью функции load_boston() из модуля dabl.datasets, но вы можете заменить его своим собственным набором данных.

Далее мы используем функцию plot() из Dabl для создания различных визуализаций. Вот некоторые из них:

  • dabl.plot(data, target_col='target'): Это отображает карту целевого распределения, предоставляющую обзор распределения целевой переменной.
  • dabl.plot(data, 'RM', 'target', kind='scatter'): Это генерирует диаграмму рассеяния между функцией ‘RM’ и целевой переменной.
  • dabl.plot(data, target_col='target', kind='lda'): Это применяет линейный дискриминантный анализ (LDA) к набору данных и визуализирует результаты.

Вы можете настроить фрагмент кода на основе вашего конкретного набора данных и требований к визуализации. Dabl предоставляет несколько других вариантов визуализации, и вы можете ознакомиться с ними в официальной документации.

8. SpeedML

10 библиотек Python для автоматического разведочного анализа данных

SpeedML – это библиотека Python, целью которой является ускорение процесса разработки конвейера машинного обучения. Она объединяет часто используемые пакеты ML, такие как Pandas, NumPy, Scikit-learn, XGBoost и Matplotlib. Хотя SpeedML предоставляет функциональные возможности для автоматизированного EDA, она предлагает гораздо больше.

from speedml import Speedml
import numpy as np

# Initialize Speedml with train and test datasets
sml = Speedml('train.csv', 'test.csv', target='Survived', uid='PassengerId')

# Get the shape of the datasets
sml.shape()

# Configure overfit threshold
sml.configure('overfit_threshold', np.sqrt(sml.train.shape[0]) / sml.train.shape[0])

# Perform Exploratory Data Analysis (EDA)
sml.eda()

# Plot correlation matrix
sml.plot.correlate()

# Plot distribution of features
sml.plot.distribute()

# Plot continuous feature
sml.plot.continuous('Fare')

# Handle outliers in a feature
sml.feature.outliers('Fare', upper=98)

# Plot ordinal feature
sml.plot.ordinal('SibSp')

# Perform feature engineering
sml.feature.extract(['Age', 'Name'], kind='title', new_column=True)

# Preprocess the data
sml.preprocess()

# Train a model
sml.model.train()

# Predict using the trained model
sml.model.predict()

# Evaluate the model
sml.model.evaluate()

# Generate submission file
sml.model.submission('submission.csv')

В приведённом выше коде мы сначала импортируем класс Speedml из модуляspeedml. Затем мы инициализируем sml пути к тестовым и тренировочным наборам данных, целевой столбец (‘Survived’) и столбец уникального идентификатора (‘PassengerId’).

Мы выполняем различные операции с помощью SpeedML:

  • sml.shape(): Этот метод отображает форму (количество строк и столбцов) обучающих и тестовых наборов данных.
  • sml.configure('overfit_threshold', np.sqrt(sml.train.shape[0]) / sml.train.shape[0]): Это настраивает порог превышения на основе размера обучающего набора данных.
  • sml.eda(): Это выполняет поисковый анализ данных, включая вменение отсутствующих значений, обнаружение выбросов и разработку функций.
  • sml.plot.correlate(): Здесь строится матрица корреляции объектов.
  • sml.plot.distribute(): Здесь показано распределение функций.
  • sml.plot.continuous('Fare'): Здесь показано распределение функции ‘Fare’.
  • sml.feature.outliers('Fare', upper=98): Это обрабатывает отклонения в функции ‘Fare’.
  • sml.plot.ordinal('SibSp'): Здесь отображается порядковый номер функции ‘SibSp’.
  • sml.feature.extract(['Age', 'Name'], kind='title', new_column=True): При этом выполняется извлечение объекта из объектов “Age” и “Name”, создавая новый столбец.
  • sml.preprocess(): Это предварительная обработка данных, включая обработку пропущенных значений, кодирование категориальных объектов и масштабирование числовых объектов.
  • sml.model.train(): Это обучает модель машинного обучения с использованием предварительно обработанных данных.
  • sml.model.predict(): Это генерирует прогнозы с использованием обученной модели.
  • sml.model.evaluate(): Это оценивает производительность модели.
  • sml.model.submission('submission.csv'): Создаётся файл заявки на участие в конкурсе Kaggle.

9. DataTile (Pandas-summary)

Это расширение функции describe() в Pandas DataFrame. Упоминаются некоторые библиотеки, такие как datatile и dtale, которые предоставляют функциональные возможности для обработки, обобщения и визуализации данных на Python. Однако они не имеют прямого отношения к расширению функции describe().

import pandas as pd

# Create a sample DataFrame
data = {
    'Name': ['John', 'Jane', 'Mike', 'Emily', 'Chris'],
    'Age': [25, 32, 28, 19, 36],
    'Salary': [50000, 75000, 60000, 45000, 80000]
}
df = pd.DataFrame(data)

# Use the describe() function to summarize the DataFrame
summary = df.describe()

# Print the summary
print(summary)

Результат:

 Age Salary
count 5.000000 5.000000
mean 28.000000 62000.000000
std 6.082763 13601.384686
min 19.000000 45000.000000
25%    25.000000  50000.000000
50%    28.000000  60000.000000
75%    32.000000  75000.000000
max 36.000000 80000.000000

10. Bamboolib

10 библиотек Python для автоматического разведочного анализа данных

Bamboolib – это инструмент с низким уровнем кода, предоставляющий графический интерфейс для pandas, популярной библиотеки обработки данных Python. Он позволяет пользователям получать доступ к данным, обрабатывать их, преобразовывать, исследовать, визуализировать и анализировать без необходимости написания сложного кода. С помощью bamboolib вы можете выполнять такие задачи, как загрузка данных из разных источников, очистка и упорядочивание данных, а также создание интерактивных визуализаций.

Чтобы установить bamboolib, вы можете использовать следующий фрагмент кода в Jupyter:

%pip install bamboolib

После установки вы можете импортировать bamboolib и начать его использовать.

import bamboolib as bam

# Create a pandas DataFrame (example)
import pandas as pd
data = {
    'Name': ['John', 'Jane', 'Bob'],
    'Age': [25, 30, 35],
    'City': ['New York', 'London', 'Paris']
}
df = pd.DataFrame(data)

# Open bamboolib GUI for the DataFrame
bam.show(df)

Приведённый выше фрагмент кода демонстрирует простое использование bamboolib. После установки библиотеки вы можете импортировать её и загрузить свои данные в фрейм данных pandas. Затем с помощью bam.show(df) вы можете открыть графический интерфейс bamboolib, который позволяет вам интерактивно исследовать данные и манипулировать ими.

Дальнейшее изучение

10 библиотек Python для автоматического разведочного анализа данных

Заключение

В этой статье мы представляем 10 библиотек Python для автоматического разведочного анализа данных (EDA). Эти библиотеки могут генерировать сводки данных и визуализации всего несколькими строками кода на Python, экономя значительное количество времени. Среди этих библиотек Dataprep является наиболее часто используемой библиотекой EDA, в то время как AutoViz и D-table также являются хорошими вариантами. Если вам требуется индивидуальный анализ, Klib может быть подходящим выбором. Однако SpeedML, хотя и объединяет множество функциональных возможностей, сама по себе может быть не особенно подходящей для анализа EDA. Выбор других библиотек может основываться на личных предпочтениях, поскольку они всё ещё очень полезны.

+1
0
+1
2
+1
0
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *