我已经使用MLP神经网络设计了一个分类器。网络输入具有2000个功能,网络输出有6个类。
我的代码:
train_X, test_X, train_Y, test_Y = train_test_split(X, Y, test_size=0.2, random_state=np.random.seed(7), shuffle=True)
train_X = np.reshape(train_X, (train_X.shape[0], 1, train_X.shape[1]))
test_X = np.reshape(test_X, (test_X.shape[0], 1, test_X.shape[1]))
model = Sequential()
model.add(LSTM(100, return_sequences=False, input_shape=(train_X.shape[1], train_X.shape[2])))
model.add(Dense(train_Y.shape[1], activation='softmax'))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])
model.fit(train_X, train_Y, validation_split=.20,
epochs=1000, batch_size=50)
问题:如何确定网络中哪些输入对每个类别的分类影响最大?
您是否有使用Python的示例示例?
答案 0 :(得分:1)
看看训练后的权重,尽管这是否有帮助取决于复杂性,例如您拥有多少个隐藏层。
请注意,您做出的我最喜欢的故事之一(可能是伪造的故事)的假设是关于美国军方所做的某些工作的。他们想要一个神经网络来识别照片中是否有主战坦克。因此,他们制作了一组带或不带坦克的图片,过了一会儿,他们取得了很好的效果。然后他们在另一组图片上尝试了此方法,但结果却以失败告终。经过分析,他们发现带坦克的图片有蓝天,没有多云的图片。
答案 1 :(得分:0)
也许您想要mutual_info_classif
一件事:有许多功能评估,主要取决于您的分类器要做什么。有关更多信息,请参见sklearn
中的feature_selection