LSTM Keras:重塑输入数据
我想为客户行为建立一个LSTM自动编码器模型,并检测异常情况。活动数据集看起来像:LSTM Keras:重塑输入数据,keras,deep-learning,lstm,recurrent-neural-network,autoencoder,Keras,Deep Learning,Lstm,Recurrent Neural Network,Autoencoder,我想为客户行为建立一个LSTM自动编码器模型,并检测异常情况。活动数据集看起来像: customer_id features C1 [[1,2,1,0,1],[2,2,1,1,0],[1,2,3,1,1],[0,3,2,1,1]] C2 [[2,1,1,4,1],[3,2,1,1,4],[2,2,3,1,2]] ...........................................
customer_id features
C1 [[1,2,1,0,1],[2,2,1,1,0],[1,2,3,1,1],[0,3,2,1,1]]
C2 [[2,1,1,4,1],[3,2,1,1,4],[2,2,3,1,2]]
..............................................
Cn [[2,3,1,4,1],[2,1,1,1,0],[4,2,2,1,2],[3,3,2,1,1], [2,3,2,1,2], [1,3,2,2,1]]
这里,所有样本的特征数量相同,即5。但是,不同客户的样品数量不同。有N个客户。在这种情况下,如何分离列车和测试数据,以及如何重塑LSTM模型的输入数据 到目前为止,
在这种情况下,您需要使用填充。提及
您也可以设置maxlen参数,这取决于为客户提供的最大列表我已经写了一个答案,看看它是否解决了您的问题。我已将输入数据拆分为X_train和X_test。如果我们为数据样本较少的客户填充零序列,那么模型的总体结果会发生什么变化?它会在模型性能上产生差异吗?不会,填充和屏蔽模块本身会处理零填充。请阅读链接一次,你会知道的。还有一件事,请确保你也填写了测试数据。如果你那边的事情很清楚,请告诉我。非常感谢你的回答。我会试着给你回电话的。当然,随时问!,如果它对您有效,请按回答做标记:)
from tensorflow.keras.preprocessing.sequence import pad_sequences
# club all features (c1, c2 ... features, I clubbed c1. c2 only) as a below:
input1 = [[[1,2,1,0,1],[2,2,1,1,0],[1,2,3,1,1],[0,3,2,1,1]],
[[2,1,1,4,1],[3,2,1,1,4],[2,2,3,1,2]]]
padded_input = pad_sequences(input1, padding='post')
print(padded_input)