How does the multiclass logistic regression's optimization work?
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi all,
I am working on a 3-class classification problem (call our classes 1, 2, and 3) with two different datasets (call them A and B). I would like to use a multi-class logistic regression algorithm for this purpose. When I applied fitcecoc with a linear template logistic regression to Dataset A, I got results I would consider normal. However, when I applied the same code to Dataset B, all entries were classified as Class 1.
I was thinking that it may be the optimization that's the issue so I tried a few different initial conditions. I have p variables that I am training on. The default initial conditions for the linear template logistic regression are zeros(1,p). When I changed the initial conditions to a ones vector scaled by a large and positive constant, nothing changed. However, when I changed the initial conditions to a ones vector scaled by a negative and "large enough" (less than -0.1) constant, all classifications switched from Class 1 to Class 3.
What confuses me most is that this same code was working for a similarly structured dataset. Is there something wrong with my approach? Or am I dealing with some sort of convergence issue?
The relevant pieces of code are given below.
initial_condition = -50;
model_template = templateLinear('Learner', 'logistic', 'Beta', initial_condition*ones(8,1));
GLM = fitcecoc(train_data, categorical(train_label), 'Learners', model_template)
yfit = predict(GLM, test_data);
cm = confusionmat(categorical(test_label), yfit, 'Order', categorical(1,2,3));
0 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu Linear Regression finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!