Matlab - Leave one out con app de matlab

 
Vista:

Leave one out con app de matlab

Publicado por Maria (6 intervenciones) el 14/09/2018 21:16:46
Buenas!

Estoy tratando de implementar el metodo de Leave One Out (LOO) con la app de matlab Classification Learner pero no veo la opción. Con cross validation solo puedo hacer un máximo de 50 folds, y mi muestra tiene 150 observaciones por lo que no me sirve.

Hay alguna forma de hacerlo con la app?

He estado mirando también como hacerlo con crossval o cvpartition, pero la documentación de mathworks no me queda muy clara.
No sé como pasar de mi matriz de nxm (siendo n el número de observaciones y m los parámetros que tengo en cuenta) a un modelo de LDA por ejemplo (o regresión logística o SVM) y validarlo con el método de LOO.

Alguien puede ayudarme con esto?

Muchas gracias de antemano!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Leave one out con app de matlab

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 14/09/2018 21:49:54
en temas de aprendizaje automático el método de Leave One Out es el mismo que Cross-validation

el concepto es que si tú tienes 150 observaciones y seleccionas 50 folds , lo que hace Matlab es dividir tus datos en 50 conjuntos, por lo tanto, cada conjunto tuyo tendría 3 observaciones únicamente

por cada conjunto se entrena un modelo con las observaciones que no estén en dicho conjunto (en tu caso con k=50 serían 147 observaciones), se evalúa el rendimiento con los datos del conjunto(que serían 3 con k=50) y se calcula el error sobre todos los conjuntos, este proceso se repetiría 50 veces, este método se llama Validación Cruzada de K iteraciones y lo más típico es que se utilice la validación cruzada de 10 iteraciones,

Recuerda que si aumentas aún más el k entonces estarías entrenando con muchísimas muestras y validando con poca información y el modelo de aprendizaje automático puede "memorizar" la información y no te serviría para aplicarlo realmente a nuevas observaciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Leave one out con app de matlab

Publicado por Maria (6 intervenciones) el 15/09/2018 09:00:57
Hola Jesús,
Sí, conozco como funciona el método de crossvalidation. Y realmente quiero usar el método de Leave One Out, aun pudiendo caer en overfitting.

Mi duda era sobre cómo implementarlo en matlab si con la app no es posible, y entender el funcionamiento de las funciones crossval y cvpartition para ello.

Gracias por tu respuesta!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Leave one out con app de matlab

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 15/09/2018 21:45:13
tu pregunta inicial era si había alguna forma de hacerlo con la App por eso te di tal respuesta, ahora estás preguntando sobre cómo implementarlo en Matlab

en la App hay una opción para generar código, te voy a dejar la captura de pantalla, ahí te deja un código que puedes estudiarte y justamente una línea es referente a la crossvalidation

1
partitionedModel = crossval(trainedClassifier.ClassificationSVM, 'KFold', 5);





imagenentrenador
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar