Missing data for Neural Network training
15 views (last 30 days)
Show older comments
Hi, I want to create a neural network that consists in two layers. The input layer has two elements. These elements are fed to both layers. From the 1st layer, there are two outputs, one output (Y1) gives an experimental result and the other one is fed to the 2nd layer along with the ANN inputs. The 2nd layer produces a second output Y2.
I have experimental data at X1 conditions that yield Y1 and I have experimental data at X2 conditions that yield Y2. I want to create a single ANN model in order to prove that this empirical model, in addition to properly correlate the physical phenomenon, it is also capable of keeping the relationship between the output of the 1st and the 2nd layers (this is important as I want this model to be grey box).
So, my problem is that I end up with an incomplete training data. I added the written data and a picture with the data to make it a bit clearer. Is it possible to perform the training using the "fixunknowns" function? If so , how can I implement the program? Because if I use the fixunknowns function, the size of the "fixed" matrix will not match the matrix that I will use to predict other values different from the training values. I want to note that I want to avoid interpolating or any other similar technique, as this is neural network is a testing for an idea that I want to implement.
X1 = [ 1 0.1
2 0.2
4 0.3
5 0.4
6 0.5];
Y1 = [100 NaN
98 NaN
95 NaN
93 NaN
91 NaN ];
X2 = [ 1.3 0.1
1.7 0.1
2.5 0.2
2.9 0.2
3.8 0.4
4.7 0.4
5.3 0.5
6.5 0.5 ];
Y2 = [ NaN 40
NaN 35
NaN 23
NaN 15
NaN 39
NaN 41
NaN 58
NaN 71 ];
Thank you for your time. :)
3 Comments
FERNANDO CALVO RODRIGUEZ
on 14 Mar 2023
I have the same answer. In python you can solve this problem easily with pandas drops, but in matlab i cant find any solutions.
Answers (1)
FERNANDO CALVO RODRIGUEZ
on 31 Mar 2023
Hi Andres, I share with you an answer to the same question I asked, answered by the staff @Vijeta
One way to handle missing data (NaN values) in a regression problem using the fitnet function in MATLAB is to impute the missing values with some reasonable estimate before feeding the data into the neural network. There are several methods for imputing missing values, such as mean imputation, median imputation, and regression imputation.
- A graphical user-friendly MATLAB interface is presented here: the Missing Data Imputation (MDI) Toolbox.
- MDI Toolbox allows imputing incomplete datasets, following missing completely at random pattern.
- Different state-of-the-art methods are included in the toolbox, such as trimmed scores regression and data augmentation
You can refer to the following documentation: https://www.mathworks.com/help/deeplearning/ref/fitnet.html?s_tid=srchtitle_fitnet_1
1 Comment
NN
on 14 Oct 2023
hi Fernando,
The information was very useful.
I would ike to know about fitnet becaue i used it in nn network for forecasting.
Does fitnet automatically imputes missing data?
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!