Why do I receive "Too many input arguments" error with predict function?

So I have trained a Linear Discriminant Analysis model using
lda = fitcdiscr(Data,Class);
fitcdiscr on training data and I use it to predict the class of new data using:
[ypred,yci] = predict(lda,NewData);
It works well, runs perfectly. I want to play with the alpha coefficient so I can chose the confidence interval of the model. In my understanding, the code that would allow me to do that is:
[ypred,yci] = predict(Mdl,Xnew,'Alpha',0.01);
However, when I run this code, it gives me the error code "Too many input arguments".
I'm trying to understand why this is true and how to fix it. If you have any other idea how I could play with the conservativeness of my model, please let me know.
Thank you so much in advance.

Answers (1)

The predict method for that kind of object is https://www.mathworks.com/help/stats/compactclassificationdiscriminant.predict.html which does not support any options.

5 Comments

I'm confused since I got this information from the MathWorks help for the predict function. In details:
Name-Value Pair Arguments
Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.Example: [ypred,yci] = predict(Mdl,Xnew,'Alpha',0.01,'Simultaneous',true) returns the confidence interval yci with a 99% confidence level, computed simultaneously for all predictor values
Please link to documentation for the predict() function that you are reading about.
That predict() function is for LinearModel objects created with fitlm(). You are creating a ClassificationDiscriminant object instead, and the predict model for it does not support options.

Sign in to comment.

Asked:

on 16 Sep 2022

Commented:

on 16 Sep 2022

Community Treasure Hunt

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

Start Hunting!