使用最小二乘法用多项式函数拟合ReLU函数的Python代码实现
时间: 2023-06-13 21:02:05 浏览: 278
最小二乘法-曲线拟合-函数拟合-方程拟合-最小二乘法函数拟合python代码-最小二乘法函数拟合C/C++代码
5星 · 资源好评率100%
以下是使用最小二乘法用多项式函数拟合ReLU函数的 Python 代码实现:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import leastsq
# 定义ReLU函数
def ReLU(x):
return np.maximum(0, x)
# 定义多项式函数
def polyFunc(p, x):
f = np.poly1d(p)
return f(x)
# 定义误差函数
def errorFunc(p, x, y):
return polyFunc(p, x) - y
# 生成数据
x = np.linspace(-10, 10, 100)
y = ReLU(x)
# 定义多项式次数
n = 10
# 初始化多项式系数
p_init = np.random.randn(n+1)
# 使用最小二乘法拟合多项式函数
p_final, success = leastsq(errorFunc, p_init, args=(x, y))
# 绘制原始数据和拟合曲线
plt.plot(x, y, label='ReLU')
plt.plot(x, polyFunc(p_final, x), label='Poly-ReLU')
plt.legend()
plt.show()
```
在上述代码中,我们首先定义了 ReLU 函数和多项式函数 polyFunc。然后,我们生成了一组 ReLU 函数的数据作为拟合的目标。接着,我们定义了多项式的次数 n 和多项式系数的初始值 p_init。最后,我们使用 Scipy 库中的最小二乘法函数 leastsq 来拟合多项式函数,并绘制出原始数据和拟合曲线。
阅读全文