2017-09-23 3 views
0

그래서 특정 라인 (아마도 2x + 2)을 따르는 100 개의 샘플 데이터 세트를 만들려고한다고 말하십시오. 그리고 내 X 축의 값을 0-1000 범위로 지정합니다. 이렇게하려면 다음을 사용합니다.numpy 배열에 노이즈 추가

X = np.random.random(100,1) * 1000 
Y = (2*X) + 2 
data = np.hstack(X,Y) 

hstack은 해당 x 및 y 값이있는 배열을 제공합니다. 그 부분은 작동합니다. 하지만 데이터 포인트를 2x + 2 라인에서 멀리 떨어 뜨리려면 노이즈를 주입하고 싶다면 ... 알아낼 수없는 것입니다.

예를 들어, Y 배열의 표준 편차를 20으로 지정하겠습니다. y 값에 노이즈를 어떻게 주입합니까?

답변

1

아마도 누락되었지만 추가하려고 시도 했습니까? numpy.random.normal(scale=20,size=100) ~ Y?

Y=numpy.random.normal(2*X+2,20) 

을 작성하여 한 번에 (그리고 배열 크기를 반복하지 않고) 작성할 수도 있습니다.

+0

이 내가 찾던 정확히 영향을 미칠 것으로 보인다. 매우 감사! – MPeal

1

잡음을 시뮬레이트하려면 np.random.randn과 같이 정규 분포 난수 생성기를 사용하십시오.

당신이 뭘 하려는지 이것이다 :

X = np.linspace(0, 1000, 100) 
Y = (2*X) + 2 + 20*np.random.randn(100) 
data = np.hstack((X.reshape(100,1),Y.reshape(100,1))) 

enter image description here