Сколько раз вы сбивались с толку в части анализа данных для новичков? Я уверен, что много раз сталкивался с таким же. Итак, в этом посте я расскажу вам, как выполнять исследовательский анализ данных (EDA) с помощью Python.
EDA - один из основных этапов анализа данных. Прежде чем вы начнете анализировать, очень важно понять данные. Вы должны быть знакомы с определенной терминологией, относящейся к типу данных, с которыми вы работаете. Например, вы работаете с любыми финансовыми данными, скажем, с акциями, и, следовательно, вы должны быть знакомы с такими терминологиями, как открытие, закрытие, максимум, минимум, объем и т. Д. Хорошо, теперь мы знаем, что понимание данных важно, поэтому приступим к анализу!
Почему анализ данных?
Чтобы делать выводы из данных и знать возможные будущие результаты на основе исторических значений любых данных. Продолжая приведенный выше пример с анализом определенных акций, скажем, я проанализировал эффективность конкретной акции с 2000 по 2020 год. Я найду определенные тенденции на графике ее повседневной стоимости. Если он показывает восходящий тренд (в течение значительного времени), я хотел бы инвестировать в него, в противном случае я проанализирую другие акции.
Здесь важно помнить следующее:
Анализ никогда не проводится по одному или двум параметрам. Есть много других параметров, может быть 30, 40, 50 или любое число.
Начнем с аналитической части. EDA - это первый шаг. EDA помогает:
- Сделайте выводы из данных.
- Чтобы понять, как параметры данных взаимосвязаны.
- Для извлечения важных параметров и игнорирования тех, которых нет.
- Найдите взаимосвязь между этими параметрами.
- Постарайтесь сделать вывод
Давайте запачкаем руки данными
Я буду использовать данные, предоставленные Данные Всемирного банка (Показатели науки и технологий). Этот набор данных касается всех стран мира. Итак, я сужу данные до Индии, чтобы получить легкое понимание. Вы можете скачать его отсюда: 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) мы увидим, как визуализировать данные.
Я хотел бы закончить пост цитатой:
Данные - это то, что вам нужно для аналитики, информация - это то, что вам нужно для ведения бизнеса.
- Джон Оуэн