Лучшие характеристики модели DNNClassifier - PullRequest
0 голосов
/ 06 июня 2018

Я работаю над двоичной классификацией с 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],
       ...,

Не знаете, как определить, какие функции имеют более высокий рейтинг.

Ответы [ 2 ]

0 голосов
/ 14 июня 2018

Проверьте следующую ссылку выбора функций: https://machinelearningmastery.com/feature-selection-machine-learning-python/

Дайте вам 4 способа выяснить это: одномерный выбор, рекурсивное исключение элементов, анализ главных компонентов и важность функций.

0 голосов
/ 08 июня 2018

Небольшое исследование говорит мне, что вы не можете определить, какая функция больше всего влияет на DNN.Это необходимо сделать до того, как вы перейдете в DNN.

Вы можете использовать Scikit для уменьшения возможностей: [http://scikit -learn.org / stable / modules / feature_selection.html]

Вы можете использовать «Удаление функций с низкой дисперсией», «Удаление рекурсивных функций» и другие, чтобы уменьшить возможности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...