Введение
В этом практическом занятии исследуются различные нормализации для многомерного нормального распределения с использованием 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 для визуализации многомерного нормального распределения.