使用自动编码器选择功能

问题描述

我正在使用一个简单的自动编码器进行功能选择。我正在执行以下代码

   X=mydata.drop('target'],axis=1)
   y=mydata['target']

   input_size = X.shape[1]
   hidden_size = 200
   code_size = 100

   input_layer = Input(shape=(X.shape[1],))

   encoded = Dense(12,activation='relu')(input_layer)
   decoded = Dense(X.shape[1],activation='softmax')(encoded)

   autoencoder = Model(input_layer,decoded)
   autoencoder.compile(optimizer='adam',loss='binary_crossentropy')
   
   X1,X2,Y1,Y2 = train_test_split(X,X,test_size=0.3,random_state=100)

   autoencoder.fit(X1,epochs=100,batch_size=100,shuffle=True,verbose = 50,validation_data=(X2,Y2))

   encoder = Model(input_layer,encoded)
   X_ae = encoder.predict(X)

我将“ encoder.predict(X)”的输出用作所选功能。但是似乎功能的结构已更改。因此,我无法理解选择了哪些功能。确实,我想拥有所选要素的名称,但是最后一行的输出将为我提供一个我无法识别要素名称的数组。以某种方式知道删除或选择了哪些功能的想法?即使是列位置(从原始数据帧开始,在我的情况下为“ mydata”)也对我有用?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)