kernel regression python代码
时间: 2023-10-21 11:13:08 浏览: 164
以下是Python中的一个示例代码,演示了如何使用核回归来拟合数据。
```python
import numpy as np
import matplotlib.pyplot as plt
def kernel_regression(x, y, h):
n = len(x)
y_pred = np.zeros(n)
for i in range(n):
weights = np.exp(-(x - x[i])**2 / (2 * h**2))
weights /= np.sum(weights)
y_pred[i] = np.dot(weights, y)
return y_pred
# 生成一些示例数据
np.random.seed(0)
x = np.linspace(0, 1, 100)
y = np.sin(2*np.pi*x) + np.random.normal(scale=0.1, size=100)
# 进行核回归拟合
h = 0.1
y_pred = kernel_regression(x, y, h)
# 可视化结果
plt.scatter(x, y, label='data')
plt.plot(x, y_pred, color='red', label='kernel regression')
plt.legend()
plt.show()
```
这段代码生成了一些带有噪声的正弦数据,并使用核回归拟合它们。拟合结果如下图所示:
![kernel_regression](https://img-blog.csdn.net/20180412205650924?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3Nkbl9haWJfYmxhY2s=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)
阅读全文