Feature selection using neural network

12 次查看(过去 30 天)
Hello. I need to select the most informative input parameters using a neural network. I tried using autoencoder, but I did not succeed. Can you advise me(or give ready code if it is exist) how I can determine the most important parameters in the input sample?
INPUT matrix: 114(features)x426(samples), outputs: 62x426.
Data look so: inputs (1; 85,4794464111327; 56,4613265991210; 0; 0; 0; 0; 29,0181198120117; 0; 51,6929779052734; 87; 50; 32; 18; 137,172424316406 ...),
outputs (0,731800019741058; 0,555100023746491; 0,214200004935265; 0,00219999998807907; 0,0132999997586012; 0,00289999996311963; 0,00689999992027879; 0,00130000000353903; 0,00150000001303852; 0,0496999993920326; 0,0828000009059906; 0,142299994826317...). It is one sample of 426.

采纳的回答

Greg Heath
Greg Heath 2016-4-20
The most important of I inputs in "I"nput matrices with I rows and N columns depends on the "O"utput target matrix with O rows and N columns.
If input and output variables are separately standardized to zero-mean/unit-variance variables, inputs can be ranked more easily via stepwise selection algorithms. The most common of these are forward selection and backward selection. However, there are also combined forward/backward and backward/forward algorithms.
I tend to rely on the stepwise selection algorithms for linear transformations. These are available from the MATLAB function STEPWISEFIT.
A command line search yields
>> lookfor stepwise
addedvarplot - Create added-variable plot for stepwise regression
stepwise - Interactive tool for stepwise regression.
stepwisefit - Fit regression model using stepwise regression
stepwiseglm - Create generalized linear regression model by stepwise regression.
stepwiselm - Create 1st order linear regression model by stepwise regression.
The help and doc commands yield explanations and examples.
Another possibility is to use a 2nd order linear regression model by adding crossproducts and squares.
Most likely there are more sophisticated algorithms available. However, I have never had the need.
Hope this helps.
Thank you for formally accepting my answer
Greg
  2 个评论
Max Mefodovskiy
Max Mefodovskiy 2016-4-20
Thank you for the answer. But these methods do not use a neural network. This refers to the Statistics and Machine Learning Toolbox. I task is to determine the most important inputs to the neural network.
At the moment I am doing it this way: Training Network (grnn, rb, rbe) on the input and output data, for example net = grnn(input, output, spread) Next resettable one of the parameters to 0 and call function sim, example sim(net,inputs); Compared with the values that should have been to bring the network and find the error value. Next, return value, which I nullify and is reset next. I repeat it 114 times (114 is the number of parameters in the input sample). Next sort descending error value and the setting that corresponds to the highest value of the error is defined as the most significant, because the network has shown poor results without it.
This is the correct way to determine what parameters are most important?
Greg Heath
Greg Heath 2016-11-26
编辑:Greg Heath 2016-11-26
1 Since a neural network is a universal approximator, the most important inputs to the function must be the most important inputs to a minmimun MSE NN which is not overfit (and probably, the best when it is underfit!)
2. The only way to determine what inputs are the most important is via a complete search of all of the input combinations.
3. The most practical way to estimate input rankings is via a backward search with standardized inputs and targets.
4. Forward-Backward and Backward-Forward searches may yield better solutions. However, the additional effort is seldom worth the amount of improvement.
Greg

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Sequence and Numeric Feature Data Workflows 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by