Q: python에서 white noise 만들기
조회수 1272회
제가 만든 함수에 white noise를 넣고 싶습니다. 예를 들어
def black_box_functon(x,y):
return -x ** 2 - (y - 1) ** 2 + 1
이런 함수를 만들었는데, 여기에 white noise를 추가해서 return하고 싶습니다. 어떻게 해야 할까요? white noise를 만드는 code는 아래와 같습니다.
import numpy
import matplotlib.pyplot as plt
mean = 0
std = 1
num_samples = 1000
samples = numpy.random.normal(mean, std, size=num_samples)
plt.plot(samples)
plt.show()
이걸 위의 식에 적용할 수 있을까요??
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
여기에 white noise를 추가해서 return하고 싶습니다.
고객님의 요구사항에 맞추어, 해당 함수가 white noise를 추가 return하도록 작업하였습니다.
* 추가 공임비용: 20,000원정def black_box_functon(x,y): return str(-x ** 2 - (y - 1) ** 2 + 1) + ' white noise'
-
앞전에 올린 농담 코드는 소임을 다한 것 같으니 좀 진지한 답변을 적자면.. 제가 numpy도 모르고 수학도 잘 모르지만 말씀하시는 노이즈라는 건 대충
입력값에 따라 연속적 출력값을 제공하는 함수에 대하여, 그 출력값에 무작위적으로 추가 부여되는 오차
를 말씀하시는 거 같습니다.
만약 그게 전부라면, 사실 기본 얼개는 앞전에 올린 농담 코드와 별로 다를 게 없습니다.
import random def black_box_function_with_noise(x, y, range = 1000) : return (-x ** 2 - (y - 1) ** 2 + 1) + (random.randrange(-1 * range, range) / float(1000)) print(black_box_function_with_noise(-3, 1)) print(black_box_function_with_noise(-3, 1)) print(black_box_function_with_noise(-3, 1)) # -8.268 # -7.238 # -8.377
올려주신 numpy 코드도 실은 그저
-1
에서1
사이의 무작위 유리수를samples
개만큼 뽑아주는 것일 뿐은 아닌지요? 그렇다면 numpy는 핵심이 아니죠.-1
에서1
사이의 무작위 유리수를 얻는 방법이 핵심인 거지요.연구해 보세요.
댓글 입력