问题描述
我正在使用一个简单的自动编码器进行功能选择。我正在执行以下代码:
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 (将#修改为@)