파이썬에서 데이터에 가우시안 노이즈를 추가해보자.

가우시안 함수 공식

다들 잘 알고 있는 공식 그대로다.

더 궁금하다면 확률 및 통계쪽이나 랜덤데이터를 참고하자.

\[f(x) = \frac{1}{\sigma \sqrt{2 \pi}}e^{ - \frac{1}{2}(\frac{x-\mu}{\sigma})^2 }\]

나는 임의의 센서 데이터값에 가우시안 노이즈를 섞으려고 한다.

보통 평균(mean)이 0이고 표준편차(standard deviation)를 조절하면서 섞는다.

이를 다른 말로 Zero-mean Gaussian 이라고 부르기도 한다.

사용법

import numpy as np

p1 = np.random.normal(0, 2.0)
p2 = np.random.normal(0, 2.0, size=20000)

위의 코드에서 p1은 평균이 0, 표준편차가 2인 샘플 하나를 얻은 것이다.

마찬가지로 p2는 평균이 0, 표준편차가 2인 샘플 20000개를 얻은 것이다.

따라서 이를 센서 데이터에 적절하게 섞어주면 된다.

만약 가우시안 분포가 진짜 맞는지 확인하고 싶을때

아래 패키지를 먼저 다운로드 한다.

$ pip3 install seaborn


아래 코드로 생성한 분포를 그래프로 바로 그려볼 수 있다.

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

p = np.random.normal(0, 2.0, size=20000)
sns.displot(p, kind="kde")
plt.show()

결과

Reference

Leave a comment