import joblib
import numpy as np
import pandas as pd
from tensorflow.python.keras.callbacks import EarlyStopping
from tensorflow.python.keras.models import Model
from tensorflow.python.keras.layers import LSTM, GRU
from tensorflow.python.keras import Input
from sklearn.svm import LinearSVR
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsRegressor
from sklearn.metrics import mean_squared_error
from sklearn.linear_model import LinearRegression, Ridge
from sklearn.ensemble import RandomForestRegressor
from tensorflow.keras.layers import Dense, Activation
from tensorflow.keras.models import Sequential
data = pd.read_excel("PX数据.xlsx")
dfs_dict = {}
for i in range(1, 6):
for j in range(1, 6):
for k in range(1, 6):
x = np.zeros((len(data.index) - 5, 3))
y = np.zeros((len(data.index) - 5, 1))
for l in range(len(data.index) - 5):
x[l, 0] = data.iloc[l + 5 - i, 1]
x[l, 1] = data.iloc[l + 5 - j, 2]
x[l, 2] = data.iloc[l + 5 - k, 3]
y[l, 0] = data.iloc[l + 5, 3]
x = pd.DataFrame(x)
y = pd.DataFrame(y)
dfs_dict[str(i) + str(j) + str(k)] = (x, y)
pd.concat([x, y], axis=1).to_csv("all data/" + str(i) + str(j) + str(k) + ".csv")
mse_array = np.zeros((len(dfs_dict.keys()), 8))
root_path = ""
for i, (k, (x, y)) in enumerate(zip(dfs_dict.keys(), dfs_dict.values())):
ss_x = StandardScaler()
x = pd.DataFrame(ss_x.fit_transform(x))
ss_y = StandardScaler()
y = pd.DataFrame(ss_y.fit_transform(y))
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.1)
knn = KNeighborsRegressor()
knn.fit(x_train, y_train)
y_pred = knn.predict(x_test)
mse = mean_squared_error(y_test, y_pred)
print(mse)
mse_array[i, 0] = mse
joblib.dump(knn, root_path + "knn" + k + ".model")
lr = LinearRegression()
lr.fit(x_train, y_train)
y_pred = lr.predict(x_test)
mse = mean_squared_error(y_test, y_pred)
print(mse)
mse_array[i, 1] = mse
joblib.dump(lr, root_path + "lr" + k + ".model")
ridge = Ridge()
ridge.fit(x_train, y_train)
y_pred = ridge.predict(x_test)
mse = mean_squared_error(y_test, y_pred)
print(mse)
mse_array[i, 2] = mse
joblib.dump(ridge, root_path + "ridge" + k + ".model")
rf = RandomForestRegressor()
rf.fit(x_train, y_train)
y_pred = rf.predict(x_test)
mse = mean_squared_error(y_test, y_pred)
print(mse)
mse_array[i, 3] = mse
joblib.dump(rf, root_path + "rf" + k + ".model")
svm = LinearSVR()
svm.fit(x_train, y_train)
y_pred = svm.predict(x_test)
mse = mean_squared_error(y_test, y_pred)
print(mse)
mse_array[i, 4] = mse
joblib.dump(svm, root_path + "svm" + k + ".model")
es = EarlyStopping(monitor="val_loss", patience=5)
model = Sequential()
model.add(Dense(3, input_dim=3))
model.add(Activation('relu'))
model.add(Dense(8))
model.add(Activation('relu'))
model.add(Dense(8))
model.add(Activation('relu'))
model.add(Dense(1))
model.compile(optimizer='rmsprop', loss='mae', metrics=['mse'])
model.fit(x_train, y_train, epochs=200, batch_size=16, validation_split=0.2, callbacks=[es])
y_pred = model.predict(x_test)
mse = mean_squared_error(y_test, y_pred)
print(mse)
mse_array[i, 5] = mse
model.save(root_path + "bpnn" + k + ".h5")
x_train = np.array(x_train).reshape((x_train.shape[0], 1, x_train.shape[1]))
x_test = np.array(x_test).reshape((x_test.shape[0], 1, x_test.shape[1]))
inp = Input(shape=(1, 3))
x = LSTM(1, input_shape=(1, 3), return_sequences=True)(inp)
x = Dense(8, activation='relu')(x)
x = Dense(8, activation='relu')(x)
output = Dense(1)(x)
model = Model(inp, output)
model.compile(optimizer='rmsprop', loss='mae', metrics=['mse'])
model.fit(x_train, y_train, epochs=200, batch_size=16, validation_split=0.2, callbacks=[es])
y_pred = model.predict(x_test)
y_pred = y_pred.reshape((y_pred.shape[0], y_pred.shape[1]))
mse = mean_squared_error(y_test, y_pred)
print(mse)
mse_array[i, 6] = mse
model.save(root_path + "lstm" + k + ".h5")
inp = Input(shape=(1, 3))
x = GRU(100, input_shape=(1, 3), return_sequences=True)(inp)
x = Dense(8, activation='relu')(x)
x = Dense(8, activation='relu')(x)
output = Dense(1)(x)
model = Model(inp, output)
model.compile(optimizer='rmsprop', loss='mae', metrics=['mse'])
model.fit(x_train, y_train, epochs=200, batch_size=16, validation_split=0.2, callbacks=[es])
y_pred = model.predict(x_test)
y_pred = y_pred.reshape((y_pred.shape[0], y_pred.shape[1]))
mse = mean_squared_error(y_test, y_pred)
print(mse)
mse_array[i, 7] = mse
model.save(root_path + "gru" + k + ".h5")
mse_array = pd.DataFrame(mse_array, index=dfs_dict.keys(),
columns=["KNN", "LinearRegression", "RidgeRegression", "RandomForestRegression",
"SVMRegression", "NormalNeuralNetwork", "LSTM", "GRU"])
mse_array.to_csv("result.csv")
没有合适的资源?快使用搜索试试~ 我知道了~
Python代码 PX化工数据时LSTM GRU 预测5天后的数值 回归随机森林.zip
共131个文件
csv:126个
py:2个
xlsx:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 159 浏览量
2024-03-24
21:35:47
上传
评论
收藏 311KB ZIP 举报
温馨提示
1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 5.作者介绍:某大厂资深算法工程师,从事Matlab算法仿真工作10年;擅长智能优化算法、神经网络预测、信号处理、元胞自动机等多种领域的算法仿真实验,更多仿真源码、数据集定制私信+。
资源推荐
资源详情
资源评论
收起资源包目录
Python代码 PX化工数据时LSTM GRU 预测5天后的数值 回归随机森林.zip (131个子文件)
result.csv 20KB
515.csv 5KB
511.csv 5KB
113.csv 5KB
311.csv 5KB
114.csv 5KB
111.csv 5KB
314.csv 5KB
414.csv 5KB
411.csv 5KB
312.csv 5KB
214.csv 5KB
415.csv 5KB
115.csv 5KB
412.csv 5KB
213.csv 5KB
512.csv 5KB
112.csv 5KB
513.csv 5KB
313.csv 5KB
215.csv 5KB
211.csv 5KB
315.csv 5KB
514.csv 5KB
212.csv 5KB
413.csv 5KB
222.csv 5KB
223.csv 5KB
321.csv 5KB
522.csv 5KB
221.csv 5KB
121.csv 5KB
425.csv 5KB
125.csv 5KB
225.csv 5KB
325.csv 5KB
525.csv 5KB
123.csv 5KB
524.csv 5KB
421.csv 5KB
521.csv 5KB
422.csv 5KB
523.csv 5KB
122.csv 5KB
124.csv 5KB
323.csv 5KB
322.csv 5KB
423.csv 5KB
324.csv 5KB
224.csv 5KB
424.csv 5KB
134.csv 5KB
534.csv 5KB
434.csv 5KB
431.csv 5KB
135.csv 5KB
131.csv 5KB
531.csv 5KB
231.csv 5KB
433.csv 5KB
132.csv 5KB
535.csv 5KB
332.csv 5KB
432.csv 5KB
234.csv 5KB
532.csv 5KB
235.csv 5KB
334.csv 5KB
233.csv 5KB
333.csv 5KB
133.csv 5KB
232.csv 5KB
335.csv 5KB
331.csv 5KB
435.csv 5KB
533.csv 5KB
342.csv 5KB
145.csv 5KB
444.csv 5KB
142.csv 5KB
341.csv 5KB
343.csv 5KB
344.csv 5KB
143.csv 5KB
545.csv 5KB
245.csv 5KB
241.csv 5KB
442.csv 5KB
141.csv 5KB
345.csv 5KB
443.csv 5KB
244.csv 5KB
542.csv 5KB
544.csv 5KB
541.csv 5KB
144.csv 5KB
242.csv 5KB
441.csv 5KB
243.csv 5KB
543.csv 5KB
共 131 条
- 1
- 2
资源评论
Matlab科研辅导帮
- 粉丝: 1w+
- 资源: 7553
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功