Визуализация в нескольких измерениях

Введение в визуализацию данных с Julia

Gustavo Vieira Suñe

Data Analyst

Зачем нужны дополнительные измерения?

  • Выявление скрытых закономерностей и трендов
  • Анализ связей между несколькими переменными одновременно
  • Обнаружение кластеров
  • Наглядное и информативное представление данных
  • Конструирование признаков
Введение в визуализацию данных с Julia

Устойчивость кластеров

Диаграмма рассеяния: страховая премия в зависимости от возраста застрахованных. На графике видны три отдельных кластера.

  • Сохраняются ли эти кластеры при любом количестве детей?
Введение в визуализацию данных с Julia

Срез данных на графике

theme(:bright)

# Filter data
no_children = filter(
    row -> row.Children == 0, insurance)

# Plot a slice @df no_children scatter( :Age, :Charges, group=:Smoker, markersize=4, alpha=0.5, legend_title="Smoker") xlabel!("Age") ylabel!("Insurance Premium (USD)")

Диаграмма рассеяния: страховая премия в зависимости от возраста застрахованных без детей. На графике видны три отдельных кластера.

Введение в визуализацию данных с Julia

Добавление третьего измерения

theme(:bright)
@df insurance scatter(
    # Pass three columns
    :Children,
    :Age,
    :Charges,

group=:Smoker, markersize=4, alpha=0.5, legend_title="Smoker" ) # Axis labels xlabel!("Number of Children") ylabel!("Age") zlabel!("Insurance Premium (USD)")

Трёхмерная диаграмма рассеяния: страховая премия в зависимости от возраста и количества детей у застрахованных. Кластерная структура сохраняется для разного числа детей.

Введение в визуализацию данных с Julia

Порядок осей

theme(:bright)
@df insurance scatter(

# Swap :Age and :Children :Age, :Children, :Charges, group=:Smoker, markersize=4, alpha=0.5, legend_title="Smoker" ) # Axis labels xlabel!("Number of Children") ylabel!("Age") zlabel!("Insurance Premium (USD)")

Введение в визуализацию данных с Julia

Группировка по дополнительной категории

Диаграмма рассеяния: страховые расходы в зависимости от индекса массы тела, точки окрашены по статусу курения.

  • Можно ли сгруппировать данные по статусу курения и полу одновременно?
Введение в визуализацию данных с Julia

Добавление категориального измерения

theme(:vibrant)

@df insurance scatter(
    :BMI,

# Pass categorical column :Sex,
:Charges, group=:Smoker, markersize=2, legend_title="Smoker", color=[:blueviolet :goldenrod1]) xlabel!("BMI") zlabel!("Insurance Premium (USD)")

Трёхмерная диаграмма рассеяния: страховые расходы в зависимости от индекса массы тела и пола, точки окрашены по статусу курения.

Введение в визуализацию данных с Julia

Визуализация плотности точек

Диаграмма рассеяния: страховые расходы в зависимости от индекса массы тела, точки окрашены по статусу курения.

  • Можно ли нагляднее показать плотность точек?
Введение в визуализацию данных с Julia

Двумерные гистограммы

# 2d histogram
@df insurance histogram2d(

:BMI, :Charges,
# Fill color scheme fillcolor=:acton,
# Fill empty bins show_empty_bins=true,
) xlabel!("Age") ylabel!("Insurance Premium (USD)")

Двумерная гистограмма: распределение страховых расходов и индекса массы тела.

Введение в визуализацию данных с Julia

Давайте потренируемся!

Введение в визуализацию данных с Julia

Preparing Video For Download...