Lasciare la regressione one-out con il lazo a Matlab
-
21-12-2019 - |
Domanda
Ho 300 campioni di dati con circa 4000 funzionalità di dimensioni ciascuna. Ogni ingresso ha un 5 Dim. Uscita che è nell'intervallo da -2 a 2. Sto cercando di adattarlo a un modello Lazo ad esso. Ho attraversato alcuni post che parlano delle strategie di convalida incrociate come questa: Lascia un algoritmo di convalida a croce in Matlab
Ma ho visto che il lasso non supporta gli outhout a Matlab! http://www.mathworks.com/help/stats/lasso.html
Come posso addestrare un modello usando lasciare una convalida croce e adattarsi a un modello usando il lazo sul mio set di dati? Sto cercando di farlo a Matlab. Vorrei ottenere una serie di pesi che potrò usare per previsioni future su altri dati.
Ho provato a usare GLMNet: http://www.stanford.edu/~ Hastie / GLMNet_MatLab / Intro.html Ma non potevo compilarlo sulla mia macchina a causa della mancanza di adeguato compilatore Mex.
Qualche soluzione al mio problema? Grazie :)
Modifica
Sto anche cercando di utilizzare la funzione Lazo incorporata con MATLAB. Ha un'opzione per eseguire la convalida incrociata. Emette le statistiche B e Fit Statistics, dove B è coefficienti aderenti, una matrice P-By-L, dove P è il numero di predittori (colonne) in X, e L è il numero di valori Lambda.
Ora ha dato un nuovo campione di prova, come posso calcolare l'output usando questo modello?
Soluzione
È possibile utilizzare un approccio congedo-one-out indipendentemente dal metodo di allenamento.Come spiegato qui , puoi usare crossvalind
per dividere i dati in set di allenamento e test.
[Train, Test] = crossvalind('LeaveMOut', N, M)
.