利用深度学习模型BiLSTM进行数据预测和分析

  1. 导入必要的库和模块:

```python

import pandas as pd

from sklearn.model_selection import train_test_split

from sklearn.preprocessing import StandardScaler

from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

import matplotlib.pyplot as plt

import numpy as np

import tensorflow as tf

from tensorflow.keras.models import Sequential

from tensorflow.keras.layers import Bidirectional, LSTM, Dense

```

  1. 加载数据并准备训练集和测试集:

```python

data = pd.read_excel('c.xlsx').iloc[0:, 1:]

X, y = data.iloc[:, 0:-1], data.iloc[:, -1]

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, shuffle=False)

```

  1. 缩放特征:

```python

scaler = StandardScaler()

X_train_scaled = scaler.fit_transform(X_train)

X_test_scaled = scaler.transform(X_test)

```

  1. 构建 BiLSTM 模型并进行训练:

```python

model = Sequential()

model.add(Bidirectional(LSTM(units=64, return_sequences=True), input_shape=(X_train_scaled.shape[1], X_train_scaled.shape[2])))

model.add(Dense(1)) # Regression problems typically have output layer with one neuron

model.compile(loss='mean_squared_error', optimizer='adam')

model.fit(X_train_scaled, y_train, epochs=10, batch_size=32)

```

  1. 在测试集上进行预测并评估模型:

```python

y_pred = model.predict(X_test_scaled)

mse = mean_squared_error(y_test, y_pred)

rmse = np.sqrt(mse)

mae = mean_absolute_error(y_test, y_pred)

r2 = r2_score(y_test, y_pred)

print("RMSE:", rmse)

print("MAE:", mae)

print("R²:", r2)

```

  1. 绘制拟合对比曲线图:

```python

plt.figure(figsize=(10, 6))

plt.plot(range(len(y_test)), y_test, color='darkorange', label='Actual')

plt.plot(range(len(y_pred)), y_pred, color='navy', linewidth=2, label='Predicted')

plt.xlabel('Sample Index')

plt.ylabel('Target Variable')

plt.title('BiLSTM Regression Fit Comparison')

plt.legend()

plt.grid(True)

plt.show()

```

相关推荐
Lentou13 小时前
程序调用AI大模型方式(SDK\HTTP\SPRINGAI\LANFCHAIN4J)
人工智能·网络协议·http
yong999013 小时前
基于直方图优化的图像去雾技术MATLAB实现
人工智能·计算机视觉·matlab
熊猫钓鱼>_>13 小时前
GenUI:从“文本对话”到“可操作界面”的范式转移
开发语言·人工智能·agent·sdk·vibecoding·assistant·genui
其实防守也摸鱼13 小时前
部署本地AI大模型--ollma
人工智能·安全·ai·大模型·软件工程·本地大模型
拂晓 AI 编程13 小时前
claude code 加上 PPT Master skill 生成可手改PPT
人工智能·powerpoint
小橙子学AI13 小时前
Rokid AI眼镜皮肤健康检测智能体技术实践
人工智能
QQ6765800813 小时前
智慧工地物料堆积识别 工地钢筋木材图像识别 工地砖块目标检测 建筑物大理石图像识别 建筑物工地材料识别 物料堆积识别10349期
人工智能·目标检测·计算机视觉·工地物料堆积·工地钢筋木材图像识别·工地砖块目标检测·建筑物大理石图像
懂AI的老郑14 小时前
时空智能体技术研究与应用
人工智能
Wild API14 小时前
多模型成本治理怎么落地?从任务分层、日志统计到结构优化的一套实战思路
大数据·网络·人工智能
前端摸鱼匠14 小时前
【AI大模型春招面试题22】层归一化(Layer Norm)与批归一化(Batch Norm)的区别?为何大模型更倾向于使用Layer Norm?
开发语言·人工智能·面试·求职招聘·batch