最近在网上和书上看到一些关于对数据加入噪声干扰的方法,感觉写得有些凌乱。这里对我目前见到的一些方法进行整理和改进,如果在以后的学习过程中能遇见更多的方法,再来更新这篇文章。
import numpy as np
import matplotlib.pyplot as plt
#定义目标函数
def func(x, a, b, c):
return a * np.exp(-b * x) + c
#如果上式要使用math.exp,则需要在return语句中进行列表循环,详见文章《Python-math.sin()和numpy.sin()》
#生成x样本点和精确的y样本点
xdata = np.linspace(0, 10, 100)
#a=3, b=2, c=1
y = func(xdata, 3, 2, 1)
#加入噪声的方法1:
error1=0.1
y_noise1 = error1 * np.random.normal(size=xdata.size)
#numpy.random.normal(loc=0.0, scale=1.0, size=None): draw random samples from a normal (Gaussian) distribution.
#生成均值为0,标准差为error1的正态分布(高斯分布)列表,样本点数为size
ydata1 = y + y_noise1
#加入噪声的方法2:
error2=0.2
y_