使用python实现bp神经网络,输出预测的结果和指标mse, R2,收敛曲线
时间: 2024-12-19 13:16:07 浏览: 15
在Python中实现BP神经网络通常会使用深度学习库如TensorFlow或Keras。以下是使用Keras的一个简单示例,展示了如何训练一个模型并计算预测结果、MSE(均方误差)和R²分数:
```python
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt
# 假设我们有一个简单的线性数据集作为例子
np.random.seed(42)
X = np.random.rand(100, 1)
y = 2 + 3 * X + np.random.randn(100, 1)
# 创建一个简单的模型
model = Sequential()
model.add(Dense(10, input_dim=1, activation='relu')) # 输入层和隐藏层
model.add(Dense(1, activation='linear')) # 输出层
# 编译模型
model.compile(loss='mean_squared_error', optimizer='adam')
# 训练模型
history = model.fit(X, y, epochs=200, verbose=0) # 调整epochs数以观察更多迭代后的收敛情况
# 预测
predictions = model.predict(X)
# 计算MSE和R²
mse = mean_squared_error(y, predictions)
r2 = r2_score(y, predictions)
print("Mean Squared Error (MSE):", mse)
print("R² Score:", r2)
# 绘制损失函数收敛曲线
plt.figure(figsize=(8, 6))
plt.plot(history.history['loss'])
plt.title('Model Loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.grid(True)
plt.show()
阅读全文