Визуализации многомерного нормального распределения

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Советы по использованию ВМ

После запуска виртуальной машины кликните в левом верхнем углу, чтобы переключиться на вкладку Ноутбук и приступить к работе с Jupyter Notebook.

Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка выполнения операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

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

Импорт библиотек

В этом шаге вам нужно импортировать необходимые библиотеки: Matplotlib, NumPy и Multivariate_normal из NumPy.random.

import matplotlib.pyplot as plt
import numpy as np
from numpy.random import multivariate_normal

Установка случайного состояния

В этом шаге вам нужно установить случайное состояние для воспроизводимости результатов.

np.random.seed(19680801)

Создание данных

В этом шаге вам нужно создать данные с использованием multivariate_normal(). Эта функция генерирует случайную выборку из многомерного нормального распределения.

data = np.vstack([
    multivariate_normal([10, 10], [[3, 2], [2, 3]], size=100000),
    multivariate_normal([30, 20], [[3, 1], [1, 3]], size=1000)
])

Создание гистограммы

В этом шаге вам нужно создать гистограмму с использованием hist2d(). Функция hist2d() используется для создания двухмерной гистограммы.

plt.hist2d(data[:, 0], data[:, 1], bins=100)

Создание нормализации по степенному закону

В этом шаге вам нужно создать нормализацию по степенному закону с использованием PowerNorm().

plt.hist2d(data[:, 0], data[:, 1], bins=100, norm=mcolors.PowerNorm(gamma))

Создание подграфиков

В этом шаге вам нужно создать подграфики с использованием subplots().

fig, axs = plt.subplots(nrows=2, ncols=2)

Создание линейной нормализации

В этом шаге вам нужно создать линейную нормализацию.

axs[0, 0].hist2d(data[:, 0], data[:, 1], bins=100)

Создание нормализации по степенному закону

В этом шаге вам нужно создать нормализацию по степенному закону с разными значениями gamma.

for ax, gamma in zip(axs.flat[1:], gammas):
    ax.hist2d(data[:, 0], data[:, 1], bins=100, norm=mcolors.PowerNorm(gamma))

Установка заголовка

В этом шаге вам нужно установить заголовок для каждого графика.

axs[0, 0].set_title('Linear normalization')

for ax, gamma in zip(axs.flat[1:], gammas):
    ax.set_title(r'Power law $(\gamma=%1.1f)$' % gamma)

Тщательный макет

В этом шаге вам нужно настроить расстояние между подграфиками.

fig.tight_layout()

Показать график

В этом шаге вам нужно отобразить график с использованием show().

plt.show()

Резюме

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