can reliefF() function deal with NaNs in my matrix?

1 vue (au cours des 30 derniers jours)
Berkan Sesen
Berkan Sesen le 4 Mar 2012
Hello,
I have an (n*m double) matrix, where n (rows) is the number of my samples and m (columns) is the number of my features, which are all discrete (i.e. categorical). The mth column in the data represents my binary outcome. I have tried using relieff() function to return the importance of my predictor features based on my outcome feature.
This is what my data looks like (let's say for simplicity's sake: I have 4 predictor and 1 outcome feature for 3 samples):
matrixdata = [1, 2, 3, NaN, 2; 5, 1, NaN, 2, 1; NaN, 3, NaN, 2, 1];
This is how I call the relieff() on my data:
X = matrixdata(:,1:(end-1));
Ylogical = matrixdata(:,end)== 1;
[ranked,weights] = relieff(X,Ylogical,10, 'categoricalx', 'on');
In this case, does relieff() disregard the NaNs in the data or does it treat NaNs as a separate category of that predictor feature column? Obviously, the former is what I would prefer.
Many thanks, Berkan

Réponse acceptée

Wayne King
Wayne King le 4 Mar 2012
Hi Berkan, relieff() removes NaNs in both your predictor and response variables. So your preference is the way it is implemented.
  1 commentaire
Berkan Sesen
Berkan Sesen le 4 Mar 2012
Hi Wayne, thank you very much, it is a relief!
Best,
berkan

Connectez-vous pour commenter.

Plus de réponses (1)

Berkan Sesen
Berkan Sesen le 5 Mar 2012
Hi, apparently the reliefF function has a sub function removeNaNs(X,Y) as below:
function [X,Y] = removeNaNs(X,Y)
% Remove observations with missing data
NaNidx = bsxfun(@or,isnan(Y),any(isnan(X),2));
X(NaNidx,:) = [];
Y(NaNidx,:) = [];
This effectively gets rid of all rows that contain any NaNs and is not ideal, especially for my case, since it leaves me with X=[] and Y=[] (i.e. no observations!)
How can I tackle this? Would replacing all NaN's with a random category, e.g. 99999, help? By doing this, I am introducing a new node state for all the predictor features so I guess it is not ideal.
Thanks, Berkan

Catégories

En savoir plus sur Data Distribution Plots dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by