locked
Infer.NET: Missing elements of a vector variable (Migrated from community.research.microsoft.com) RRS feed

  • Question

  • Ferrum posted on 05-14-2009 9:25 AM

    How can one handle vector variables with partially missing elements?

    Friday, June 3, 2011 4:56 PM

Answers

  • minka replied on 07-07-2009 9:42 AM

    I think this is a modelling question, not an Infer.NET question.  The Bayes Point Machine is a purely discriminative model so it does not allow missing inputs.  The same would be true for other classifiers such as SVMs, neural networks, Gaussian Processes, etc.  To allow missing inputs, you would have to change the model.  There are various ways that you could do this.  One approach is to add a generative model to the inputs, e.g. you could model them as multivariate Gaussian.  But that is an application-specific decision.

    Friday, June 3, 2011 4:56 PM

All replies

  • Vincent Tan replied on 06-17-2009 7:36 PM

    Hi Ferrum,

    Have you found a solution to this problem? If so, I was wondering whether you could share your solution with me. Fyi, after defining such vectors (with missing measurements), I need to take the inner product of it with a variablearray<vector> of weights as in a BPM.

    Regards, Vincent

    Friday, June 3, 2011 4:56 PM
  • John Guiver replied on 07-06-2009 3:20 AM

    Hi Vincent, Ferrum

    One thing you can do is to use the Variable.MatrixTimesVector  factor to get a sub-vector, and work with that.

     

    John

    Friday, June 3, 2011 4:56 PM
  • Vincent Tan replied on 07-06-2009 3:25 PM

    Hi John,

    Wouldn't doing what you suggested be equivalent to setting the missing elements to zero?

    Take the Bayes Point Machine example in the tutorial and let's focus solely on the training phase. Suppose the income of the 2nd individual is not available. How would I handle such a missing value if I would like to incorporate this in the model and not completely exclude the 2nd individual from the model?

    Thanks a lot!

    Vincent

     

    Friday, June 3, 2011 4:56 PM
  • minka replied on 07-07-2009 9:42 AM

    I think this is a modelling question, not an Infer.NET question.  The Bayes Point Machine is a purely discriminative model so it does not allow missing inputs.  The same would be true for other classifiers such as SVMs, neural networks, Gaussian Processes, etc.  To allow missing inputs, you would have to change the model.  There are various ways that you could do this.  One approach is to add a generative model to the inputs, e.g. you could model them as multivariate Gaussian.  But that is an application-specific decision.

    Friday, June 3, 2011 4:56 PM