Сколько раз вы сбивались с толку в части анализа данных для новичков? Я уверен, что много раз сталкивался с таким же. Итак, в этом посте я расскажу вам, как выполнять исследовательский анализ данных (EDA) с помощью Python.

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

Почему анализ данных?

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

Здесь важно помнить следующее:

Анализ никогда не проводится по одному или двум параметрам. Есть много других параметров, может быть 30, 40, 50 или любое число.

Начнем с аналитической части. EDA - это первый шаг. EDA помогает:

  1. Сделайте выводы из данных.
  2. Чтобы понять, как параметры данных взаимосвязаны.
  3. Для извлечения важных параметров и игнорирования тех, которых нет.
  4. Найдите взаимосвязь между этими параметрами.
  5. Постарайтесь сделать вывод

Давайте запачкаем руки данными

Я буду использовать данные, предоставленные Данные Всемирного банка (Показатели науки и технологий). Этот набор данных касается всех стран мира. Итак, я сужу данные до Индии, чтобы получить легкое понимание. Вы можете скачать его отсюда: Dataset (Индия)

1. Импорт пакетов

  • Здесь мы будем работать с pandas, numpy, seaborn и matplotlib для анализа и визуализации данных.
  • Мы написали % matplotlib inline для построения графиков в записной книжке.
#import packages
import pandas as pd
import numpy as np
import seaborn as sns
#To plot within notebook
import matplotlib.pylot as plt
%matplotlib inline

2. Загрузка набора данных и обзор данных

  • Включите путь к файлу в read_csv, и df.head () напечатает первые 5 строк набора данных.
  • Я использую Google Collaboratory, поэтому в качестве пути к файлу мы запишем ‘/content/India.csv’.
df = pd.read_csv('/content/India.csv')
df.head()

  • Чтобы получить форму даты, то есть количество строк и столбцов, мы будем использовать df.shape
df.shape

  • Чтобы получить имена столбцов, мы будем писать df.columns.values
df.columns.values

  • Чтобы узнать, что все столбцы он содержит, каких типов и содержат ли они какое-либо значение в нем или нет, с помощью функции info ().
df.info()

3. Статистические значения

  • Метод description () даст нам статистические значения для всех столбцов по отдельности.
  • Мы можем узнать среднее значение, стандартное отклонение, квартили, минимум, максимум и т. Д.
df.describe()

  • Из приведенных выше данных можно сделать вывод, что среднее значение первых пяти столбцов больше или равно среднему значению (50%).
  • Между 75% и максимальным значением столбцов существует относительно большая разница.
  • Приведенные выше два наблюдения указывают на то, что в нашем наборе данных есть отклонения.

4. График парного графика

  • sns.pairplot используется для просмотра всех графиков со всеми столбцами. Так что мы можем получить приблизительное представление о том, как один столбец связан с другим.

EDA в одной строке кода: sns.pairplot (df)

g = sns.pairplot(df)
g.fig.set_size_inches(20,20)

5. Матрица взаимоотношений

  • Матрица соотношения обычно используется для линейной регрессии, потому что она дает симметричную матрицу.
  • Мы использовали annot = True для получения значений.
  • Значения, близкие к 1, показывают положительную взаимосвязь, значения, близкие к -1, показывают отрицательную взаимосвязь, а 0 - нейтральную взаимосвязь.
  • Абсолютный 1 указывает на полностью положительную связь, а -1 показывает, что связи не существует.
  • Недостаток матрицы взаимосвязи: она не покажет нам столбцы с нелинейной взаимосвязью.
dataset = df.corr()
dataset = pd.DataFrame(dataset)
dataset
plt.figure(figsize=(10, 5))
sns.set_style('whitegrid')
sns.heatmap(dataset, robust=True, annot=True)

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

6. Матрица PPS

  • PPS расшифровывается как Predictive Power Score.
  • Чтобы преодолеть недостаток матрицы взаимосвязи, мы будем использовать матрицу PPS.
  • Эта матрица также позволит нам узнать о нелинейных отношениях между переменными. Следовательно, это даст нам асимметричную матрицу.
  • Полученные значения будут интерпретироваться так же, как Матрица отношений.
pip install ppscore
import ppscore as pps
sns.set_style('whitegrid')
plt.figure(figsize=(10, 5))
matrix_df = pps.matrix(df).pivot(columns='x', index='y', values='ppscore')
sns.heatmap(matrix_df, annot=True, cmap='Blues'

  • Чтобы получить значение PPS для конкретной функции, мы напишем следующую строку кода:
pps.predictors(df, "Inflation, average consumer prices")

На этом аналитическая часть завершается. В разделе Исследовательский анализ данных с помощью Python (часть 2) мы увидим, как визуализировать данные.

Я хотел бы закончить пост цитатой:

Данные - это то, что вам нужно для аналитики, информация - это то, что вам нужно для ведения бизнеса.

- Джон Оуэн