Практическое руководство по визуализации данных

машинное обучение глубокое обучение компьютерное зрение NLP

Автор|Сонер Йылдырым Компилировать|ВКонтакте Источник | К науке о данных

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

В этом посте мы попробуем использовать визуализацию для изучения набора данных об оттоке клиентов:Woohoo.Карта реформирована.com/so барабанит там...

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

Сначала мы импортируем соответствующие библиотеки и считываем набор данных в кадр данных pandas.

import pandas as pd
import numpy as np

import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style='darkgrid')
%matplotlib inline

df = pd.read_csv("/content/Churn_Modelling.csv")

df.head()

Набор данных содержит 10 000 клиентов (т. е. строк) и 14 функций о клиентах банка и их продуктах. Цель здесь — использовать предоставленные функции, чтобы предсказать, будет ли отток клиентов (т. е. выход = 1).

Давайте начнем сcatplotДля начала это классификационный график из библиотеки Seaborn.

sns.catplot(x='Gender', y='Age', data=df, hue='Exited', height=8, aspect=1.2)

Исследование показало: люди в возрасте от 45 до 60 лет чаще увольняются (то есть покидают компанию), чем представители других возрастных групп. Между женщинами и мужчинами нет большой разницы.

hueПараметры используются для дифференциации точек данных на основе категориальных переменных.

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

plt.figure(figsize=(12,8))

plt.title("Estimated Salary vs Balance", fontsize=16)

sns.scatterplot(x='Balance', y='EstimatedSalary', data=df)

Впервые мы используем интерфейс matplotlib.pyplot для создания объекта Figure и установки заголовка. Затем мы использовали Seaborn, чтобы нарисовать фактический график на этом графическом объекте.

Результат исследования: Нет никакой значимой связи или корреляции между предполагаемой заработной платой и балансом. Балансы имеют нормальное распределение (за исключением клиентов с нулевыми балансами).

Следующая визуализация представляет собой диаграмму, показывающую распределение переменной по медиане и квартилям.

plt.figure(figsize=(12,8))

ax = sns.boxplot(x='Geography', y='Age', data=df)

ax.set_xlabel("Country", fontsize=16)
ax.set_ylabel("Age", fontsize=16)

Мы также отрегулировали размер шрифта осей x и y, используя set_xlabel и set_ylabel.

Вот коробка:

Медиана — это точка посередине, когда все точки отсортированы. Q1 (первый или нижний квартиль) — это медиана нижней половины набора данных. Q3 (третий или верхний квартиль) — это медиана верхней половины набора данных.

Таким образом, ящичные диаграммы дают нам представление о распределениях и выбросах. На созданном нами блочном графике вверху много выбросов (обозначенных точками).

Находить: Распределение возрастной переменной смещено вправо. Среднее значение больше медианы из-за выбросов на верхней стороне.

Правую асимметрию можно наблюдать в одномерных распределениях переменных. Давайте создадим distplot для наблюдения за распределением.

plt.figure(figsize=(12,8))

plt.title("Distribution of Age", fontsize=16)

sns.distplot(df['Age'], hist=False)

Правый хвост тяжелее левого. Причина в выбросах, которые мы наблюдаем на диаграмме.

distplot также предоставляет гистограмму по умолчанию, но мы изменили это с помощью параметра hist.

Библиотека Seaborn также предоставляет различные типы парных графиков, которые дают представление о парных отношениях между переменными. Давайте начнем со случайной выборки из набора данных, чтобы сделать график более привлекательным. Исходный набор данных имеет 10000 наблюдений, мы возьмем выборку из 100 наблюдений и 4 признаков.

subset=df[['CreditScore','Age','Balance','EstimatedSalary']].sample(n=100)

g = sns.pairplot(subset, height=2.5)

По диагонали мы видим гистограмму переменных. Другая часть сетки представляет отношения между переменными.

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

Давайте сначала создадим матрицу корреляции некоторых функций, используя функцию corr pandas.

corr_matrix = df[['CreditScore','Age','Tenure','Balance',
'EstimatedSalary','Exited']].corr()

Теперь мы можем построить эту матрицу.

plt.figure(figsize=(12,8))

sns.heatmap(corr_matrix, cmap='Blues_r', annot=True)

Находить: столбцы «Возраст» и «Баланс» положительно коррелируют с оттоком.


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

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

Оригинальная ссылка:к data science.com/ah-practical…

Добро пожаловать на сайт блога Panchuang AI:panchuang.net/

sklearn машинное обучение китайские официальные документы:sklearn123.com/

Добро пожаловать на станцию ​​сводки ресурсов блога Panchuang:docs.panchuang.net/