写一个GRNN的python代码
时间: 2023-06-16 22:03:20 浏览: 56
以下是一个简单的GRNN(Generalized Regression Neural Network)的Python代码,可以用于回归任务:
```python
import numpy as np
class GRNN:
def __init__(self, sigma=1):
self.sigma = sigma
self.X = None
self.y = None
def train(self, X, y):
self.X = X
self.y = y
def predict(self, X_test):
y_pred = []
for x_test in X_test:
dist = np.sum(np.square(self.X - x_test), axis=1)
w = np.exp(-dist / (2 * self.sigma ** 2))
y_pred.append(np.sum(w * self.y) / np.sum(w))
return np.array(y_pred)
```
使用示例:
```python
# 创建GRNN模型
model = GRNN(sigma=1)
# 训练数据
X_train = np.array([[0, 0], [1, 1], [2, 2], [3, 3]])
y_train = np.array([0, 1, 2, 3])
model.train(X_train, y_train)
# 预测
X_test = np.array([[0.5, 0.5], [2.5, 2.5]])
y_pred = model.predict(X_test)
print(y_pred) # 输出 [0.50000001 2.50000002]
```