covartech/PRT

prtRegressRvm: error due to empty variable relevantIndices

tschneid opened this issue · 1 comments

I get the error

    Error using .*
    Matrix dimensions must agree.

    Error in prtRegressRvm/trainAction (line 165)
    cG = 1 - alpha(relevantIndices).*diag(Obj.Sigma);

    Error in prtAction/train (line 194)
    self = trainAction(self, ds);

    Error in rvm_prt (line 23)
    regress = reg.train(ds_train);

which is the same as from the post "one step ahead regression with RVM/RVMSequential" (http://anewfolder.com/node/579).
The problem is that the variable relevantIndices is empty after some iterations in the for loop. This deterministically happens on some data, while it works fine with other data. If I change the DataSet.targets to some other values, it also works fine (so same dimensionality, number of features, etc.).

Any ideas on this? Is this a bug in prtRegressRvm or am I missing something about the behaviour of an RVM?

Hello!

Thank you for reporting this bug. As you know, this is happening when the regression RVM encounters data for which it can find no relevant kernels (or relevant vectors).

Two things:

  1. We have pushed a fix to the current repository that should fix the issue (the RVM exits gracefully when no relevant vectors are found, and at run time the default no-relevant-vector solution is now to output ZEROS).

  2. This probably indicates a problem with your data or indicates that the kernels you're using are not well suited to modeling your regression surface. I would expect high RMSE values for regression problems where these kinds of errors are occurring.

I hope this helps, and thank you for using the PRT - we hope it's useful!