regressão deixar um de fora usando laço no Matlab
-
21-12-2019 - |
Pergunta
Tenho 300 amostras de dados com cerca de 4.000 recursos de dimensão cada.Cada entrada tem 5 dim.saída que está no intervalo de -2 a 2.Estou tentando encaixar um modelo de laço nele.Li alguns posts que falam sobre estratégias de validação cruzada como esta: Deixe um algoritmo de validação cruzada de fora no matlab
Mas vi que o laço não suporta omitir no Matlab! http://www.mathworks.com/help/stats/lasso.html
Como posso treinar um modelo usando validação cruzada de exclusão e ajustar um modelo usando laço em meu conjunto de dados?Estou tentando fazer isso no matlab.Gostaria de obter um conjunto de pesos que poderei usar para previsões futuras sobre outros dados.
Eu tentei usar o glmnet: http://www.stanford.edu/~hastie/glmnet_matlab/intro.html mas não consegui compilá-lo em minha máquina devido à falta de um compilador mex adequado.
Alguma solução para o meu problema?Obrigado :)
EDITAR
Também estou tentando usar a função laço integrada ao MATLAB.Possui opção de realizar validação cruzada.Ele gera B e Fit Statistics, onde B são coeficientes ajustados, uma matriz p por L, onde p é o número de preditores (colunas) em X e L é o número de valores Lambda.
Agora, dada uma nova amostra de teste, como posso calcular a saída usando este modelo?
Solução
Você pode usar uma abordagem de deixar um de fora, independentemente do seu método de treinamento.Como explicado aqui, você pode usar crossvalind
para dividir os dados em conjuntos de treinamento e teste.
[Train, Test] = crossvalind('LeaveMOut', N, M)