在 Keras 中使用自动编码器减少数据集的维度
Posted
技术标签:
【中文标题】在 Keras 中使用自动编码器减少数据集的维度【英文标题】:Reducing dimension of a DataSet with Autoencoders in Keras 【发布时间】:2021-10-14 05:45:35 【问题描述】:我正在尝试减少数据集的实例和变量。我的数据集的形状是(x , y)
,y
是列,x
是行。我想把它减少到(k, m)
。
但是,在 Keras 中,我不知道如何告诉我的程序我想要那个编码维度。通常我使用input_shape = (y ,)
,例如:
input_layer = Input(shape=(y, ))
encoder_layer_1 = Dense(m)(input_layer)
decoder_layer_1 = Dense(y)(encoder_layer_1)
autoencoder = Model(input_layer, decoder_layer_1)
autoencoder.compile(optimizer = 'adam', loss='mse')
encoder_model = Model(inputs=input_layer, outputs=encoder_layer_1)
encoded_train = pd.DataFrame(encoder_model.predict(X_train))
但是,如果我这样做,那么 encoded_train
的形状将是 (x,m)
,而不是 (k,m)
。
我该如何改变呢?我不知道如何减少 Keras 中的两个维度。
【问题讨论】:
不,这在自动编码器的标准公式中是不可能的,所以这不是编程问题。 【参考方案1】:同时减少 x 和 y 将要求您将数据集视为单个数据点,我认为这不是一个好主意。
不过,将您的数据集重塑为 (x, y, 1) 并使用 con2d 层应该可以解决您的目的。
【讨论】:
以上是关于在 Keras 中使用自动编码器减少数据集的维度的主要内容,如果未能解决你的问题,请参考以下文章