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

Pandas — это швейцарский армейский нож для создания и преобразования фреймов данных. Однако одним из недостатков pandas является то, что это МАССИВНАЯ библиотека. Пользователи-новички, как правило, ошеломлены, столкнувшись с множеством функций и методов, доступных в pandas. Подождите секунду, неужели нам действительно нужно увязнуть, пытаясь изучить ВСЕ функции панд? Я обещаю вам, что нет. Фактически, в типичном рабочем процессе машинного обучения вы неоднократно будете использовать подмножество функций pandas. В этой статье я расскажу о 10 из этих функций pandas. Это общие функции, которые вы будете использовать почти в каждом проекте данных.

Однако прежде чем мы перейдем к делу, что такое Pandas? Нет, не та панда на обложке (хотя он очень милый). Pandas — это программная библиотека с открытым исходным кодом, созданная Уэсом МакКинни для анализа и преобразования табличных наборов данных. Pandas часто является рабочей лошадкой на критическом этапе жизненного цикла машинного обучения, разработке функций. В процессе разработки функций важно проверить и выполнить необходимые преобразования для каждой функции вашей модели. Этот процесс гарантирует, что когда мы обучаем наш алгоритм на этом чистом наборе данных, каждая функция будет пропорционально способствовать общей предсказательной способности модели. Другими словами, инженерия признаков гарантирует, что мы извлекаем максимальную пользу из каждой соответствующей функции в нашем наборе данных, преобразуя функцию в формат, который алгоритм машинного обучения может легко использовать для получения информации.

Теперь pandas — ОГРОМНАЯ библиотека. А если вы еще этого не сделали, рекомендую ознакомиться с документацией здесь. Это, безусловно, одна из самых тщательных документов, которые вы найдете для фреймворка машинного обучения. Несмотря на то, что она так хорошо документирована, новичков часто сбивает с толку множество функций и методов, которые есть в этой библиотеке. В этом руководстве я покажу вам десять ключевых аспектов Pandas, которые превратят ваши данные из горячего беспорядка в красивый, организованный и проницательный набор данных.

1. Проверьте свои данные

После загрузки вашего набора данных вам следует немедленно выполнить следующую задачу — проверить его. Давайте посмотрим, с чем мы здесь работаем. Три наиболее распространенные функции pandas для этого: head, tail и sample. Давайте посмотрим на это в действии. Для целей этой демонстрации мы будем использовать набор данных от Kaggle, который предоставляет оценки отзывов для более чем 120 000 клиентов. Получить набор данных здесь.

2. Проверьте данные о ваших данных

Проверка строк в вашем наборе данных важна. Также важно получить некоторую информацию о наборе данных в целом, такую ​​как общее количество строк, общее количество столбцов, типы данных и т. д. Чтобы ответить на эти вопросы, мы будем использовать форму pandas. > и info.

3. Проверьте сводную статистику

Если вы работаете с числовыми данными, еще одна простая проверка работоспособности — выяснить, как наши данные характеризуются статистически. К счастью для нас, у панд есть метод, который может легко сделать это за нас всего одной строкой кода, метод describe. Метод описания возвращает для каждой числовой переменной следующее: количество, среднее значение, стандартное отклонение, минимум, максимум и квартили. Поскольку мне не особенно нравится видеть след чисел за каждой цифрой, я обычно цепляю метод round(2) панд после метода описания, чтобы получить результаты с точностью до двух знаков после запятой.

4. Проверьте кардинальность категориальных переменных

Еще одна полезная функция, которую предоставляет нам pandas, — это возможность проверять кардинальность категориальных переменных. Кардинальность может быть определена как количество типов-членов в данном наборе. Чтобы проверить элементы в определенной категориальной переменной, мы будем использовать функцию панд value_counts(). Обычная функция, которую мне нравится связывать с value_counts(), чтобы получить общее количество типов элементов в данной категориальной переменной, — это метод nunique().

5. Проверьте, заполните и/или удалите недостающие данные

Чаще всего мы сталкиваемся с набором данных с отсутствующими значениями (если, конечно, вы не используете набор данных Kaggle, ха-ха). Ладно, шутки в сторону, в большинстве реальных наборов данных будут пропущенные значения, и важно знать: 1) как их проверять, 2) вменять пропущенные значения и 3) отбрасывать пропущенные значения. В Pandas есть три функции, которые выполняют эти задачи, и их очень легко запомнить. Это isna, fillna, dropna, и они используются для проверки, вменения и исключения пропущенных значений соответственно. Вот функции в действии:

6. Выберите определенный тип данных

Часто нам нужно отделить наши числовые переменные от наших категориальных переменных (или любого другого типа данных в этом отношении). Однако, прежде чем мы сможем их разделить, нам нужно иметь возможность выбрать их. Мы можем сделать это с пандами, используя метод select_dtypes. Этот метод позволяет выбирать признаки в соответствии с определенным типом данных. В приведенном ниже примере мы выберем только те признаки, которые являются объектами, то есть категориальными переменными.

7. Преобразование объектов в фиктивные переменные

В этот момент вы можете задаться вопросом, почему я должен выбирать только типы данных объекта сумасшедшая леди? Ага, хорошо, друг мой, ваши вопросы очень вовремя, потому что наша следующая панда перейдет к функции get_dummies(). get_dummies(), как следует из названия, позволяет нам преобразовывать категориальные переменные в 1 и 0. Прежде чем мы сможем обучить нашу модель, нам нужно убедиться, что все наши переменные типа объекта были преобразованы в числовое представление этого. Функция Pandas get_dummies() делает это с легкостью, как показано в примере ниже. Мы также передали параметр drop_first=True, чтобы предотвратить мультиколлинеарность среди фиктивных переменных (также известную как фиктивная ловушка):

8. Создайте сводные таблицы

Сводные таблицы — отличный способ сравнить признаки в большом наборе данных на основе совокупного показателя другого признака (как правило, целевого признака). В этом примере мы используем функцию Pandas groupby, чтобы проиллюстрировать уровень удовлетворенности авиапассажиров на основе их оценки ключевых аспектов полета. groupby сопровождается совокупным показателем, таким как COUNT, MIN, MAX, MEAN и т. д. В приведенном ниже примере я предоставил средний рейтинг удовлетворенности для каждого клиента на основе каждого фактора в соответствии с набором данных. (ВНИМАНИЕ, СПОЙЛЕР: лучшее обслуживание пространства для ног, по-видимому, связано с более высоким уровнем удовлетворенности в полете — неудивительно, верно?)

9. Объедините два набора данных

Часто нам нужно объединить два набора данных вместе. Помните наш предыдущий пример, когда мы преобразовали все категориальные переменные в фиктивные значения? А что, если теперь мы захотим включить эти сконструированные функции обратно в наш исходный набор данных? Ты угадал! В pandas для этого есть функция, которая называется concat. Вот как это работает:

10. Проверьте корреляцию функций

Наконец, что не менее важно, проверка корреляции между функциями чрезвычайно важна по ряду причин. Вот два из них: 1) всегда полезно оценить попарную связь между вашими ключевыми характеристиками и вашими целями; например, увеличивается ли продажа мороженого с повышением температуры? 2) всегда полезно проверять наличие мультиколлинеарности среди ваших признаков, то есть две или более ваших независимых переменных (признаков), объясняющих одно и то же явление, но по-разному (возможно, рассказывая одну и ту же часть истории, но, возможно, используя другую меру). ). Жизненно важно, чтобы мы смягчили это, потому что наличие признаков, которые являются мультиколлинеарными, резко снижает предсказательную силу каждого признака в отдельности. Pandas предоставляет простую функцию для оценки этого, corr(). функция corr() использует коэффициент корреляции Пирсона, где -1 представляет собой полную отрицательную связь (или обратную связь), 0 представляет отсутствие связи, а +1 представляет собой полную положительную связь. Вот функция в действии:

Заключение

Функции и методы pandas, которые мы обсуждали в этом руководстве, являются одними из самых полезных функций, с которыми я столкнулся, работая над своими проектами машинного обучения. Pandas — это рабочая библиотека, и она особенно удобна на этапе разработки функций рабочего процесса машинного обучения. Часто новичков пугает широкий спектр функций и методов, которыми обладает фреймворк pandas. Вот почему очень важно не увязнуть в попытках узнать все, а вместо этого наладить свой личный рабочий процесс, другими словами, найти способ делать то, что делает вас наиболее удобным, эффективным и продуктивным. Однако, если вы только начинаете, не стесняйтесь копировать мой рабочий процесс и применять его по мере необходимости. Если вы нашли это руководство полезным, пожалуйста, хлопните в ладоши и следуйте за мной для будущих руководств, подобных этому. Благословенная любовь!