用jupyter写BP预测多维的股票价格的代码,该代码包括rmse,mae.r2.mape等评价指标和拟合效果图
时间: 2024-04-10 09:27:02 浏览: 162
BP神经网络多输入多输出预测,BP神经网络回归预测 评价指标包括:R2、MAE、MSE、RMSE等,代码质量极高,方便学习和
以下是一个使用Python和Jupyter Notebook编写的BP神经网络预测多维股票价格的代码示例。这个示例包括了RMSE、MAE、R2和MAPE等评价指标,并且还绘制了拟合效果图。
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.neural_network import MLPRegressor
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
# 读取股票数据
data = pd.read_csv("stock_data.csv")
# 提取特征和目标变量
X = data.iloc[:, 1:-1].values
y = data.iloc[:, -1].values
# 划分训练集和测试集
train_size = int(len(data) * 0.8)
X_train, X_test = X[:train_size], X[train_size:]
y_train, y_test = y[:train_size], y[train_size:]
# 创建并训练BP神经网络模型
model = MLPRegressor(hidden_layer_sizes=(100, 50), activation='relu', solver='adam', random_state=0)
model.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = model.predict(X_test)
# 计算评价指标
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
mae = mean_absolute_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
# 计算MAPE指标
mape = np.mean(np.abs((y_test - y_pred) / y_test)) * 100
# 打印评价指标
print("RMSE:", rmse)
print("MAE:", mae)
print("R2:", r2)
print("MAPE:", mape)
# 绘制拟合效果图
plt.plot(y_test, label='actual')
plt.plot(y_pred, label='predicted')
plt.xlabel('Sample')
plt.ylabel('Price')
plt.legend()
plt.show()
```
在这个示例中,我们首先读取了股票数据,并将其分为特征(X)和目标变量(y)。然后,我们使用80%的数据作为训练集,剩余的20%作为测试集。接下来,我们创建了一个具有两个隐藏层的BP神经网络模型,并使用训练集进行训练。然后,我们在测试集上进行预测,并计算了RMSE、MAE、R2和MAPE等评价指标。最后,我们使用Matplotlib绘制了实际和预测的股票价格,并显示了拟合效果图。
请注意,此代码示例仅供参考,实际使用时可能需要根据具体情况进行调整和改进。另外,您需要将股票数据存储在名为"stock_data.csv"的文件中,并根据实际情况修改数据读取和预处理部分的代码。
阅读全文