Menu
CoddyTech

Тепловые карты корреляций

Часть раздела Статистика для машинного обучения путешествия по Machine Learning на Coddy. Урок 32 из 64.

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

Тепловая карта 4 на 4 под названием «Корреляции в кинотеатре» со шкалой цветов от -1 до 1. Билеты и попкорн окрашены вместе в насыщенный красный, temp_c резко отрицательно коррелирует с обоими, а строка с персоналом окрашена бледно

Этот код отображает её:

cinema = pd.DataFrame({
    "tickets": [120, 340, 210, 410, 180, 290, 380, 150],
    "popcorn": [70, 150, 100, 200, 95, 120, 170, 60],
    "temp_c": [24, 12, 15, 9, 20, 19, 11, 22],
    "staff": [6, 5, 8, 7, 5, 6, 6, 8],
})
corr = cinema.corr()
fig, ax = plt.subplots()
im = ax.imshow(corr, cmap="coolwarm", vmin=-1, vmax=1)
fig.colorbar(im)
ax.set_xticks(range(4), corr.columns)
ax.set_yticks(range(4), corr.columns)
ax.set_title("Cinema Correlations")
plt.show()

vmin=-1, vmax=1 задают границы цветовой шкалы: красный — это 1, белый — 0, синий — -1. fig.colorbar(im) добавляет шкалу, а set_xticks(positions, labels) задаёт названия ячеек.

Билеты и попкорн вместе светятся красным; тёплые дни отмечены синим на фоне обоих. Количество сотрудников почти не имеет значения.

challenge icon

Задание

Средне

Умные часы собирали данные в течение 30 дней в файле watch.csv: текстовый столбец weekday и пять числовых столбцов.

  1. Вычисли корреляционную матрицу числовых столбцов.
  2. Изобрази её в виде тепловой карты coolwarm со значениями от -1 до 1 и цветовой шкалой.
  3. Подпиши деления по горизонтали и вертикали именами столбцов, озаглавь график Watch Data и покажи его.

Твоя программа ничего не выводит. Для трёх столбцов другого владельца график выглядит так:

Тепловая карта 3 на 3 с заголовком Watch Data, подписями делений steps, sleep_h и stress и цветовой шкалой от -1 до 1: красная диагональ, sleep_h и stress тёмно-синие, steps и sleep_h светло-красные

Попробуйте сами

import pandas as pd
import matplotlib.pyplot as plt

watch = pd.read_csv("watch.csv")

# Напишите свой код ниже
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Статистика для машинного обучения

Потренируйтесь самостоятельно: Онлайн-компилятор Python