performing a least squares with regularisation in matlab
25 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I have data sets X (2n by 8) and Y(2n by 1). I want to find the coefficients a so that Y = Xa. So we can perform a = X\Y (as a least squares minimisation).
I wanted to ask if it possible to proceed with a form of regularisation (L1 or something simple) from this?
Please help.
0 Commenti
Risposte (2)
Diwakar
il 13 Lug 2018
My understanding of your problem is that you want to find the coefficient a. So in order to implement optimization you can implement average of sum of least squares as shown below.
Loss= ((Y-X*a)'*(Y-X*a))/(2*n);
The above shown function is a vectorized implementation of the squared error loss function. So this can be minimized in order to get the optimal value of a. If you want to fit a curve to this then any form of regularization should be fine.
Hope this helps
Cheers!
1 Commento
Bruno Luong
il 23 Set 2020
Modificato: Bruno Luong
il 23 Set 2020
Simpless method:
n = size(X,2); % 8
lambda = 1e-6; % <= regularization parameter, 0 no regularization, larger value stronger regularized solution
a = [X; lambda*eye(n)] \ [Y; zeros(n,1)]
1 Commento
Vedere anche
Categorie
Scopri di più su Problem-Based Optimization Setup in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!