turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Find a Community

- Home
- /
- Analytics
- /
- Data Mining
- /
- Interpreting Neural Network

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

02-16-2016 11:23 AM

Dear all,

I created a neural network (NN) with one binary target variable and multiple input variables (interval scaling).

After studying the literature I know NN ain't easy to interpret, hence I need therefore your help.

In the output there is a table which shows how good all inputs predict the target variable. Is there a way to determine the input var, which predicts the best the targer variable?

Or do you know another good way to interpret an NN with SAS EM?

Kind regards,

Benjamin

Accepted Solutions

Solution

02-16-2016
01:39 PM

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

02-16-2016 12:07 PM - edited 09-26-2016 12:10 PM

A common approach is to train a decision tree using the predicted values from a neural network to get measures of variable importance for your inputs. This decision tree is then essentially a surrogate model that acts as a proxy to the complex logic of the neural network. To do this in EM, you would attach a Metadata node after your Neural Network node and set the role to 'Target' for **either**:

- one of the columns of posterior probabilities from your Neural Network node, e.g. P_*TargetEvent *where *Target *is the name of your original binary target and *Event *is the event level of the target,

- the predicted target, I_*Target*

The original target should be given the role 'Rejected' now. Then run a Decision Tree to see what variables are important in the model.

You can similarly get variable importance by including a Model Comparison or Score node after the Neural Network node in your flow, then a Reporter node at the end of the flow with the **Nodes** property set to **Summary**. This also uses a decision tree to calculate variable importance.

Hope that helps,

Wendy

All Replies

Solution

02-16-2016
01:39 PM

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

02-16-2016 12:07 PM - edited 09-26-2016 12:10 PM

A common approach is to train a decision tree using the predicted values from a neural network to get measures of variable importance for your inputs. This decision tree is then essentially a surrogate model that acts as a proxy to the complex logic of the neural network. To do this in EM, you would attach a Metadata node after your Neural Network node and set the role to 'Target' for **either**:

- one of the columns of posterior probabilities from your Neural Network node, e.g. P_*TargetEvent *where *Target *is the name of your original binary target and *Event *is the event level of the target,

- the predicted target, I_*Target*

The original target should be given the role 'Rejected' now. Then run a Decision Tree to see what variables are important in the model.

You can similarly get variable importance by including a Model Comparison or Score node after the Neural Network node in your flow, then a Reporter node at the end of the flow with the **Nodes** property set to **Summary**. This also uses a decision tree to calculate variable importance.

Hope that helps,

Wendy

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

02-16-2016 01:41 PM

Hi Wendy,

Thank you for the quick and good answer. I switched the target variable to a predicted one and rejected the old target variable.

Afterwards I did a decision tree and a linear regression.

Best regards,

Benjamin