DevGang
Авторизоваться

5 мощных библиотек Python для EDA

Очень важно обеспечить хорошее качество данных перед запуском моделей машинного обучения. Если мы введем некачественные данные в эти модели, это может привести к неожиданным или непреднамеренным последствиям. Однако проведение подготовительной работы с данными и попытка понять, что у вас есть, а чего нет, отнимают очень много времени. Часто этот процесс может занимать до 90% времени, доступного для проектов.

Если вы выполняете исследовательский анализ данных (EDA) в Python, вам будут известны такие распространенные библиотеки, как pandas, matplotlib и seaborn. Все это отличные библиотеки, но у каждой есть свои нюансы, на изучение или запоминание которых может потребоваться время.

В последние годы появилось несколько мощных библиотек python с низким уровнем кода, которые значительно ускоряют и упрощают этап исследования данных и анализа проектов.

В этой статье мы познакомим вас с 5 из этих библиотек python, которые улучшат ваш рабочий процесс анализа данных. Все это может быть запущено в среде Jupyter notebook.

1. YData Profiling (Ранее Pandas Profiling)

Библиотека YData Profiling, ранее известная как Pandas Profiling, позволяет создавать подробные отчеты на основе фрейма данных pandas. Он очень прост в навигации и предоставляет информацию об отдельных переменных, анализе отсутствующих данных, корреляции данных и взаимодействиях.

Одна небольшая проблема с YData Profiling заключается в возможности обработки больших наборов данных, что может замедлить создание отчетов.

Как использовать библиотеку YData Profiling

YData Profiling можно установить через терминал с помощью pip:

pip install ydata-profiling

После того, как библиотека будет установлена в вашей среде Python, мы можем просто импортировать модуль ProfileReport из библиотеки вместе с pandas. Pandas используется для загрузки наших данных из файла CSV или другого формата.

import pandas as pd
from ydata_profiling import ProfileReport

df = pd.read_csv('Data/Xeek_Well_15-9-15.csv')
ProfileReport(df)

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

Время, необходимое для создания отчета, будет зависеть от размера вашего набора данных. Чем больше набор данных, тем больше времени потребуется для его создания.

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

Отчет Ydata Profile для выбранного набора данных.
Отчет Ydata Profile для выбранного набора данных.

Мы можем изучить каждую переменную в наборе данных и просмотреть информацию о полноте данных, статистике и типах данных.

Просмотр ключевой статистики числовых переменных в наборе данных.
Просмотр ключевой статистики числовых переменных в наборе данных.

Мы также можем создавать визуализации полноты данных. Это позволяет нам понять, какие данные отсутствуют и как отсутствие связано между различными переменными.

Выявление отсутствующих значений с помощью различных представлений с использованием отчета YData Profiling.
Выявление отсутствующих значений с помощью различных представлений с использованием отчета YData Profiling.

2. D-Tale

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

Если вы хотите попробовать библиотеку перед ее загрузкой, авторы библиотеки предоставили живой пример.

Как использовать D-Tale

D-Tale можно установить через терминал с помощью pip:

pip install dtale

Затем его можно импортировать вместе с pandas, как показано ниже. Как только данные будут прочитаны pandas, результирующий кадр данных может быть передан в dtale.show().

import pandas as pd
import dtale

df = pd.read_csv('Data/Xeek_Well_15-9-15.csv')

dtale.show(df)

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

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

Когда мы изучаем отдельные переменные, такие как столбец DTC в этом наборе данных, мы можем визуализировать его распределение с помощью гистограмм:

Интерактивная гистограмма в модуле описания D-Tale.
Интерактивная гистограмма в модуле описания D-Tale.

И посмотреть, как эти данные распределяются между категориальной переменной:

Легко визуализируйте данные по таким категориям, как литология или геологическая формация.
Легко визуализируйте данные по таким категориям, как литология или геологическая формация.

3. SweetViz

SweetViz — еще одна интерактивная библиотека визуализации и исследования данных с низким кодом. Из пары строк кода мы можем создать интерактивный HTML-файл для изучения наших данных.

Как использовать SweetViz

Sweetviz можно установить через терминал с помощью pip:

pip install sweetviz

После того, как он будет установлен, мы можем импортировать его в нашу записную книжку и загрузить наши данные с помощью pandas.

import sweetviz as sv
import pandas as pd

df = pd.read_csv('Data/Xeek_Well_15-9-15.csv')

Затем нам нужно вызвать еще две строки кода, чтобы иметь возможность получить наш отчет:

report = sv.analyze(df)
report.show_html()

Затем откроется новая вкладка браузера со следующей настройкой.

SweetViz — быстрая и мощная библиотека EDA Python.
SweetViz — быстрая и мощная библиотека EDA Python.

После открытия вкладки браузера вы можете просмотреть каждую из переменных во фрейме данных и просмотреть ключевую статистику и полноту каждой переменной. Когда вы нажимаете на любую из переменных, она открывает гистограммы распределения данных, если это числовые данные, или количество значений, если это категориальные данные.

Кроме того, он покажет числовое отношение этой переменной к другим переменным в наборе данных.

Если вы хотите увидеть это визуально, вы можете нажать кнопку «Associations» в верхней части панели инструментов, чтобы открыть графический график корреляции. На изображении ниже мы видим смесь квадратов и кружков, которые представляют категориальные переменные и числовые переменные соответственно.

Размер квадрата/круга представляет силу связи, а цвет представляет значение коэффициента корреляции Пирсона. Это должно быть одна из лучших визуализаций взаимосвязей между переменными в Python.

Ассоциации между переменными, сгенерированные с помощью SweetViz.
Ассоциации между переменными, сгенерированные с помощью SweetViz.

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

4. Missingno

Если вы заинтересованы в использовании облегченной библиотеки для изучения полноты ваших данных, то Missingno — это то, что вам обязательно следует рассмотреть для своего набора инструментов EDA.

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

Как использовать MissingNo

Missingno можно установить через терминал с помощью pip:

pip install missingno

После установки библиотеки мы можем импортировать ее вместе с pandas и загрузить наши данные в фреймворк данных.

import pandas as pd
import missingno as msno
df = pd.read_csv('xeek_train_subset.csv')

Затем мы можем вызвать желаемый сюжет из доступных:

msno.bar(df)
msno.matrix(df)
msno.denrogram(df)
msno.heatmap(df)
Четыре основных сюжета в missingno библиотеке.
Четыре основных сюжета в missingno библиотеке.

Приведенные выше четыре графика дают нам представление о:

  • Насколько заполнен каждый столбец в кадре данных — msno.bar()
  • Где возникают отсутствующие данные — msno.matrix()
  • Насколько коррелированы пропущенные значения — msno.heatmap() и msno.dendrogram()

Хорошая вещь в этой библиотеке заключается в том, что графики четкие, простые для понимания и могут быть быстро включены в отчет в том виде, в котором они есть.

5. Sketch

Sketch — это очень новая (по состоянию на февраль 2023 года) библиотека, которая использует возможности ИИ, чтобы помочь вам понять ваши dataframes pandas, используя вопросы на естественном языке непосредственно в Jupyter. Вы также можете использовать его для создания примера кода, например, как построить график x и y в dataframes, а затем использовать этот код для создания необходимого графика.

Библиотека в основном автономна, где она использует алгоритмы машинного обучения, чтобы понять контекст вашего вопроса по отношению к вашему набору данных. Есть функция, которая опирается на API OpenAI, но это не умаляет возможности использования библиотеки.

У Sketch есть большой потенциал, чтобы быть мощным, особенно если вы хотите предоставить интерфейс для клиентов с очень ограниченными знаниями в области кодирования на Python.

Как использовать Sketch

Sketch можно установить через терминал с помощью pip:

pip install sketch

Затем мы импортируем pandas и sketch в нашу записную книжку, а затем загружаем данные из нашего CSV-файла.

import sketch
import pandas as pd

df = pd.read_csv('Data/Xeek_Well_15-9-15.csv')

После импорта sketch для нашего фрейма данных будут доступны три новых метода.

Первый — это метод .ask, который позволяет вам задавать вопросы — используя естественный язык — о содержимом фрейма данных.

df.sketch.ask('What are the max values of each numerical column?')

Это возвращает следующую строку с максимальными значениями каждого из числовых столбцов в dataframe.

Ответ от Sketch на запрос вернуть максимальные значения каждого столбца.
Ответ от Sketch на запрос вернуть максимальные значения каждого столбца.

Мы также можем спросить его, насколько полным является фрейм данных:

df.sketch.ask('How complete is the data?')

И он вернет следующий ответ в человеческом письменном виде, а не в виде таблиц или графиков.

Ответ от sketch на вопрос о полноте фрейма данных.
Ответ от sketch на вопрос о полноте фрейма данных.

Очень впечатляюще. Но это еще не все.

Мы даже можем запросить библиотеку о том, как отображать данные, содержащиеся в кадре данных, с помощью .sketch.howto().

df.sketch.howto("""How do I plot RHOB against DEPTH_MD 
                using a line plot and have the line coloured in red?""")

И он вернет фрагмент кода, как это сделать:

Возвращенный фрагмент кода из функции sketch.howto.
Возвращенный фрагмент кода из функции sketch.howto.

Который при запуске вернет следующий сюжет:

График, сгенерированный из кода, возвращенного библиотекой Sketch Python.
График, сгенерированный из кода, возвращенного библиотекой Sketch Python.

Третий вариант, доступный в Sketch, — это метод .apply, для запуска которого требуется API OpenAI. Эта функция удобна, когда мы хотим создать новые функции из существующих или сгенерировать новые.

Итоги

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

Мы рекомендуем вам проверить эти библиотеки и изучить их возможности. Вы никогда не знаете, вы можете просто найти свою новую любимую библиотеку Python.

#Python #Data Science
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу