Deep Learning & Machine Learning/강좌&예제 코드
미분으로 곡선의 노이즈 양 측정하는 파이썬 예제코드
webnautes
2023. 10. 18. 22:18
반응형
미분을 사용하여 사인 곡선과 노이즈 추가한 사인 곡선의 노이즈 양을 측정하는 파이썬 코드입니다.
2023. 6. 17 최초작성
import numpy as np import matplotlib.pyplot as plt np.random.seed(0) x = np.linspace(0, 10, 100) y = np.sin(x) noise_y = np.sin(x) + np.random.normal(0, 0.3, size=x.size) # 미분 값 계산 dy = np.gradient(y, x) noise_dy = np.gradient(noise_y, x) # 노이즈 체크 (값의 절대값의 평균) noise_check_y = np.mean(np.abs(y)) noise_check_noise_y = np.mean(np.abs(noise_y)) noise_check_dy = np.mean(np.abs(dy)) noise_check_noise_dy = np.mean(np.abs(noise_dy)) print(f"Noise check value: (x,y) {noise_check_y} (x,noise_y) {noise_check_noise_y}") print(f"Noise check value: (x,dy) {noise_check_dy} (x,noise_dy) {noise_check_noise_dy}") fig, (ax1, ax2, ax3, ax4) = plt.subplots(4, sharex=True) ax1.plot(x, y) ax1.set_title('x,y') ax2.plot(x, dy) ax2.set_title('x,dy') ax3.plot(x, noise_y) ax3.set_title('x,noise_y') ax4.plot(x, noise_dy) ax4.set_title('x,noise_dy') plt.tight_layout() plt.show() |
실행해보면 미분값에 대한 절대값의 평균의 경우 두 곡선 사이에 값 차이가 있는 것을 볼 수 있습니다.
Noise check value: (x,y) 0.6126037223766473 (x,noise_y) 0.6926406558667183
Noise check value: (x,dy) 0.6563262517704687 (x,noise_dy) 1.7194572843281686
반응형