How to use Artificial Neural Network to find a relationship between input and output parameters?
20 views (last 30 days)
Show older comments
Hello
Dear all
I came across to neural network fitting in MATLAB toolbox, but I am not sure if it fits my objective.
My objective is that, I have some parameters as inputs, (X1, X2, ... Xn) and my output parameter is Y. I want to know if there is any kind of relationship/trend between Y and X's in any form.
Since simple linear regression between individual X's and Y did not give a relationship, I need to know if I can find a relationship with a combination of my Y and X's like Y = aX1 + bX1X2 + ...
is Neural Network Fitting suitbale for such purpose? If so, how should I do that? and if not, does anybody knows how I can achieve that objective?
I do appreciate your help
0 Comments
Accepted Answer
Blake Van Winkle
on 14 Jan 2020
To Ben:
NNs generally will not give an open solution for you to be able to extract meaning from how the terms relate. This is because of how the inputs are combined together repeatidly with the use of transfer functions as they progress through the layers. I woud suggest that you look at response surface models (RSM), kriging models, and genetic programming as methods that would more easily suite your desires.
RSM & Kriging: https://ccse.lbl.gov/people/julianem/
If you are hard pressed to get any of those to work, you could use the NN, but it will behave more like a black box.. One of the major issues in NN-land is that there are not many tried and true ways of doing things, so most are forced into brute force techniques and use what "works". (whatever that means)
If you get it to produce a reasonable result for you, it will be difficult to extract nuggets out about how different inputs effect outputs or vise versa, I would suggest that you use a numerical partial derivative along each dimension of interest and review the resulting matrix.
y = NN(x)
dy/dx = (NN(x+dx)-NN(x-dx))/(2*dx)
This will give you a feeling for how they interact, but it will be a local answer.
If you were really going to dig into all this stuff, first you should normalize your data. Next, you should probably plot your data x(i) v Y. Then, I would suggest trying to find the primary components (primary component analysis) [warning this sometimes removes interesting attributes]. http://mres.uni-potsdam.de/index.php/2017/09/14/principal-component-analysis-in-6-steps/
Next, do a little cluster analysis. https://www.mathworks.com/matlabcentral/fileexchange/65780-k-means-clustering
Finally, try to fit the cleaned up data set based off of getting high performance with minimal input variables into a method to generate a function. (any of those above)
Good luck. As a side note, I am not going to put my personal backing behind any of these tools, so use them at your own discression.
More Answers (0)
See Also
Categories
Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!