Введение

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

В этом сообщении блога я расскажу о выполнении исследовательского анализа данных в Python с использованием Jupyter Notebook.

Импорт данных

Первый шаг — импортировать данные в блокнот Jupyter. Например, мы будем использовать Numpy, Pandas, Seaborn и другие библиотеки для чтения данных в DataFrame.

Например, если ваши данные находятся в файле CSV, вы можете импортировать их следующим образом:

  import pandas as pd

  df = pd.read_csv("data.csv")

Очистка данных

После импорта данных следующим шагом будет очистка данных. Это включает в себя:

  • Обработка отсутствующих значений
    Мы можем проверить нулевые значения с помощью .isnull() и заполнить их с помощью .fillna()
  • Удаление дубликатов
    Мы можем использовать .drop_duplicates()
  • Преобразование типов данных
    Использование .astype()

Вот ключевые шаги по очистке данных в исследовательском анализе данных:

  1. Обработка пропущенных значений

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

  • Удалить строки с отсутствующими значениями
  • Заполните пропущенные значения средним значением, медианой или модой столбца.
  • Заполните пропущенные значения постоянным значением (например, 0)

Подход, который вы выберете, зависит от характера данных и ваших целей анализа.

  1. Удалить дубликаты

Повторяющиеся строки могут исказить ваш анализ, поэтому важно их выявить и удалить. Вы можете использовать методы pandas .duplicated() и .drop_duplicates().

  1. Проверить наличие выбросов

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

  1. Правильные типы данных

Убедитесь, что все столбцы имеют правильный тип данных (строка, целое число, число с плавающей запятой, логическое значение и т. д.). Возможно, вам потребуется преобразовать некоторые столбцы с помощью .astype().

  1. Исправить несогласованные данные

Ищите несоответствия в данных, такие как варианты написания, разные форматы и т. д., и стандартизируйте данные.

  1. Дисбаланс классов адресов (если применимо)

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

  1. Разработка функций

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

Это основные шаги по очистке ваших данных в рамках процесса исследовательского анализа данных.

Предварительная обработка данных

Затем мы выполняем некоторую предварительную обработку:

  • Переименование столбцов
    с помощью .rename()
  • Изменение порядка столбцов
    Использование .reindex()
  • Удаление ненужных столбцов
  • Кодирование категориальных переменных

Ключевые этапы предварительной обработки данных в исследовательском анализе данных:

  1. Переименуйте столбцы. Дайте своим столбцам осмысленные и согласованные имена, чтобы упростить работу с данными. Используйте .rename() в пандах.

2. Измените порядок столбцов. Расположите столбцы в логическом порядке, чтобы связанные столбцы располагались рядом друг с другом. Используйте .reindex() в пандах.

3. Удалите ненужные столбцы. Удалите все столбцы, не относящиеся к вашему анализу. Используйте .drop() в пандах.

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

5. Нормализуйте/стандартизируйте числовые переменные: если у вас есть числовые признаки в разных масштабах, нормализуйте или стандартизируйте их в одном масштабе. Это помогает предотвратить доминирование функций с большими диапазонами.

6. Вставьте отсутствующие значения: заполните все оставшиеся отсутствующие значения после первоначальной очистки данных. Вы можете использовать вменение среднего значения, медианы или режима.

7. Преобразование асимметричных переменных. Если у вас есть переменные с асимметричным распределением, примените преобразование, например логарифмическое или квадратный корень, чтобы сделать их более нормальными. Это помогает многим моделям работать лучше.

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

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

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

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

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

  • .hist() для гистограмм
  • .plot() для линейных графиков, точечных графиков и т. д.
  • .value_counts() чтобы увидеть количество категориальных переменных
  • .describe() для сводной статистики

Основные приемы визуализации данных при исследовательском анализе данных:

1. Гистограммы. Используйте .hist() в pandas, чтобы получить визуальное представление о распределении числовой переменной. Это может выявить выбросы, асимметрию и другие закономерности.

2. Блочные диаграммы. Используйте .boxplot() в pandas, чтобы визуализировать распределение по квартилям, экстремумам и выбросам для числовой переменной.

3. Диаграммы рассеяния. Используйте .plot(kind=’scatter’), чтобы визуализировать взаимосвязь между двумя числовыми переменными. Это может выявить корреляции, кластеры и выбросы.

4. Гистограммы. Используйте .plot(kind=’bar’) для сравнения категориальных переменных или количества категориальных переменных. Это дает быстрое визуальное резюме.

5. Линейные графики. Используйте .plot(kind=’line’) для визуализации трендов во времени для данных временных рядов.

6. Парные графики. Используйте парный график () для визуализации взаимосвязей между всеми переменными в наборе данных.

7. Тепловые карты корреляции. Используйте тепловую карту Seaborn (), чтобы визуализировать корреляцию между всеми числовыми переменными.

8 . Круговые диаграммы — используйте .plot(kind=’pie’), чтобы визуализировать пропорциональную разбивку категориальной переменной.

9. Облака слов. Создайте облако слов, чтобы визуализировать наиболее распространенные слова в текстовом столбце.

10. Описательная статистика. Используйте .describe() для получения сводной статистики, такой как количество, среднее значение, стандартное отклонение, минимум и максимум для числовых столбцов.

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

Таким образом, мы можем понять все вышеперечисленные пункты «Импорт данных», «Очистка данных», «Предварительная обработка данных», «Визуализация данных» на одном примере:

Демонстрация

Примечание

Если вы хотите быстро настроить и изучить AI/ML & Python Jupyter Notebook Kit, Techlatest.net предлагает готовые настройки для AI/ML & Python Jupyter Notebook Kit на AWS, Azure и GCP. Перейдите по ссылкам ниже, чтобы получить пошаговое руководство по настройке AI/ ML & Python Jupyter Notebook Kitна облачной платформе по вашему выбору.

Для AI/ML KIT: AWS, GCP и Azure.

Почему вы выбираете Techlatest.net VM, AI/ML Kit и Python Jupyter Notebook?

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

Во время выбора ВМ «Мы выбираем экземпляр GPU, перейдя на вкладку GPU и выбрав нужный тип экземпляра GPU. Инстанс с графическим процессором обеспечивает в 10-15 раз более высокую производительность по сравнению с эквивалентным инстансом с ЦП, однако инстансы с графическим процессором будут иметь значительно более высокую стоимость, поэтому выберите правильный тип инстанса в соответствии с вашими требованиями к производительности и бюджету».

Я беру все три примера AWS, GCP и Azure для справки.

После настройки виртуальной машины мы можем войти в Jupyter Hub, поэтому ниже вы можете увидеть пошаговое руководство.

Шаг 1

Эта виртуальная машина поставляется с Ubuntu по умолчанию в качестве администратора. Таким образом, чтобы получить доступ к веб-интерфейсу и установить дополнительные пакеты, войдите в систему с именем пользователя Ubuntu и паролем, который вы установили при первом входе в Jupyter Notebook.

Шаг 2

Откройте терминал в своем Jupyter Notebook и введите приведенную ниже команду, чтобы установить пакет здесь с помощью pip.

sudo -E pip install there

Примечание. Не забудьте использовать sudo в приведенной выше команде.

Шаг 3

Импорт некоторых библиотек.

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt # visualizing data
%matplotlib inline
import seaborn as sns

Шаг 4

Импортируйте данные, если ваши данные находятся в CSV-файле, который вы можете импортировать следующим образом,

# import csv file
df = pd.read_csv('Diwali Sales Data.csv', encoding= 'unicode_escape')

Шаг 5

После импорта данных следующим шагом будет очистка данных.

Шаг 6

Затем мы выполняем некоторую предварительную обработку:

Шаг 7

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

# plotting a bar chart for Gender and it's count

ax = sns.countplot(x = 'Gender',data = df)

for bars in ax.containers:
    ax.bar_label(bars)

# plotting a bar chart for gender vs total amount

sales_gen = df.groupby(['Gender'], as_index=False)['Amount'].sum().sort_values(by='Amount', ascending=False)

sns.barplot(x = 'Gender',y= 'Amount' ,data = sales_gen)

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

Возраст

ax = sns.countplot(data = df, x = 'Age Group', hue = 'Gender')

for bars in ax.containers:
    ax.bar_label(bars)

Заключение

Затем блог представил демонстрацию вышеуказанных шагов с использованием примера набора данных, демонстрируя, как импортировать данные, очищать их, предварительно обрабатывать и визуализировать. Наконец, блог завершился краткой рекомендацией по использованию VM, AI/ML Kit и Python Jupyter Notebook от Techlatest.net для настройки среды разработки AI/ML.

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