【发布时间】:2021-01-07 15:07:28
【问题描述】:
我有一个特征列表,每个特征都有一个权重(重要性值),我想使用“密集”构建一个自动编码器,我在输入层中将每个特征的重要性设置为其权重。假设我有以下特征及其重要性值:
feature importance
feature_1 0.3
feature_2 0.2
feature_3 0.15
feature_4 0.05
是否有将这些值包含在自动编码器的输入层中?
我的自动编码器如下所示
def generate_autoencoder(features_importance_dataframe):
input_layer = Input(shape=(len(features_importance_dataframe.feature.unique().tolist()), ))
encoder = Dense(128)(input_layer)
encoder = Dropout(0.2)(encoder)
encoder = Dense(64)(encoder)
encoder = Dropout(0.2)(encoder)
bottleneck = Dense(32)(encoder)
bottleneck = Dropout(0.2)
decoder = Dense(64)(bottleneck)
decoder = Dropout(0.2)(decoder)
decoder = Dense(128)(decoder)
decoder = Dropout(0.2)(decoder)
output_layer = Dense(len(features_importance_dataframe.feature.unique().tolist(), activation='sigmoid')(decoder)
autoencoder = Model(input_layer, output_layer)
autoencoder.compile(loss='mse', optimizer='rmsprop')
return autoencoder
如果可行的话,有任何关于如何实现这一点的提示吗?谢谢。
【问题讨论】:
-
这里的“重要性”对你意味着什么?
-
我使用 RandomForest 分类器生成特征的重要性值;使用熵作为信息增益度量。
标签: keras feature-selection autoencoder