다변량 정규 분포 시각화

Beginner

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

소개

이 랩에서는 Python Matplotlib 을 사용하여 다변량 정규 분포에 대한 다양한 정규화를 탐구합니다. 이 랩에서는 선형 정규화, 멱법칙 정규화 (power law normalization) 에 대해 배우고, Matplotlib 을 사용하여 다변량 정규 분포를 시각화하는 방법을 배우게 됩니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접속하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

라이브러리 임포트

이 단계에서는 Matplotlib, NumPy, 그리고 NumPy.random에서 Multivariate_normal과 같은 필요한 라이브러리를 임포트해야 합니다.

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

랜덤 상태 설정

이 단계에서는 재현성을 위해 랜덤 상태 (random state) 를 설정해야 합니다.

np.random.seed(19680801)

데이터 생성

이 단계에서는 multivariate_normal() 함수를 사용하여 데이터를 생성해야 합니다. 이 함수는 다변량 정규 분포 (multivariate normal distribution) 에서 랜덤 샘플을 생성합니다.

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() 함수는 2 차원 히스토그램을 생성하는 데 사용됩니다.

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

Power Law 정규화 생성

이 단계에서는 PowerNorm() 함수를 사용하여 Power Law 정규화를 생성해야 합니다.

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 values) 을 사용하여 멱법칙 정규화를 생성해야 합니다.

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)

타이트 레이아웃 (Tight Layout)

이 단계에서는 서브플롯 간의 간격을 조정해야 합니다.

fig.tight_layout()

플롯 표시

이 단계에서는 show()를 사용하여 플롯을 표시해야 합니다.

plt.show()

요약

이 랩에서는 Python Matplotlib 을 사용하여 다변량 정규 분포에 대한 다양한 정규화를 탐구했습니다. 선형 정규화, 멱법칙 정규화에 대해 배우고, Matplotlib 을 사용하여 다변량 정규 분포를 시각화하는 방법을 익혔습니다.