最佳特征 DNNClassifier 模型

Best Features DNNClassifier model

我正在研究具有 50 个特征的二元分类,我正在使用 tf.estimator.DNNClassifier。我如何对影响结果的主要特征进行排名?

model = tf.estimator.DNNClassifier(feature_columns=feat_cols, hidden_units=[1024, 512, 256])
model.train(input_fn=input_func,steps=5000)

尝试使用以下内容:

wt_names = model.get_variable_names()
wt_vals = [model.get_variable_value(name) for name in wt_names]

wt_names:

['dnn/hiddenlayer_0/bias',
 'dnn/hiddenlayer_0/bias/t_0/Adagrad',
 'dnn/hiddenlayer_0/kernel',
 'dnn/hiddenlayer_0/kernel/t_0/Adagrad',
 'dnn/hiddenlayer_1/bias',
....

wt_values:

model.get_variable_value('dnn/hiddenlayer_0/kernel')
array([[-0.05203109, -0.08008841, -0.07939883, ...,  0.00460025,
        -0.08133098, -0.00713339],
       [ 0.06286905,  0.01680468,  0.13167404, ..., -0.06170678,
        -0.06767021,  0.05019882],
       [ 0.07433462, -0.01052287, -0.10441218, ..., -0.081627  ,
        -0.06397511, -0.03532334],
       ...,

不确定如何确定哪些功能排名更高。

一些研究告诉我,您无法确定哪个特征对 DNN 的影响最大。您需要在进入 DNN 之前执行此操作。

您可以使用 Scikit 来减少特征: [http://scikit-learn.org/stable/modules/feature_selection.html]

您可以使用"Removing features with low variance"、"Recursive feature elimination"等来减少特征

检查以下功能选择Link: https://machinelearningmastery.com/feature-selection-machine-learning-python/

给你4种方法来解决这个问题:单变量选择、递归特征消除、主成分分析和特征重要性。