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

Это можно сделать двумя способами:

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

2-й способ: построить взаимосвязь между столбцами отсутствующих, непрерывными столбцами, дискретными столбцами и категориальными столбцами. столбцы по отдельности.

Используя первый способ:

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

import seaborn as sns
correlation = data.corr()  
#It calculates the correlation value between each column
sns.heatmap(correlation, xticklabels= correlation.columns, yticklabels= correlation.columns, annot= False)  

Здесь отображаются значения корреляции, рассчитанные на тепловой карте, xticklabels и yticklabels — это список столбцов, которые должны быть нанесены на оси X и Y соответственно, а annot — это аббревиатура аннотации, которая показывает значение корреляции, если установлено значение True.

Вы также можете построить PairPlot, используя этот простой код

sns.pairplot(data)

Проблеск этого, здесь попробуйте сами для лучшего опыта.

Теперь, после построения карты Heatmap и Pairplot, вы можете наблюдать связанные столбцы, а графики для них можно строить отдельно, используя

sns.relplot(x= 'col_name', y= 'col_name', data= data, hue= 'col_name')

Второй способ:

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

Начиная с пропущенных значений набора данных, используя это

data.isnull().sum()    #number of null values in each column

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

feature_na = [features for features in data.columns if data[features].isnull().sum()>1]
#This makes list of columns which contains null values

for feature in feature_na:
 data_temp = data.copy()    
#To not to change our orginal data
 data_temp[feature] = np.where(data_temp[feature].isnull(),1 ,0)
 #Here 1 indicates missing value and 0 indicates not missing value
 data_temp.groupby(feature)['target_col'].median().plot.bar()
 plt.title(feature)
 plt.show()

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

sns.countplot(x= 'Col_name', data= data) #other parameters can also be used which are not specified here

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

features_num = [feature for feature in dataset.columns if dataset[feature].dtypes != 'O']
#The columns which are not of Object type are Numerical column

Существует два типа числовых столбцов:

  1. Дискретные столбцы (содержат конкретные исчисляемые значения, такие как количество компьютеров, количество купленных продуктов)
  2. Непрерывные столбцы (содержит любое измеренное значение в определенном диапазоне, например дневная температура, вес учащихся класса)

Давайте посмотрим на визуализацию дискретных столбцов.

feature_dis =  [feature for feature in feature_num if data[feature].nunique()<25]
#This makes list of Columns containing Discrete columns
#This 25 value can be changed according to dataset
for feature in feature_dis:
    data_temp=data.copy()
    data_temp.groupby(feature)['Target_col'].median().plot.bar()
    #This will group by each column containing Discrete value and Target_col
    plt.xlabel(feature)
    plt.ylabel('Target_col')
    plt.title(feature)
    plt.show()

Этот код поможет вам визуализировать взаимосвязь между Discrete Columns и Target_col.

Для визуализации непрерывных столбцов

features_cont = [feature for feature in features_num if feature not in feature_dis]
#The columns which are not Discrete columns are Continuous columns
#This makes list of Continuous Columns
for feature in continuous_feature:
    data_temp=data.copy()
    data_temp[feature].hist(bins=25) 
    #Continuous columns have continuous values, plot it on histogram
    plt.xlabel(feature)
    plt.ylabel("Count")
    plt.title(feature)
    plt.show()

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

Теперь перейдем к категориальным столбцам набора данных.

Категориальные столбцы — это столбцы, в которых данные разделены на такие группы, как пол, возрастная группа, уровень образования, каста, разделы классов.

Для визуализации категориальных столбцов

feature_cat = [feature for feature in data.columns if data[feature].dtypes=='O']
#The Categorical columns are of Object type
for feature in feature_cat:
    data_temp=data.copy()
    data_temp.groupby(feature)['Target_col'].median().plot().bar()
    #This will group by all Categorical columns with Target_col
    plt.xlabel(feature)
    plt.ylabel('Target_col')
    plt.title(feature)
    plt.show()

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

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