LSTM回归问题

article/2025/9/26 22:58:22

LSTM 解决回归问题时,出现了 model.predict() 输出的值几乎是常数值的问题,后来发现是因为数据没有标准化(归一化),导致 loss 不下降,也就是不收敛。后来加入了数据的标准化之后,就可以拟合了。

from keras.datasets import mnist
from keras.layers import Dense, LSTM
from keras.utils import to_categorical
from keras.models import Sequential
import keras
from keras.layers.core import Dense, Activation, Dropout
import matplotlib.pyplot as plt
import numpy as np
from sklearn import preprocessing#parameters for LSTM
nb_lstm_outputs = 32  #神经元个数
nb_time_steps = 1  #时间序列长度
nb_input_vector = 16  #输入序列def generate_data(start, num_sample):x_train = np.zeros((1, 16))for i in range(start, num_sample + start):temp_data = np.array([i * 10] * 16)x_train = np.vstack((x_train, temp_data))x_train = x_train[1:]y_train = np.array([i for i in range(start, num_sample + start)])return x_train, y_trainx_train, y_train = generate_data(start = 1, num_sample = 2804)
x_test, y_test = generate_data(start = 3000, num_sample = 100)mean_ = np.mean(x_train, axis=0)
std_ = np.std(x_train, axis=0)x_train = (x_train - mean_) / std_
y_train = (y_train - mean_[0]) / std_[0]
x_test = (x_test - mean_) / std_
y_test = (y_test - mean_[0]) / std_[0]
print("x_train, y_train after normalization \n", x_train, y_train)print(x_train.shape)
print(y_train.shape)
print(x_test.shape)
print(y_test.shape)
#
def build_model():model = Sequential()layers = [1, 50, 100, 1]model.add(LSTM(layers[1], input_shape=(None, layers[0]), return_sequences=True))model.add(Dropout(0.2))model.add(LSTM(layers[2], return_sequences=False))model.add(Dropout(0.2))model.add(Dense(layers[3]))model.add(Activation("linear"))  # 由于在进行线性回归操作,所以激活函数填 linearmodel.compile(loss="mse", optimizer=keras.optimizers.Adam(lr=0.0005), metrics=['mae', 'mape'])return modelmodel = build_model()x_train = x_train.reshape(-1, 16, 1)
x_test = x_test.reshape(-1, 16, 1)
#train: epcoch, batch_size
print(x_train.shape, y_train.shape)model.fit(x_train, y_train, epochs=30, batch_size=128, verbose=1)# model.summary()
score = model.evaluate(x_test, y_test,batch_size=128, verbose=1)
print(score)pred_y = model.predict(x_train, batch_size=128)
print("pred_y", pred_y)# x_train = (x_train ) * std_ + mean_
# y_train = (y_train ) * std_[0] + mean_[0]
# x_test = (x_test ) * std_+ mean_
# y_test = (y_test ) * std_[0] + mean_[0]
# pred_y = (pred_y ) * std_[0] + mean_[0]plt.figure(figsize=(16, 8))
plt.plot(y_train, "red")
plt.scatter([x for x in range(pred_y.shape[0])],pred_y)
plt.legend(["True_label", "pred_label"], fontsize=14)
plt.tight_layout()
plt.savefig("./figures/regression.png")
plt.show()

在这里插入图片描述


http://chatgpt.dhexx.cn/article/lCo3oBTA.shtml

相关文章

数据分析——随机森林解决回归问题

下表为训练数据集,特征向量只有一维,根据此数据表建立回归决策树。 在本数据集中,只有一个特征变量,最优切分变量自然是x。接下来考虑9个切分点{1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5},根据下式计算每个待切分点的损失…

处理回归问题常见的算法

7.处理回归问题常见的算法: 回归属于有监督学习的一种,其从连续的统计数据中的到数学模型,然后使用生成的模型用于预测和分类。线性回归:给定数据集,其中线性回归模型通过对数据集的学习生成一个线性模型,…

深度学习 分类问题与回归问题

分类问题与回归问题 分类与回归 一、分类问题1.1分类性能度量:(1)准确率(accuracy)*(2)精确率(percision)*(3)召回率(recall&#xff…

Python实现---用KNN解决回归问题

KNN用于回归问题 KNN不仅可以用于分类问题,也可以用回归问题。 主要算法思路就是:使用KNN计算某个数据点的预测值时,模型从训练数据集中选择离该数据点最近的k个数据点,并且把这些数据的y值取均值,把求出的这个均值作…

神经网络:DNN回归问题

2020_11_01 DNN Regression 参考资料:《Python深度学习》 Francois Choll 神经网络可以主要解决三大类问题:二分类、多分类、回归。 回归问题特点在于结果是连续值,因此调参过程也与分类问题相异。 在了解DNN回归问题后,我们…

机器学习实战(二)使用LightGBM的回归问题模型搭建

目录 1.导入所用的数据包 2.导入模型建立所需要的数据 3.数据集划分 4.导入训练包与交叉验证包(LGBM) 5.模型训练 6.模型验证及画图 7.画图展示模型验证情况 8.特征重要性分析 数据集链接 S. Thai, H. Thai, B. Uy, T. Ngo, M. Naser, Test Data…

Keras深度学习(4)-回归问题之预测房价

在深度学习的任务中,回归问题也是一个常见的任务。 本文将要预测 20 世纪 70 年代中期波士顿郊区房屋价格的中位数,已知当时郊区的一些数据点,比如犯罪率、当地房产税率等。本节用到的数据集与前面两个例子有一个有趣的区别。它包含的数据点相…

『迷你教程』绝对能看懂的分类问题和回归问题白话版

文章目录 内容介绍函数近似分类预测建模回归预测建模分类与回归在分类和回归问题之间转换 内容介绍 老生常谈的话题分类问题和回归问题之间有一个重要的区别。从根本上说,分类是关于预测标签,回归是关于预测数量。 我经常看到这样的问题: 如…

各类回归问题总结

回归问题的条件/前提: 1) 收集的数据 2) 假设的模型,即一个函数,这个函数里含有未知的参数,通过学习,可以估计出参数。然后利用这个模型去预测/分类新的数据。 1. 线性回归 假设 特征 和 结果…

回归问题的评价指标和重要知识点总结

回归分析为许多机器学习算法提供了坚实的基础。在这篇文章中,我们将总结 10 个重要的回归问题和5个重要的回归问题的评价指标。 1、线性回归的假设是什么? 线性回归有四个假设 线性:自变量(x)和因变量(y…

深度学习3:回归问题

首先不要将回归问题和logistic回归算法混为一谈,logistic回归不是回归算法,而是分类算法。 之前的分类问题的目标是预测输入数据点所对应的单一离散的标签,而这节要预测一个连续的而不是离散的标签,比如根据气象数据预测明天的气温…

回归问题评价指标

目录 平均绝对值误差(MAE) 均方误差(MSE) 均方根误差(RMSE) 平均绝对百分比误差(MAPE) 均方误差对数(MSLE) 中位绝对误差(MedAE) R Squared 总结 回归模型: 个样本,每个样本…

stacking集成模型预测回归问题

前言 关于各种集成模型,已经有很多文章做了详细的原理介绍。本文不再赘述stacking的原理,直接通过一个案例,使用stacking集成模型预测回归问题。 本文通过学习一篇stacking继承学习预测分类问题,对其代码进行了调整,以…

逻辑回归问题汇总

文章目录 1. Logistic回归与线性回归的区别与联系?2. Logistic回归有哪些基本假设?3. Logistic回归的损失函数?4. Logistic回归损失函数的求解方法?5. Logistic回归是如何进行分类的?6. Logistic回归为什么要用极大似然函数作为损失函数?7. 为什么在…

回归问题归一化总结

在用深度学习做回归问题时,对数据进行标准化处理是一个共识,将数据标准化,利用标准化后得数据进行数据分析。不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响…

分类和回归问题

前言 最近在复习一些深度学习和机器学习的基础知识,看到分类和回归,这里记录一下。 一、回归 首先,回归应用的场景是用来输出一系列连续的值,然后用于预测等任务。回归的目的是为了找到最优拟合的曲线,这个曲线可以…

回归问题一般解决方法

1. 回归问题 Given a labeled training set learn a general mapping which associates previously unseen independent test data with their correct continuous prediction. 回归问题和分类问题很相似,区别在于回归问题的输出是一个连续值。 上图是训练数据 和 对应的连续值…

对线性回归、逻辑回归、各种回归的概念学习

回归问题的条件/前提: 1) 收集的数据 2) 假设的模型,即一个函数,这个函数里含有未知的参数,通过学习,可以估计出参数。然后利用这个模型去预测/分类新的数据。 1. 线性回归 假设 特征 和 结果 都满足线性。即不大于一次方。这个是针对 收集的数据而言。 收集的数据中…

回归问题

回归 回归(regression) 是监督学习的另一个重要问题。 回归用于预测输入变量(自变量) 和输出变量(因变量) 之间的关系, 特别是当输入变量的值发生变化时, 输出变量的值随之发生的…

回归问题原理

回归问题是一种常见的监督机器学习任务,在很多领域均有广泛应用。其典型应用包括销量预测、库存预测、股票价格预测、天气预测等。本问将讨论线性回归,包括线性回归模型的目标函数(损失函数和正则函数)、线性回归模型的优化求解、…