当前位置:   article > 正文

Python实现BP神经网络预测_bpnn预测python代码

bpnn预测python代码
以下是一个使用Python的Keras库创建一个简单的多层感知器(Multilayer Perceptron, MLP)模型进行回归预测的示例代码。我们将随机生成一些二维数据点,并训练神经网络来拟合这些数据以进行预测。

Python代码如下:

import numpy as np
import matplotlib.pyplot as plt
from keras.models import Sequential
from keras.layers import Dense
from sklearn.model_selection import train_test_split

# 设置随机数种子
np.random.seed(42)

# 随机生成模拟数据
input_dim = 1
output_dim = 1
X = np.random.rand(1000, input_dim)
y = 3 * X ** 2 + 0.5 * np.sin(2 * np.pi * X)  # 假设为某种非线性关系
# 不进行标准化处理,因为此处的数据范围适合神经网络直接处理

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建Sequential模型
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(input_dim,)))
model.add(Dense(32, activation='relu'))
model.add(Dense(output_dim, activation='linear'))

# 编译模型,指定损失函数、优化器及评估指标(这里使用均方误差)
model.compile(loss='mean_squared_error', optimizer='adam')

# 训练模型
history = model.fit(X_train, y_train, epochs=100, batch_size=32, validation_split=0.2)

# 使用模型进行预测
predictions = model.predict(X_test)

# 可视化预测结果与实际值对比
plt.figure(figsize=(10, 6))
plt.scatter(range(1,len(y_test)+1), y_test, color='blue', linewidth=1, label='Actual Values')
plt.plot(range(1,len(y_test)+1), predictions, color='red', linewidth=1, label='Predictions')
plt.xlabel('Input Feature')
plt.ylabel('Output Feature')
plt.legend()
plt.title('Actual vs Predicted Values')
# plt.show()
plt.savefig('plot201.png')  # 保存图形到文件

# 计算并绘制预测误差
error = y_test - predictions
plt.figure(figsize=(10, 6))
plt.hist(error, bins=20, edgecolor='black')
plt.xlabel('Prediction Error')
plt.ylabel('Frequency')
plt.title('Distribution of Prediction Errors')
# plt.show()
plt.savefig('plot202.png')  # 保存图形到文件

# 如果需要计算RMSE作为整体误差指标
from sklearn.metrics import mean_squared_error
rmse = np.sqrt(mean_squared_error(y_test, predictions))
print(f"Root Mean Squared Error (RMSE): {rmse:.2f}")

程序结果如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/358919
推荐阅读
相关标签
  

闽ICP备14008679号