2015-08-06 4 views
2

У меня есть 30 независимых переменных в моей модели. Я хотел обрезать нейронную сеть, основанную на важности переменных. Я попытался использовать функцию mlp пакета RSNNS, но я не знаю, какие аргументы могут быть даны «pruneFunc» и «pruneFuncParams»?
Существует ли другой способ обрезки нейронной сети?Как мы можем обрезать нейронную сеть в R?

+0

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

ответ

1

Аргументы «pruneFunc» и «pruneFuncParams» в mlp() (пакет RSNNS) используются для сокращения количества нейронов скрытого слоя. Я не думаю, что вы можете использовать это, чтобы уменьшить свои входные переменные.

Вы можете использовать пакет NeuralNetTools для запуска алгоритма Garson в сети. Функции этого пакета выполняются на большинстве объектов нейронной сети, созданных RSNNS (и другими пакетами). Алгоритм Гарсона даст вам значение каждой переменной на основе весов. Затем вы можете исключить эти переменные и перенастроить свою сеть.

Обратитесь к этим ссылкам для получения более подробной информации об алгоритме Гарсон ... https://beckmw.wordpress.com/2013/08/12/variable-importance-in-neural-networks/ https://beckmw.wordpress.com/tag/neural-network/

В качестве альтернативы вы можете попробовать другие из многих методов снижения размерности (например, PCA), прежде чем начать обучение вашей нейронной сети.

Вы упомянули в комментарии, что «Сокращение переменных и дает только важные переменные нейронной сети дает лучшее предсказание» ... но это не точно ...

MLP 2 скрытых слоев может аппроксимировать любую функцию при достаточной подготовке, и обычно MLP с 1 скрытым слоем достаточно, чтобы приблизить большинство функций. Если есть какая-либо входная переменная, которая имеет очень низкое значение (или даже абсолютно никакой роли в вашей модели), достаточное количество тренировок сделает весы, связанные с этой переменной очень маленькими (близкими к нулю), чтобы не иметь каких-либо значительных влияет на ваши прогнозы. Единственным существенным преимуществом сокращения числа переменных является более низкое время вычисления для прогнозов.