Ottenere classi previste dall'oggetto r glmnet
-
27-10-2019 - |
Domanda
Sto cercando di creare semplici modelli di regressione logistica multi-classe utilizzando GLMNET in R. Tuttavia, quando provo a prevedere i dati di test e ottenere la tabella di contingenza ottengo un errore. Una sessione di esempio viene riprodotta di seguito.
> mat = matrix(1:100,nrow=10)
> test = matrix(1:50,nrow=5)
> classes <- as.factor(11:20)
> model <- glmnet(mat, classes, family="multinomial", alpha=1)
> pred <- predict(model, test)
> table(pred, as.factor(11:15))
Error in table(pred, as.factor(11:15)) :
all arguments must have the same length
Qualsiasi aiuto sarà apprezzato. R noob qui.
Grazie.
Soluzione
Il predict
metodo per a glmnet
L'oggetto richiede di specificare un valore per l'argomento s
, che indica quali valori del parametro di regolarizzazione per il quale si desidera previsioni.
(glmnet
Si adatta al modello per diversi valori di questo parametro di regolarizzazione contemporaneamente.)
Quindi, se non specifichi un valore per s
, predict.glmnet
restituisce previsioni per tutto i valori. Se vuoi solo un singolo set di previsioni, è necessario impostare un valore per s
Quando chiami predict
, o devi estrarre la colonna pertinente dopo il fatto.