Re: [R-es] CV en R

2017-06-02 Por tema Isidro Hidalgo Arellano
No es que me parezca mal, pero es mucho mejor, como te hemos recomendado,
que uses "caret". Te simplificar� mucho la vida, y te proporcionar�
visualizaciones de los resultados de la validaci�n que est�n muy bien.

 

En fin, suerte.

 

De: Jes�s Para Fern�ndez [mailto:j.para.fernan...@hotmail.com] 
Enviado el: viernes, 02 de junio de 2017 15:06
Para: Isidro Hidalgo Arellano ; 'Carlos Ortega'

CC: 'Lista R' 
Asunto: Re: [R-es] CV en R

 

El problema es que no se como ir guardando esos modelos. Lo que he hecho
finalmente es lo siguiente:

 

Creo los modelos con validacion cruzada (en total 10 modelos por algoritmo,
ya que hago 10 folds).

 

Una vez hecho eso, me quedo con el mejor grupo de 10 modelos. Por ejemplo,
randomForest con 500 arboles y nodeside4 (tengo 10 resultados para ese
modelo).

 

Entonces, como ese modelo no lo he podido guardar (por ignorancia de no
saber como guardarlos), vuelvo a crearlos de nuevo a parte, los 10, haciendo
de nuevo un train del 70% y le hago el predict, pero ya sobre el test
definitivo que quiero probar. Esa prediccion la voy guardando en una matriz
de mfilasx10 columnas, y luego hago la media de esas 10 columnas, fila a
fila, con lo que tengo la predicci�n global para el modelo. 

 

�Os parece muy incorrecto?

 

A mi me parece una buena t�cnica, aunque poco eficiente, ya que vuelvo a
generar 10 veces un modelo que ya habia geneardo esas 10 veces.

 

Un saludo
Jes�s

 

  _  

De: Isidro Hidalgo Arellano mailto:ihida...@jccm.es> >
Enviado: viernes, 2 de junio de 2017 14:35
Para: 'Jes�s Para Fern�ndez'; 'Carlos Ortega'
Cc: 'Lista R'
Asunto: RE: [R-es] CV en R 

 

Una vez que tienes la t�cnica y los par�metros �ptimos resultantes de la
validaci�n cruzada, ya tienes el modelo que necesitas, NO tienes que hacer
nada m�s. Si vuelves a modelar con todos los datos todo el trabajo de
validaci�n que has hecho lo env�as a hacer g�rgaras. Estar�as construyendo
un modelo con sobreajuste.

 

Para quedarte tranquilo, haz la prueba, coge el modelo resultante de la
validaci�n y ve aplic�ndolo a los nuevos datos. Haz lo mismo con el que
obtengas de �se paso final que NO debes dar, y que no te he puesto en mi
c�digo corregido, a saber:

modelo.final<-randomForest(respuesta~.,datos)

 

Cuando los aplicas con los nuevos datos, �cu�l funciona mejor?

 

Un saludo

 

 

Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejer�a de Econom�a, Empresas y Empleo

http://www.castillalamancha.es/


  Inicio | Gobierno de Castilla-La Mancha

www.castillalamancha.es  

Web oficial del gobierno auton�mico de Castilla-La Mancha con informaci�n
sobre actividad administrativa, econom�a, educaci�n, sanidad, servicios
sociales, sede ...

 

 

 

 

De: Jes�s Para Fern�ndez [mailto:j.para.fernan...@hotmail.com] 
Enviado el: viernes, 02 de junio de 2017 14:21
Para: Carlos Ortega mailto:c...@qualityexcellence.es> >
CC: Lista R mailto:r-help-es@r-project.org> >;
Isidro Hidalgo Arellano mailto:ihida...@jccm.es> >
Asunto: Re: [R-es] CV en R

 

Pero creo que hay un concepto que no termina de aclararse. 

 

Creo que lo importante es quedarse con el modelo bueno, por ejemplo,
imaginemos que queremos probar los siguientes algoritmos: RF, SVM, KNN,
LDA

 

Entonces hacemos lo siguiente:

 

Probamos con todos ellos, para lo que se hacen particiones:

 

Imaginemos que tengo un datasheet llamado datos, perfectamnte balanceado,
sin datos faltantes, ni ruido ni nada asi. Entonces:

 

for(i in 1:10){

train #saco el train de los datos

test #saco el test de los datos

pruebo RF, con diferentes configuaraciones (bucles j,k)

pruebo SVM, con diferentes configuaraciones (bucles j,k)

pruebo KNN

pruebo LDA

 

guardo resultados

 

}

 

y sobre el que mejor de, entonces ya creo el modelo definitivo, con el
conjunto de datos global. Si fuera un randomForest

 

randomForest(respuesta~.,ntree=500,nodesize=4,datos)

 

Y ese es mi modelo para los proximos daots que vengan yq ue no han formado
parte del datasheet datos

 

  _  

De: Carlos Ortega < 
c...@qualityexcellence.es>
Enviado: viernes, 2 de junio de 2017 13:11
Para: Jes�s Para Fern�ndez
Cc: Lista R; Isidro Hidalgo Arellano
Asunto: Re: [R-es] CV en R 

 

Hola,

 

Eso es justamente lo que hace "caret" de una manera muy sencilla y sin que
t� te tengas que preocupar de quedarte con el mejor bucket  (del CV) o con
la mejor combinaci�n en tu "grid search".

 

Te recomiendo que uses "caret" para esto

Puedes incluso evaluar los dos algoritmos "RF" y "svm" a la vez y conocer
realmente el nivel de precisi�n que ofrecen ambos.

Y claro, inicialmente puedes elegir el conjunto de entrenamiento sobre el
que haces el CV dejando el resto "test" para validar el nivel de predicci�n.

 

Gracias,

Carlos Ortega

  www.qualityexcellence.es


  QualityExcellence

 

Re: [R-es] CV en R

2017-06-02 Por tema Jesús Para Fernández
El problema es que no se como ir guardando esos modelos. Lo que he hecho 
finalmente es lo siguiente:


Creo los modelos con validacion cruzada (en total 10 modelos por algoritmo, ya 
que hago 10 folds).


Una vez hecho eso, me quedo con el mejor grupo de 10 modelos. Por ejemplo, 
randomForest con 500 arboles y nodeside4 (tengo 10 resultados para ese modelo).


Entonces, como ese modelo no lo he podido guardar (por ignorancia de no saber 
como guardarlos), vuelvo a crearlos de nuevo a parte, los 10, haciendo de nuevo 
un train del 70% y le hago el predict, pero ya sobre el test definitivo que 
quiero probar. Esa prediccion la voy guardando en una matriz de mfilasx10 
columnas, y luego hago la media de esas 10 columnas, fila a fila, con lo que 
tengo la predicci�n global para el modelo.


�Os parece muy incorrecto?


A mi me parece una buena t�cnica, aunque poco eficiente, ya que vuelvo a 
generar 10 veces un modelo que ya habia geneardo esas 10 veces.


Un saludo
Jes�s



De: Isidro Hidalgo Arellano 
Enviado: viernes, 2 de junio de 2017 14:35
Para: 'Jes�s Para Fern�ndez'; 'Carlos Ortega'
Cc: 'Lista R'
Asunto: RE: [R-es] CV en R


Una vez que tienes la t�cnica y los par�metros �ptimos resultantes de la 
validaci�n cruzada, ya tienes el modelo que necesitas, NO tienes que hacer nada 
m�s. Si vuelves a modelar con todos los datos todo el trabajo de validaci�n que 
has hecho lo env�as a hacer g�rgaras. Estar�as construyendo un modelo con 
sobreajuste.



Para quedarte tranquilo, haz la prueba, coge el modelo resultante de la 
validaci�n y ve aplic�ndolo a los nuevos datos. Haz lo mismo con el que 
obtengas de �se paso final que NO debes dar, y que no te he puesto en mi c�digo 
corregido, a saber:

modelo.final<-randomForest(respuesta~.,datos)



Cuando los aplicas con los nuevos datos, �cu�l funciona mejor?



Un saludo





Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejer�a de Econom�a, Empresas y Empleo

http://www.castillalamancha.es/

Inicio | Gobierno de Castilla-La Mancha
www.castillalamancha.es
Web oficial del gobierno auton�mico de Castilla-La Mancha con informaci�n sobre 
actividad administrativa, econom�a, educaci�n, sanidad, servicios sociales, 
sede ...









De: Jes�s Para Fern�ndez [mailto:j.para.fernan...@hotmail.com]
Enviado el: viernes, 02 de junio de 2017 14:21
Para: Carlos Ortega 
CC: Lista R ; Isidro Hidalgo Arellano 

Asunto: Re: [R-es] CV en R



Pero creo que hay un concepto que no termina de aclararse.



Creo que lo importante es quedarse con el modelo bueno, por ejemplo, imaginemos 
que queremos probar los siguientes algoritmos: RF, SVM, KNN, LDA



Entonces hacemos lo siguiente:



Probamos con todos ellos, para lo que se hacen particiones:



Imaginemos que tengo un datasheet llamado datos, perfectamnte balanceado, sin 
datos faltantes, ni ruido ni nada asi. Entonces:



for(i in 1:10){

train #saco el train de los datos

test #saco el test de los datos

pruebo RF, con diferentes configuaraciones (bucles j,k)

pruebo SVM, con diferentes configuaraciones (bucles j,k)

pruebo KNN

pruebo LDA



guardo resultados



}



y sobre el que mejor de, entonces ya creo el modelo definitivo, con el conjunto 
de datos global. Si fuera un randomForest



randomForest(respuesta~.,ntree=500,nodesize=4,datos)



Y ese es mi modelo para los proximos daots que vengan yq ue no han formado 
parte del datasheet datos





De: Carlos Ortega mailto:c...@qualityexcellence.es>>
Enviado: viernes, 2 de junio de 2017 13:11
Para: Jes�s Para Fern�ndez
Cc: Lista R; Isidro Hidalgo Arellano
Asunto: Re: [R-es] CV en R



Hola,



Eso es justamente lo que hace "caret" de una manera muy sencilla y sin que t� 
te tengas que preocupar de quedarte con el mejor bucket  (del CV) o con la 
mejor combinaci�n en tu "grid search".



Te recomiendo que uses "caret" para esto

Puedes incluso evaluar los dos algoritmos "RF" y "svm" a la vez y conocer 
realmente el nivel de precisi�n que ofrecen ambos.

Y claro, inicialmente puedes elegir el conjunto de entrenamiento sobre el que 
haces el CV dejando el resto "test" para validar el nivel de predicci�n.



Gracias,

Carlos Ortega

www.qualityexcellence.es

QualityExcellence

www.qualityexcellence.es

QUALITY EXCELLENCE, consultores en calidad, procesos y mejora continua






El 2 de junio de 2017, 13:06, Isidro Hidalgo Arellano 
mailto:ihida...@jccm.es>> escribi�:

No me has parecido para nada borde.



Ok. Centr�monos en RF y bajemos el n� de par�metros a 2: ntree y nodesize.

Te haces una parrilla de ntree: 100, 200, 300, 400, 500

Otra de nodesize: 3, 6, 10

Con esto tienes 15 combinaciones.

Vamos al c�digo. Simplemente crea una lista donde metes los resultados (y
tienes que a�adir los par�metros, que has omitido)

Despu�s graficas usando un mapa de c

Re: [R-es] CV en R

2017-06-02 Por tema Isidro Hidalgo Arellano
No, llega un momento en el que m�s �rboles no te supone mejor�a, e incluso
funciona peor. Que funcione peor lo atribuyo al ruido, porque en teor�a no
tiene mucho sentido, la verdad... Pero no he probado a coger m�s �rboles de
los "necesarios". Lo probar�� 

Un saludo

 

De: Jes�s Para Fern�ndez [mailto:j.para.fernan...@hotmail.com] 
Enviado el: viernes, 02 de junio de 2017 14:54
Para: Isidro Hidalgo Arellano ; 'Manuel Sp�nola'

CC: 'Carlos Ortega' ; 'Lista R'

Asunto: Re: [R-es] CV en R

 

Si, de eso soy consciente. Normalmente cuantos m�s arboles cojas es mejor
no? el problema es que se incrementa el tiempo de computaci�n...

 

  _  

De: Isidro Hidalgo Arellano mailto:ihida...@jccm.es> >
Enviado: viernes, 2 de junio de 2017 14:50
Para: 'Manuel Sp�nola'
Cc: 'Jes�s Para Fern�ndez'; 'Carlos Ortega'; 'Lista R'
Asunto: RE: [R-es] CV en R 

 

El algoritmo en s� no, pero si quieres ajustar los par�metros (n�mero de
�rboles, tama�o del nodo, etc.) hay que hacerlo.

En la pr�ctica te puedo asegurar que hay diferencia entre usar 500 �rboles o
100, igual que el tama�o del nodo que cojas; afinar los par�metros puede
suponer ajustar bastante los resultados.

Un saludo

 

 

Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejer�a de Econom�a, Empresas y Empleo

http://www.castillalamancha.es/


  Inicio | Gobierno de Castilla-La Mancha

www.castillalamancha.es  

Web oficial del gobierno auton�mico de Castilla-La Mancha con informaci�n
sobre actividad administrativa, econom�a, educaci�n, sanidad, servicios
sociales, sede ...

 

 

 

 

De: Manuel Sp�nola [mailto:mspinol...@gmail.com] 
Enviado el: viernes, 02 de junio de 2017 14:42
Para: Isidro Hidalgo Arellano mailto:ihida...@jccm.es> >
CC: Jes�s Para Fern�ndez mailto:j.para.fernan...@hotmail.com> >; Carlos Ortega
mailto:c...@qualityexcellence.es> >; Lista R
mailto:r-help-es@r-project.org> >
Asunto: Re: [R-es] CV en R

 

Hola,

 

No soy un experto en estas t�cnicas, pero hasta donde yo se, el algoritmo
Random Forest no requiere cross validation.

 

Lo dice el mismo Leo Breiman que creo ha sido uno de los investigadores que
m�s ha contribuido al desarrollo de Random Forest
(https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm)


  Random
forests - classification description

www.stat.berkeley.edu  

Contents. Introduction Overview Features of random forests Remarks How
Random Forests work The oob error estimate Variable importance Gini
importance

 

 

Manuel

 

El 2 de junio de 2017, 6:35, Isidro Hidalgo Arellano mailto:ihida...@jccm.es> > escribi�:

Una vez que tienes la t�cnica y los par�metros �ptimos resultantes de la
validaci�n cruzada, ya tienes el modelo que necesitas, NO tienes que hacer
nada m�s. Si vuelves a modelar con todos los datos todo el trabajo de
validaci�n que has hecho lo env�as a hacer g�rgaras. Estar�as construyendo
un modelo con sobreajuste.



Para quedarte tranquilo, haz la prueba, coge el modelo resultante de la
validaci�n y ve aplic�ndolo a los nuevos datos. Haz lo mismo con el que
obtengas de �se paso final que NO debes dar, y que no te he puesto en mi
c�digo corregido, a saber:

modelo.final<-randomForest(respuesta~.,datos)



Cuando los aplicas con los nuevos datos, �cu�l funciona mejor?



Un saludo





Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejer�a de Econom�a, Empresas y Empleo

http://www.castillalamancha.es/







De: Jes�s Para Fern�ndez [mailto:j.para.fernan...@hotmail.com
 ]
Enviado el: viernes, 02 de junio de 2017 14:21
Para: Carlos Ortega mailto:c...@qualityexcellence.es> >
CC: Lista R mailto:r-help-es@r-project.org> >;
Isidro Hidalgo Arellano
mailto:ihida...@jccm.es> >
Asunto: Re: [R-es] CV en R



Pero creo que hay un concepto que no termina de aclararse.



Creo que lo importante es quedarse con el modelo bueno, por ejemplo,
imaginemos que queremos probar los siguientes algoritmos: RF, SVM, KNN,
LDA



Entonces hacemos lo siguiente:



Probamos con todos ellos, para lo que se hacen particiones:



Imaginemos que tengo un datasheet llamado datos, perfectamnte balanceado,
sin datos faltantes, ni ruido ni nada asi. Entonces:



for(i in 1:10){

train #saco el train de los datos

test #saco el test de los datos

pruebo RF, con diferentes configuaraciones (bucles j,k)

pruebo SVM, con diferentes configuaraciones (bucles j,k)

pruebo KNN

pruebo LDA



guardo resultados



}



y sobre el que mejor de, entonces ya creo el modelo definitivo, con el
conjunto de datos global. Si fuera un randomForest



randomForest(respuesta~.,ntree=500,nodesize=4,datos)



Y ese es mi modelo para los proximos daots que vengan yq ue no han formado
parte del datasheet datos



  _

De: Carlos Ortega <  >
c...@q

Re: [R-es] CV en R

2017-06-02 Por tema Isidro Hidalgo Arellano
Si te fijas, los mismos autores te indican que mires qué parámetros se ajustan 
mejor:

https://www.stat.berkeley.edu/~breiman/RandomForests/cc_manual.htm#l2

 

Un saludo

 

Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejería de Economía, Empresas y Empleo

http://www.castillalamancha.es/



 

De: Isidro Hidalgo Arellano [mailto:ihida...@jccm.es] 
Enviado el: viernes, 02 de junio de 2017 14:50
Para: 'Manuel Spínola' 
CC: 'Jesús Para Fernández' ; 'Carlos Ortega' 
; 'Lista R' 
Asunto: RE: [R-es] CV en R

 

El algoritmo en sí no, pero si quieres ajustar los parámetros (número de 
árboles, tamaño del nodo, etc.) hay que hacerlo.

En la práctica te puedo asegurar que hay diferencia entre usar 500 árboles o 
100, igual que el tamaño del nodo que cojas; afinar los parámetros puede 
suponer ajustar bastante los resultados.

Un saludo

 

 

Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejería de Economía, Empresas y Empleo

http://www.castillalamancha.es/



 

 

De: Manuel Spínola [mailto:mspinol...@gmail.com] 
Enviado el: viernes, 02 de junio de 2017 14:42
Para: Isidro Hidalgo Arellano mailto:ihida...@jccm.es> >
CC: Jesús Para Fernández mailto:j.para.fernan...@hotmail.com> >; Carlos Ortega 
mailto:c...@qualityexcellence.es> >; Lista R 
mailto:r-help-es@r-project.org> >
Asunto: Re: [R-es] CV en R

 

Hola,

 

No soy un experto en estas técnicas, pero hasta donde yo se, el algoritmo 
Random Forest no requiere cross validation.

 

Lo dice el mismo Leo Breiman que creo ha sido uno de los investigadores que más 
ha contribuido al desarrollo de Random Forest 
(https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm)

 

Manuel

 

El 2 de junio de 2017, 6:35, Isidro Hidalgo Arellano mailto:ihida...@jccm.es> > escribió:

Una vez que tienes la técnica y los parámetros óptimos resultantes de la
validación cruzada, ya tienes el modelo que necesitas, NO tienes que hacer
nada más. Si vuelves a modelar con todos los datos todo el trabajo de
validación que has hecho lo envías a hacer gárgaras. Estarías construyendo
un modelo con sobreajuste.



Para quedarte tranquilo, haz la prueba, coge el modelo resultante de la
validación y ve aplicándolo a los nuevos datos. Haz lo mismo con el que
obtengas de ése paso final que NO debes dar, y que no te he puesto en mi
código corregido, a saber:

modelo.final<-randomForest(respuesta~.,datos)



Cuando los aplicas con los nuevos datos, ¿cuál funciona mejor?



Un saludo





Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejería de Economía, Empresas y Empleo

http://www.castillalamancha.es/







De: Jesús Para Fernández [mailto:j.para.fernan...@hotmail.com 
 ]
Enviado el: viernes, 02 de junio de 2017 14:21
Para: Carlos Ortega mailto:c...@qualityexcellence.es> >
CC: Lista R mailto:r-help-es@r-project.org> >; Isidro 
Hidalgo Arellano
mailto:ihida...@jccm.es> >
Asunto: Re: [R-es] CV en R



Pero creo que hay un concepto que no termina de aclararse.



Creo que lo importante es quedarse con el modelo bueno, por ejemplo,
imaginemos que queremos probar los siguientes algoritmos: RF, SVM, KNN,
LDA



Entonces hacemos lo siguiente:



Probamos con todos ellos, para lo que se hacen particiones:



Imaginemos que tengo un datasheet llamado datos, perfectamnte balanceado,
sin datos faltantes, ni ruido ni nada asi. Entonces:



for(i in 1:10){

train #saco el train de los datos

test #saco el test de los datos

pruebo RF, con diferentes configuaraciones (bucles j,k)

pruebo SVM, con diferentes configuaraciones (bucles j,k)

pruebo KNN

pruebo LDA



guardo resultados



}



y sobre el que mejor de, entonces ya creo el modelo definitivo, con el
conjunto de datos global. Si fuera un randomForest



randomForest(respuesta~.,ntree=500,nodesize=4,datos)



Y ese es mi modelo para los proximos daots que vengan yq ue no han formado
parte del datasheet datos



  _

De: Carlos Ortega <  >
c...@qualityexcellence.es  >
Enviado: viernes, 2 de junio de 2017 13:11
Para: Jesús Para Fernández
Cc: Lista R; Isidro Hidalgo Arellano
Asunto: Re: [R-es] CV en R



Hola,



Eso es justamente lo que hace "caret" de una manera muy sencilla y sin que
tú te tengas que preocupar de quedarte con el mejor bucket  (del CV) o con
la mejor combinación en tu "grid search".



Te recomiendo que uses "caret" para esto

Puedes incluso evaluar los dos algoritmos "RF" y "svm" a la vez y conocer
realmente el nivel de precisión que ofrecen ambos.

Y claro, inicialmente puedes elegir el conjunto de entrenamiento sobre el
que haces el CV dejando el resto "test" para validar el nivel de predicción.



Gracias,

Carlos Ortega

  www.qu

Re: [R-es] CV en R

2017-06-02 Por tema Isidro Hidalgo Arellano
El algoritmo en sí no, pero si quieres ajustar los parámetros (número de 
árboles, tamaño del nodo, etc.) hay que hacerlo.

En la práctica te puedo asegurar que hay diferencia entre usar 500 árboles o 
100, igual que el tamaño del nodo que cojas; afinar los parámetros puede 
suponer ajustar bastante los resultados.

Un saludo

 

 

Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejería de Economía, Empresas y Empleo

http://www.castillalamancha.es/

 

 

 

De: Manuel Spínola [mailto:mspinol...@gmail.com] 
Enviado el: viernes, 02 de junio de 2017 14:42
Para: Isidro Hidalgo Arellano 
CC: Jesús Para Fernández ; Carlos Ortega 
; Lista R 
Asunto: Re: [R-es] CV en R

 

Hola,

 

No soy un experto en estas técnicas, pero hasta donde yo se, el algoritmo 
Random Forest no requiere cross validation.

 

Lo dice el mismo Leo Breiman que creo ha sido uno de los investigadores que más 
ha contribuido al desarrollo de Random Forest 
(https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm)

 

Manuel

 

El 2 de junio de 2017, 6:35, Isidro Hidalgo Arellano mailto:ihida...@jccm.es> > escribió:

Una vez que tienes la técnica y los parámetros óptimos resultantes de la
validación cruzada, ya tienes el modelo que necesitas, NO tienes que hacer
nada más. Si vuelves a modelar con todos los datos todo el trabajo de
validación que has hecho lo envías a hacer gárgaras. Estarías construyendo
un modelo con sobreajuste.



Para quedarte tranquilo, haz la prueba, coge el modelo resultante de la
validación y ve aplicándolo a los nuevos datos. Haz lo mismo con el que
obtengas de ése paso final que NO debes dar, y que no te he puesto en mi
código corregido, a saber:

modelo.final<-randomForest(respuesta~.,datos)



Cuando los aplicas con los nuevos datos, ¿cuál funciona mejor?



Un saludo





Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejería de Economía, Empresas y Empleo

http://www.castillalamancha.es/







De: Jesús Para Fernández [mailto:j.para.fernan...@hotmail.com 
 ]
Enviado el: viernes, 02 de junio de 2017 14:21
Para: Carlos Ortega mailto:c...@qualityexcellence.es> >
CC: Lista R mailto:r-help-es@r-project.org> >; Isidro 
Hidalgo Arellano
mailto:ihida...@jccm.es> >
Asunto: Re: [R-es] CV en R



Pero creo que hay un concepto que no termina de aclararse.



Creo que lo importante es quedarse con el modelo bueno, por ejemplo,
imaginemos que queremos probar los siguientes algoritmos: RF, SVM, KNN,
LDA



Entonces hacemos lo siguiente:



Probamos con todos ellos, para lo que se hacen particiones:



Imaginemos que tengo un datasheet llamado datos, perfectamnte balanceado,
sin datos faltantes, ni ruido ni nada asi. Entonces:



for(i in 1:10){

train #saco el train de los datos

test #saco el test de los datos

pruebo RF, con diferentes configuaraciones (bucles j,k)

pruebo SVM, con diferentes configuaraciones (bucles j,k)

pruebo KNN

pruebo LDA



guardo resultados



}



y sobre el que mejor de, entonces ya creo el modelo definitivo, con el
conjunto de datos global. Si fuera un randomForest



randomForest(respuesta~.,ntree=500,nodesize=4,datos)



Y ese es mi modelo para los proximos daots que vengan yq ue no han formado
parte del datasheet datos



  _

De: Carlos Ortega <  >
c...@qualityexcellence.es  >
Enviado: viernes, 2 de junio de 2017 13:11
Para: Jesús Para Fernández
Cc: Lista R; Isidro Hidalgo Arellano
Asunto: Re: [R-es] CV en R



Hola,



Eso es justamente lo que hace "caret" de una manera muy sencilla y sin que
tú te tengas que preocupar de quedarte con el mejor bucket  (del CV) o con
la mejor combinación en tu "grid search".



Te recomiendo que uses "caret" para esto

Puedes incluso evaluar los dos algoritmos "RF" y "svm" a la vez y conocer
realmente el nivel de precisión que ofrecen ambos.

Y claro, inicialmente puedes elegir el conjunto de entrenamiento sobre el
que haces el CV dejando el resto "test" para validar el nivel de predicción.



Gracias,

Carlos Ortega

  www.qualityexcellence.es 
 


  QualityExcellence

  www.qualityexcellence.es 
 

QUALITY EXCELLENCE, consultores en calidad, procesos y mejora continua





El 2 de junio de 2017, 13:06, Isidro Hidalgo Arellano <
 > ihida...@jccm.es 
 > escribió:


No me has parecido para nada borde.



Ok. Centrémonos en RF y bajemos el nº de parámetros a 2: ntree y nodesize.

Te haces una parrilla de ntree: 100, 200, 300, 400, 500

Otra de nodesize: 3, 6, 10

Con esto tienes 15 combinaciones.

Vamos al código. Simplemente crea una lista donde metes los resultados (y
tienes que añadir los parámetros, que has omitido)

Despué

Re: [R-es] CV en R

2017-06-02 Por tema Manuel Spínola
Hola,

No soy un experto en estas técnicas, pero hasta donde yo se, el algoritmo
Random Forest no requiere cross validation.

Lo dice el mismo Leo Breiman que creo ha sido uno de los investigadores que
más ha contribuido al desarrollo de Random Forest (
https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm)

Manuel

El 2 de junio de 2017, 6:35, Isidro Hidalgo Arellano 
escribió:

> Una vez que tienes la técnica y los parámetros óptimos resultantes de la
> validación cruzada, ya tienes el modelo que necesitas, NO tienes que hacer
> nada más. Si vuelves a modelar con todos los datos todo el trabajo de
> validación que has hecho lo envías a hacer gárgaras. Estarías construyendo
> un modelo con sobreajuste.
>
>
>
> Para quedarte tranquilo, haz la prueba, coge el modelo resultante de la
> validación y ve aplicándolo a los nuevos datos. Haz lo mismo con el que
> obtengas de ése paso final que NO debes dar, y que no te he puesto en mi
> código corregido, a saber:
>
> modelo.final<-randomForest(respuesta~.,datos)
>
>
>
> Cuando los aplicas con los nuevos datos, ¿cuál funciona mejor?
>
>
>
> Un saludo
>
>
>
>
>
> Isidro Hidalgo Arellano
>
> Observatorio del Mercado de Trabajo
>
> Consejería de Economía, Empresas y Empleo
>
> http://www.castillalamancha.es/
>
>
>
>
>
>
>
> De: Jesús Para Fernández [mailto:j.para.fernan...@hotmail.com]
> Enviado el: viernes, 02 de junio de 2017 14:21
> Para: Carlos Ortega 
> CC: Lista R ; Isidro Hidalgo Arellano
> 
> Asunto: Re: [R-es] CV en R
>
>
>
> Pero creo que hay un concepto que no termina de aclararse.
>
>
>
> Creo que lo importante es quedarse con el modelo bueno, por ejemplo,
> imaginemos que queremos probar los siguientes algoritmos: RF, SVM, KNN,
> LDA
>
>
>
> Entonces hacemos lo siguiente:
>
>
>
> Probamos con todos ellos, para lo que se hacen particiones:
>
>
>
> Imaginemos que tengo un datasheet llamado datos, perfectamnte balanceado,
> sin datos faltantes, ni ruido ni nada asi. Entonces:
>
>
>
> for(i in 1:10){
>
> train #saco el train de los datos
>
> test #saco el test de los datos
>
> pruebo RF, con diferentes configuaraciones (bucles j,k)
>
> pruebo SVM, con diferentes configuaraciones (bucles j,k)
>
> pruebo KNN
>
> pruebo LDA
>
>
>
> guardo resultados
>
>
>
> }
>
>
>
> y sobre el que mejor de, entonces ya creo el modelo definitivo, con el
> conjunto de datos global. Si fuera un randomForest
>
>
>
> randomForest(respuesta~.,ntree=500,nodesize=4,datos)
>
>
>
> Y ese es mi modelo para los proximos daots que vengan yq ue no han formado
> parte del datasheet datos
>
>
>
>   _
>
> De: Carlos Ortega < 
> c...@qualityexcellence.es>
> Enviado: viernes, 2 de junio de 2017 13:11
> Para: Jesús Para Fernández
> Cc: Lista R; Isidro Hidalgo Arellano
> Asunto: Re: [R-es] CV en R
>
>
>
> Hola,
>
>
>
> Eso es justamente lo que hace "caret" de una manera muy sencilla y sin que
> tú te tengas que preocupar de quedarte con el mejor bucket  (del CV) o con
> la mejor combinación en tu "grid search".
>
>
>
> Te recomiendo que uses "caret" para esto
>
> Puedes incluso evaluar los dos algoritmos "RF" y "svm" a la vez y conocer
> realmente el nivel de precisión que ofrecen ambos.
>
> Y claro, inicialmente puedes elegir el conjunto de entrenamiento sobre el
> que haces el CV dejando el resto "test" para validar el nivel de
> predicción.
>
>
>
> Gracias,
>
> Carlos Ortega
>
>   www.qualityexcellence.es
>
>
>   QualityExcellence
>
>   www.qualityexcellence.es
>
> QUALITY EXCELLENCE, consultores en calidad, procesos y mejora continua
>
>
>
>
>
> El 2 de junio de 2017, 13:06, Isidro Hidalgo Arellano <
>  ihida...@jccm.es> escribió:
>
> No me has parecido para nada borde.
>
>
>
> Ok. Centrémonos en RF y bajemos el nº de parámetros a 2: ntree y nodesize.
>
> Te haces una parrilla de ntree: 100, 200, 300, 400, 500
>
> Otra de nodesize: 3, 6, 10
>
> Con esto tienes 15 combinaciones.
>
> Vamos al código. Simplemente crea una lista donde metes los resultados (y
> tienes que añadir los parámetros, que has omitido)
>
> Después graficas usando un mapa de calor para ver qué combinación de
> parámetros te da el mejor resultado (en abscisas ntree y en ordenadas
> nodesize). Una vez que veas los intervalos de parámetros que mejor se
> comportan, afinas el resultado con otra validación cruzada:
>
>
>
> for(i in 1:15){
>
>
>
> numeros<-sample(1:1500,1500*0.7)
>
>
>
> train<-datos[numeros,]
>
>
>
> test<-datos[-numeros,]
>
>
>
>
>
> #modeloRF
>
>
>
> resultadoRF <- list()
>
>
>
> modelo.rf<-randomForest(respuesta~,train)
>
>
>
> prediccion<-predict(modelo.rf,test)
>
>
>
> fp<-table(prediccion,test$respuesta)[2,1]
>
> fn<-table(prediccion,test$respuesta)[1,2]
>
> error<-(fp+fn)/nrow(train.balanceado)
>
> resultadoRF[[i]]<-rbind(resultado,data.frame(error=error,modelo="rf"))
>
>
>
> #modelo SVM
>
>
>
> resultadoSVM <- list()
>
>
>
> 

Re: [R-es] CV en R

2017-06-02 Por tema Isidro Hidalgo Arellano
Una vez que tienes la t�cnica y los par�metros �ptimos resultantes de la
validaci�n cruzada, ya tienes el modelo que necesitas, NO tienes que hacer
nada m�s. Si vuelves a modelar con todos los datos todo el trabajo de
validaci�n que has hecho lo env�as a hacer g�rgaras. Estar�as construyendo
un modelo con sobreajuste.

 

Para quedarte tranquilo, haz la prueba, coge el modelo resultante de la
validaci�n y ve aplic�ndolo a los nuevos datos. Haz lo mismo con el que
obtengas de �se paso final que NO debes dar, y que no te he puesto en mi
c�digo corregido, a saber:

modelo.final<-randomForest(respuesta~.,datos)

 

Cuando los aplicas con los nuevos datos, �cu�l funciona mejor?

 

Un saludo

 

 

Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejer�a de Econom�a, Empresas y Empleo

http://www.castillalamancha.es/

 

 

 

De: Jes�s Para Fern�ndez [mailto:j.para.fernan...@hotmail.com] 
Enviado el: viernes, 02 de junio de 2017 14:21
Para: Carlos Ortega 
CC: Lista R ; Isidro Hidalgo Arellano

Asunto: Re: [R-es] CV en R

 

Pero creo que hay un concepto que no termina de aclararse. 

 

Creo que lo importante es quedarse con el modelo bueno, por ejemplo,
imaginemos que queremos probar los siguientes algoritmos: RF, SVM, KNN,
LDA

 

Entonces hacemos lo siguiente:

 

Probamos con todos ellos, para lo que se hacen particiones:

 

Imaginemos que tengo un datasheet llamado datos, perfectamnte balanceado,
sin datos faltantes, ni ruido ni nada asi. Entonces:

 

for(i in 1:10){

train #saco el train de los datos

test #saco el test de los datos

pruebo RF, con diferentes configuaraciones (bucles j,k)

pruebo SVM, con diferentes configuaraciones (bucles j,k)

pruebo KNN

pruebo LDA

 

guardo resultados

 

}

 

y sobre el que mejor de, entonces ya creo el modelo definitivo, con el
conjunto de datos global. Si fuera un randomForest

 

randomForest(respuesta~.,ntree=500,nodesize=4,datos)

 

Y ese es mi modelo para los proximos daots que vengan yq ue no han formado
parte del datasheet datos

 

  _  

De: Carlos Ortega < 
c...@qualityexcellence.es>
Enviado: viernes, 2 de junio de 2017 13:11
Para: Jes�s Para Fern�ndez
Cc: Lista R; Isidro Hidalgo Arellano
Asunto: Re: [R-es] CV en R 

 

Hola,

 

Eso es justamente lo que hace "caret" de una manera muy sencilla y sin que
t� te tengas que preocupar de quedarte con el mejor bucket  (del CV) o con
la mejor combinaci�n en tu "grid search".

 

Te recomiendo que uses "caret" para esto

Puedes incluso evaluar los dos algoritmos "RF" y "svm" a la vez y conocer
realmente el nivel de precisi�n que ofrecen ambos.

Y claro, inicialmente puedes elegir el conjunto de entrenamiento sobre el
que haces el CV dejando el resto "test" para validar el nivel de predicci�n.

 

Gracias,

Carlos Ortega

  www.qualityexcellence.es


  QualityExcellence

  www.qualityexcellence.es

QUALITY EXCELLENCE, consultores en calidad, procesos y mejora continua

 

 

El 2 de junio de 2017, 13:06, Isidro Hidalgo Arellano <
 ihida...@jccm.es> escribi�:

No me has parecido para nada borde.



Ok. Centr�monos en RF y bajemos el n� de par�metros a 2: ntree y nodesize.

Te haces una parrilla de ntree: 100, 200, 300, 400, 500

Otra de nodesize: 3, 6, 10

Con esto tienes 15 combinaciones.

Vamos al c�digo. Simplemente crea una lista donde metes los resultados (y
tienes que a�adir los par�metros, que has omitido)

Despu�s graficas usando un mapa de calor para ver qu� combinaci�n de
par�metros te da el mejor resultado (en abscisas ntree y en ordenadas
nodesize). Una vez que veas los intervalos de par�metros que mejor se
comportan, afinas el resultado con otra validaci�n cruzada:



for(i in 1:15){



numeros<-sample(1:1500,1500*0.7)



train<-datos[numeros,]



test<-datos[-numeros,]





#modeloRF



resultadoRF <- list()



modelo.rf<-randomForest(respuesta~,train)



prediccion<-predict(modelo.rf,test)



fp<-table(prediccion,test$respuesta)[2,1]

fn<-table(prediccion,test$respuesta)[1,2]

error<-(fp+fn)/nrow(train.balanceado)

resultadoRF[[i]]<-rbind(resultado,data.frame(error=error,modelo="rf"))



#modelo SVM



resultadoSVM <- list()



modelo.svm<-svm(respuesta~,train)



prediccion<-predict(modelo.svm,test)



fp<-table(prediccion,test$respuesta)[2,1]

fn<-table(prediccion,test$respuesta)[1,2]

error<-(fp+fn)/nrow(train.balanceado)

resultadoSVM[[i]]<-rbind(resultado,data.frame(error=error,modelo="svm"))



}



Un saludo



Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejer�a de Econom�a, Empresas y Empleo

  http://www.castillalamancha.es/







De: Jes�s Para Fern�ndez [mailto: 
j.para.fernan...@hotmail.com]
Enviado el: viernes, 02 de junio de 2017 12:50
Para: Isidro Hidalgo Arellano <  ihida...@jccm.

Re: [R-es] CV en R

2017-06-02 Por tema Carlos Ortega
Hola,

Eso es justamente lo que hace "caret" de una manera muy sencilla y sin que
tú te tengas que preocupar de quedarte con el mejor bucket  (del CV) o con
la mejor combinación en tu "grid search".

Te recomiendo que uses "caret" para esto
Puedes incluso evaluar los dos algoritmos "RF" y "svm" a la vez y conocer
realmente el nivel de precisión que ofrecen ambos.
Y claro, inicialmente puedes elegir el conjunto de entrenamiento sobre el
que haces el CV dejando el resto "test" para validar el nivel de predicción.

Gracias,
Carlos Ortega
www.qualityexcellence.es

El 2 de junio de 2017, 13:06, Isidro Hidalgo Arellano 
escribió:

> No me has parecido para nada borde.
>
>
>
> Ok. Centrémonos en RF y bajemos el nº de parámetros a 2: ntree y nodesize.
>
> Te haces una parrilla de ntree: 100, 200, 300, 400, 500
>
> Otra de nodesize: 3, 6, 10
>
> Con esto tienes 15 combinaciones.
>
> Vamos al código. Simplemente crea una lista donde metes los resultados (y
> tienes que añadir los parámetros, que has omitido)
>
> Después graficas usando un mapa de calor para ver qué combinación de
> parámetros te da el mejor resultado (en abscisas ntree y en ordenadas
> nodesize). Una vez que veas los intervalos de parámetros que mejor se
> comportan, afinas el resultado con otra validación cruzada:
>
>
>
> for(i in 1:15){
>
>
>
> numeros<-sample(1:1500,1500*0.7)
>
>
>
> train<-datos[numeros,]
>
>
>
> test<-datos[-numeros,]
>
>
>
>
>
> #modeloRF
>
>
>
> resultadoRF <- list()
>
>
>
> modelo.rf<-randomForest(respuesta~,train)
>
>
>
> prediccion<-predict(modelo.rf,test)
>
>
>
> fp<-table(prediccion,test$respuesta)[2,1]
>
> fn<-table(prediccion,test$respuesta)[1,2]
>
> error<-(fp+fn)/nrow(train.balanceado)
>
> resultadoRF[[i]]<-rbind(resultado,data.frame(error=error,modelo="rf"))
>
>
>
> #modelo SVM
>
>
>
> resultadoSVM <- list()
>
>
>
> modelo.svm<-svm(respuesta~,train)
>
>
>
> prediccion<-predict(modelo.svm,test)
>
>
>
> fp<-table(prediccion,test$respuesta)[2,1]
>
> fn<-table(prediccion,test$respuesta)[1,2]
>
> error<-(fp+fn)/nrow(train.balanceado)
>
> resultadoSVM[[i]]<-rbind(resultado,data.frame(error=error,modelo="svm"))
>
>
>
> }
>
>
>
> Un saludo
>
>
>
> Isidro Hidalgo Arellano
>
> Observatorio del Mercado de Trabajo
>
> Consejería de Economía, Empresas y Empleo
>
> http://www.castillalamancha.es/
>
>
>
>
>
>
>
> De: Jesús Para Fernández [mailto:j.para.fernan...@hotmail.com]
> Enviado el: viernes, 02 de junio de 2017 12:50
> Para: Isidro Hidalgo Arellano ; r-help-es@r-project.org
> Asunto: Re: [R-es] CV en R
>
>
>
> Buenas,
>
>
>
> Puse los modelos lo mas simplificados, para centrar el tiro en el tema que
> me preocupa.
>
>
>
> Es una pena no poder hablar cara a cara, porque por email puedo sonar algo
> borde, pero no es así, al contrario estoy enormemente agradecido por tu
> ayuda, pero le veo un problema.
>
> Me dices que use un list para ir guardando el modelo, pero tal y como he
> propuesto en el bucle for, el modelo se crea 10 veces, es decir, que
> entiendo que si es un randomForest, tendria que entonces hacer una
> combinacion de esos 10 modelos con la funcion combine de RF para unir esos
> modelos, verdad?? Porque sino estaria en el mismo problema, generando un
> modelo generalista de una simple submuestra de los datos.
>
>
>
> Gracias por todo!!!
>
> Jesús
>
>
>
>   _
>
> De: Isidro Hidalgo Arellano mailto:ihida...@jccm.es> >
> Enviado: viernes, 2 de junio de 2017 12:28
> Para: 'Jesús Para Fernández'; r-help-es@r-project.org
> 
> Asunto: RE: [R-es] CV en R
>
>
>
> No me había fijado en el código, te había he contestado teóricamente.
>
> A ver, en ese código tienes varios problemas:
>
> -  No especificas los parámetros del modelo (para eso es la
> validación cruzada). En RF tendrías que especificar el número de árboles,
> la
> cantidad de puntos con los que acotar la regresión, etc. En SVM el tipo de
> kernel que vas a usar, la sensibilidad… NO SE TRATA SÓLO de hacer modelos
> con diferentes conjuntos de entrenamiento, sino de buscar los parámetros
> que
> mejor ajustan los datos.
>
> Te pongo un ejemplo: imagínate que tienes mucho ruido, en ese caso, en cada
> punto de regresión, tendrás que tomar un número de puntos mayor (parámetro
> "nodesize")
>
> -  Respecto a no guardar los modelos, es muy fácil con una lista.
> Cada modelo que hagas, guárdalo en un lista, junto con los datos de
> resultados que quieras (incluyendo los parámetros de especificación del
> modelo)
>
> Te recomiendo 2 cosas:
>
> -  Usa el paquete caret
>
> -  Lee este libro:
> https://link.springer.com/book/10.1007/978-1-4614-6849-3
>
> Con el libro matas varios pájaros de un tiro:
>
> -  Aprendes algo de teoría (poca), que siempre viene bien
>
> -  El autor es el creador del paquete caret
>
> Si tienes tiempo, yo buscaría un curso del MIT que es muy bueno, aunque de
> los duros, te lo tienes que programar casi todo desde 0, pero cuando
> acabas,
> la teoría (con ést

Re: [R-es] CV en R

2017-06-02 Por tema Isidro Hidalgo Arellano
No me has parecido para nada borde.

 

Ok. Centr�monos en RF y bajemos el n� de par�metros a 2: ntree y nodesize.

Te haces una parrilla de ntree: 100, 200, 300, 400, 500

Otra de nodesize: 3, 6, 10

Con esto tienes 15 combinaciones.

Vamos al c�digo. Simplemente crea una lista donde metes los resultados (y
tienes que a�adir los par�metros, que has omitido)

Despu�s graficas usando un mapa de calor para ver qu� combinaci�n de
par�metros te da el mejor resultado (en abscisas ntree y en ordenadas
nodesize). Una vez que veas los intervalos de par�metros que mejor se
comportan, afinas el resultado con otra validaci�n cruzada:

 

for(i in 1:15){

 

numeros<-sample(1:1500,1500*0.7)

 

train<-datos[numeros,]

 

test<-datos[-numeros,]

 

 

#modeloRF

 

resultadoRF <- list()

 

modelo.rf<-randomForest(respuesta~,train)

 

prediccion<-predict(modelo.rf,test)

 

fp<-table(prediccion,test$respuesta)[2,1]

fn<-table(prediccion,test$respuesta)[1,2]

error<-(fp+fn)/nrow(train.balanceado)

resultadoRF[[i]]<-rbind(resultado,data.frame(error=error,modelo="rf"))

 

#modelo SVM

 

resultadoSVM <- list()

 

modelo.svm<-svm(respuesta~,train)

 

prediccion<-predict(modelo.svm,test)

 

fp<-table(prediccion,test$respuesta)[2,1]

fn<-table(prediccion,test$respuesta)[1,2]

error<-(fp+fn)/nrow(train.balanceado)

resultadoSVM[[i]]<-rbind(resultado,data.frame(error=error,modelo="svm"))

 

}

 

Un saludo

 

Isidro Hidalgo Arellano

Observatorio del Mercado de Trabajo

Consejer�a de Econom�a, Empresas y Empleo

http://www.castillalamancha.es/

 

 

 

De: Jes�s Para Fern�ndez [mailto:j.para.fernan...@hotmail.com] 
Enviado el: viernes, 02 de junio de 2017 12:50
Para: Isidro Hidalgo Arellano ; r-help-es@r-project.org
Asunto: Re: [R-es] CV en R

 

Buenas, 

 

Puse los modelos lo mas simplificados, para centrar el tiro en el tema que
me preocupa. 

 

Es una pena no poder hablar cara a cara, porque por email puedo sonar algo
borde, pero no es as�, al contrario estoy enormemente agradecido por tu
ayuda, pero le veo un problema. 

Me dices que use un list para ir guardando el modelo, pero tal y como he
propuesto en el bucle for, el modelo se crea 10 veces, es decir, que
entiendo que si es un randomForest, tendria que entonces hacer una
combinacion de esos 10 modelos con la funcion combine de RF para unir esos
modelos, verdad?? Porque sino estaria en el mismo problema, generando un
modelo generalista de una simple submuestra de los datos. 

 

Gracias por todo!!!

Jes�s

 

  _  

De: Isidro Hidalgo Arellano mailto:ihida...@jccm.es> >
Enviado: viernes, 2 de junio de 2017 12:28
Para: 'Jes�s Para Fern�ndez'; r-help-es@r-project.org
 
Asunto: RE: [R-es] CV en R 

 

No me hab�a fijado en el c�digo, te hab�a he contestado te�ricamente.

A ver, en ese c�digo tienes varios problemas:

-  No especificas los par�metros del modelo (para eso es la
validaci�n cruzada). En RF tendr�as que especificar el n�mero de �rboles, la
cantidad de puntos con los que acotar la regresi�n, etc. En SVM el tipo de
kernel que vas a usar, la sensibilidad� NO SE TRATA S�LO de hacer modelos
con diferentes conjuntos de entrenamiento, sino de buscar los par�metros que
mejor ajustan los datos.

Te pongo un ejemplo: imag�nate que tienes mucho ruido, en ese caso, en cada
punto de regresi�n, tendr�s que tomar un n�mero de puntos mayor (par�metro
"nodesize")

-  Respecto a no guardar los modelos, es muy f�cil con una lista.
Cada modelo que hagas, gu�rdalo en un lista, junto con los datos de
resultados que quieras (incluyendo los par�metros de especificaci�n del
modelo)

Te recomiendo 2 cosas:

-  Usa el paquete caret

-  Lee este libro:
https://link.springer.com/book/10.1007/978-1-4614-6849-3

Con el libro matas varios p�jaros de un tiro:

-  Aprendes algo de teor�a (poca), que siempre viene bien

-  El autor es el creador del paquete caret

Si tienes tiempo, yo buscar�a un curso del MIT que es muy bueno, aunque de
los duros, te lo tienes que programar casi todo desde 0, pero cuando acabas,
la teor�a (con �ste s�) la has machacado bastante bien, y sabes lo que hace
un SVM, un RF. Es �ste:
https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs115
6x


 
 

 
 Learning From Data (Introductory Machine Learning) | edX

www.edx.org  

Introductory Machine Learning course covering theory, algorithms and
applications. Our focus is on real understanding, not just "knowing."

 

Tiene un libro asociado que est� muy bien tambi�n.

Si te da miedito, hay otro m�s suave, de los cl�sicos Hastie y Tibshirani:
https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter
2016/about


 
 Statisti

Re: [R-es] CV en R

2017-06-02 Por tema Isidro Hidalgo Arellano
No me hab�a fijado en el c�digo, te hab�a he contestado te�ricamente.

A ver, en ese c�digo tienes varios problemas:

-  No especificas los par�metros del modelo (para eso es la
validaci�n cruzada). En RF tendr�as que especificar el n�mero de �rboles, la
cantidad de puntos con los que acotar la regresi�n, etc. En SVM el tipo de
kernel que vas a usar, la sensibilidad� NO SE TRATA S�LO de hacer modelos
con diferentes conjuntos de entrenamiento, sino de buscar los par�metros que
mejor ajustan los datos.

Te pongo un ejemplo: imag�nate que tienes mucho ruido, en ese caso, en cada
punto de regresi�n, tendr�s que tomar un n�mero de puntos mayor (par�metro
"nodesize")

-  Respecto a no guardar los modelos, es muy f�cil con una lista.
Cada modelo que hagas, gu�rdalo en un lista, junto con los datos de
resultados que quieras (incluyendo los par�metros de especificaci�n del
modelo)

Te recomiendo 2 cosas:

-  Usa el paquete caret

-  Lee este libro:
https://link.springer.com/book/10.1007/978-1-4614-6849-3

Con el libro matas varios p�jaros de un tiro:

-  Aprendes algo de teor�a (poca), que siempre viene bien

-  El autor es el creador del paquete caret

Si tienes tiempo, yo buscar�a un curso del MIT que es muy bueno, aunque de
los duros, te lo tienes que programar casi todo desde 0, pero cuando acabas,
la teor�a (con �ste s�) la has machacado bastante bien, y sabes lo que hace
un SVM, un RF. Es �ste:
https://www.edx.org/course/learning-data-introductory-machine-caltechx-cs115
6x

Tiene un libro asociado que est� muy bien tambi�n.

Si te da miedito, hay otro m�s suave, de los cl�sicos Hastie y Tibshirani:
https://lagunita.stanford.edu/courses/HumanitiesSciences/StatLearning/Winter
2016/about

�stos tambi�n tienen 2 libros muy buenos. El resumido es en el que se basa
el curso anterior.

 

De: Jes�s Para Fern�ndez [mailto:j.para.fernan...@hotmail.com] 
Enviado el: viernes, 02 de junio de 2017 12:04
Para: Isidro Hidalgo Arellano ; r-help-es@r-project.org
Asunto: Re: [R-es] CV en R

 

Es que es justo ahi donde no se como hacerlo. 

Es decir, dentro del bucle for hago las comprobaciones train test, y me da
que de media el mejor es randomForest, pero claro, no me estoy quedando con
el modelo, ya que no se va guardandoEntonces es cuando no se como seguir
para quedarme con ese modelo

 

 

 

 

  _  

De: Isidro Hidalgo Arellano <  ihida...@jccm.es>
Enviado: viernes, 2 de junio de 2017 11:59
Para: 'Jes�s Para Fern�ndez';  
r-help-es@r-project.org
Asunto: RE: [R-es] CV en R 

 

No, no. Si construyes el modelo con todos los datos, expl�came para qu� te
ha servido la validaci�n cruzada... �S�lo para saber si funciona mejor SVM o
RF con ese conjunto de datos? Eso es insuficiente.
Cuando construyes un modelo, lo haces entrenando con datos que el modelo NO
VE, ah� est� la gracia...
Te tienes que quedar con el mejor modelo entrenado. Y despu�s ver c�mo te
funciona en la vida real, es decir, con nuevos datos que el modelo NO HA
VISTO.

Un saludo.


Isidro Hidalgo Arellano
Observatorio del Mercado de Trabajo
Consejer�a de Econom�a, Empresas y Empleo
  http://www.castillalamancha.es/ 


  Inicio | Gobierno de Castilla-La Mancha

  www.castillalamancha.es

Web oficial del gobierno auton�mico de Castilla-La Mancha con informaci�n
sobre actividad administrativa, econom�a, educaci�n, sanidad, servicios
sociales, sede ...






-Mensaje original-
De: R-help-es [ 
mailto:r-help-es-boun...@r-project.org] En nombre de Jes�s
Para Fern�ndez
Enviado el: viernes, 02 de junio de 2017 11:48
Para:   r-help-es@r-project.org
Asunto: [R-es] CV en R

Buenas,


Estoy haciendo modelos y comparando cual es mejor. Para ello, uso CV de 10
folds.


Por ejemplo, hago la comparativa entre un svm y un randomForest para una
serie de datos, por ello hago:


midataset<-import.


#datos es un dataframe de 1500 filas y 15 variables


for(i in 1:10){

numeros<-sample(1:1500,1500*0.7)

train<-datos[numeros,]

test<-datos[-numeros,]


#modeloRF

modelo.rf<-randomForest(respuesta~,train)

prediccion<-predict(modelo.rf,test)

fp<-table(prediccion,test$respuesta)[2,1]
fn<-table(prediccion,test$respuesta)[1,2]
error<-(fp+fn)/nrow(train.balanceado)
resultado<-rbind(resultado,data.frame(error=error,modelo="rf"))

#modelo SVM


modelo.svm<-svm(respuesta~,train)

prediccion<-predict(modelo.svm,test)

fp<-table(prediccion,test$respuesta)[2,1]
fn<-table(prediccion,test$respuesta)[1,2]
error<-(fp+fn)/nrow(train.balanceado)
resultado<-rbind(resultado,data.frame(error=error,modelo="svm"))

}


Mi pregunta es la siguiente. Si el modelo de RF es mejor, como me quedo con
el modelo final? Tengo que crear el modelo de nuevo, sin tener en cuenta el
train?


modelo.final<-randomForest(respu

Re: [R-es] CV en R

2017-06-02 Por tema Isidro Hidalgo Arellano
Abundando en mi respuesta anterior, ni siquiera la validación cruzada es una
medida perfecta del comportamiento del modelo a posteriori porque, aunque lo
has construido con validación cruzada, y has escogido el que mejor se
comporta con datos que "no ve", no sabes (quizá en tu caso sí, pero no tiene
por qué ser así) cómo van a evolucionar los datos en la vida real, siendo
muy posible, que tengas que ir renovando el modelo.

Un saludo.


Isidro Hidalgo Arellano
Observatorio del Mercado de Trabajo
Consejería de Economía, Empresas y Empleo
http://www.castillalamancha.es/




-Mensaje original-
De: Isidro Hidalgo Arellano [mailto:ihida...@jccm.es] 
Enviado el: viernes, 02 de junio de 2017 12:00
Para: 'Jesús Para Fernández' ;
'r-help-es@r-project.org' 
Asunto: RE: [R-es] CV en R

No, no. Si construyes el modelo con todos los datos, explícame para qué te
ha servido la validación cruzada... ¿Sólo para saber si funciona mejor SVM o
RF con ese conjunto de datos? Eso es insuficiente.
Cuando construyes un modelo, lo haces entrenando con datos que el modelo NO
VE, ahí está la gracia...
Te tienes que quedar con el mejor modelo entrenado. Y después ver cómo te
funciona en la vida real, es decir, con nuevos datos que el modelo NO HA
VISTO.

Un saludo.


Isidro Hidalgo Arellano
Observatorio del Mercado de Trabajo
Consejería de Economía, Empresas y Empleo http://www.castillalamancha.es/



-Mensaje original-
De: R-help-es [mailto:r-help-es-boun...@r-project.org] En nombre de Jesús
Para Fernández Enviado el: viernes, 02 de junio de 2017 11:48
Para: r-help-es@r-project.org
Asunto: [R-es] CV en R

Buenas,


Estoy haciendo modelos y comparando cual es mejor. Para ello, uso CV de 10
folds.


Por ejemplo, hago la comparativa entre un svm y un randomForest para una
serie de datos, por ello hago:


midataset<-import.


#datos es un dataframe de 1500 filas y 15 variables


for(i in 1:10){

numeros<-sample(1:1500,1500*0.7)

train<-datos[numeros,]

test<-datos[-numeros,]


#modeloRF

modelo.rf<-randomForest(respuesta~,train)

prediccion<-predict(modelo.rf,test)

fp<-table(prediccion,test$respuesta)[2,1]
fn<-table(prediccion,test$respuesta)[1,2]
error<-(fp+fn)/nrow(train.balanceado)
resultado<-rbind(resultado,data.frame(error=error,modelo="rf"))

#modelo SVM


modelo.svm<-svm(respuesta~,train)

prediccion<-predict(modelo.svm,test)

fp<-table(prediccion,test$respuesta)[2,1]
fn<-table(prediccion,test$respuesta)[1,2]
error<-(fp+fn)/nrow(train.balanceado)
resultado<-rbind(resultado,data.frame(error=error,modelo="svm"))

}


Mi pregunta es la siguiente. Si el modelo de RF es mejor, como me quedo con
el modelo final? Tengo que crear el modelo de nuevo, sin tener en cuenta el
train?


modelo.final<-randomForest(respuesta~.,datos)


Gracias




[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] CV en R

2017-06-02 Por tema Javier Marcuzzi

Estimado Jesús Para Fernández

Usted tiene unos datos que utilizó para entrenar, luego corrió dos modelos, y 
piensa que puede realizar otro modelo sin entrenamiento.

Yo pienso que puede mejorar el modelo y realizar un entrenamiento a este nuevo 
modelo aunque sean los mismos datos, desconozco si puede resolver sin un 
entrenamiento previo, salvo que el algoritmo en caso de no especificarlo tome 
por defecto algunos datos de la muestra en forma predeterminada. En ese caso 
habría que leer la documentación (no lo se).

Aunque usted usa casi lo mismo
train<-datos[numeros,]
test<-datos[-numeros,]

¿Qué pasa si el entrenamiento tiene por colocar cualquier número el 20% de la 
muestra? En un libro sobre aprendizaje estadístico decía que si el 
entrenamiento es muy bueno (como en su caso con los mismos datos y en 
cantidad), el modelo ajusta muy bien, pero al ingresar un solo dato los errores 
son “grandes”, porque el modelo no esta preparado para ninguna otra situación, 
en cambio si se entrena con algunos, digamos como en su caso pero en lugar del 
100 % de los datos el 99%, el modelo estaría “preparado” para recibir un dato 
nuevo. Técnicamente no es todo correcto como lo escribí pero es la idea.

Javier Rubén Marcuzzi

De: Jesús Para Fernández
Enviado: viernes, 2 de junio de 2017 6:48
Para: r-help-es@r-project.org
Asunto: [R-es] CV en R

Buenas,


Estoy haciendo modelos y comparando cual es mejor. Para ello, uso CV de 10 
folds.


Por ejemplo, hago la comparativa entre un svm y un randomForest para una serie 
de datos, por ello hago:


midataset<-import.


#datos es un dataframe de 1500 filas y 15 variables


for(i in 1:10){

numeros<-sample(1:1500,1500*0.7)

train<-datos[numeros,]

test<-datos[-numeros,]


#modeloRF

modelo.rf<-randomForest(respuesta~,train)

prediccion<-predict(modelo.rf,test)

fp<-table(prediccion,test$respuesta)[2,1]
fn<-table(prediccion,test$respuesta)[1,2]
error<-(fp+fn)/nrow(train.balanceado)
resultado<-rbind(resultado,data.frame(error=error,modelo="rf"))

#modelo SVM


modelo.svm<-svm(respuesta~,train)

prediccion<-predict(modelo.svm,test)

fp<-table(prediccion,test$respuesta)[2,1]
fn<-table(prediccion,test$respuesta)[1,2]
error<-(fp+fn)/nrow(train.balanceado)
resultado<-rbind(resultado,data.frame(error=error,modelo="svm"))

}


Mi pregunta es la siguiente. Si el modelo de RF es mejor, como me quedo con el 
modelo final? Tengo que crear el modelo de nuevo, sin tener en cuenta el train?


modelo.final<-randomForest(respuesta~.,datos)


Gracias




[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Re: [R-es] CV en R

2017-06-02 Por tema Isidro Hidalgo Arellano
No, no. Si construyes el modelo con todos los datos, explícame para qué te
ha servido la validación cruzada... ¿Sólo para saber si funciona mejor SVM o
RF con ese conjunto de datos? Eso es insuficiente.
Cuando construyes un modelo, lo haces entrenando con datos que el modelo NO
VE, ahí está la gracia...
Te tienes que quedar con el mejor modelo entrenado. Y después ver cómo te
funciona en la vida real, es decir, con nuevos datos que el modelo NO HA
VISTO.

Un saludo.


Isidro Hidalgo Arellano
Observatorio del Mercado de Trabajo
Consejería de Economía, Empresas y Empleo
http://www.castillalamancha.es/



-Mensaje original-
De: R-help-es [mailto:r-help-es-boun...@r-project.org] En nombre de Jesús
Para Fernández
Enviado el: viernes, 02 de junio de 2017 11:48
Para: r-help-es@r-project.org
Asunto: [R-es] CV en R

Buenas,


Estoy haciendo modelos y comparando cual es mejor. Para ello, uso CV de 10
folds.


Por ejemplo, hago la comparativa entre un svm y un randomForest para una
serie de datos, por ello hago:


midataset<-import.


#datos es un dataframe de 1500 filas y 15 variables


for(i in 1:10){

numeros<-sample(1:1500,1500*0.7)

train<-datos[numeros,]

test<-datos[-numeros,]


#modeloRF

modelo.rf<-randomForest(respuesta~,train)

prediccion<-predict(modelo.rf,test)

fp<-table(prediccion,test$respuesta)[2,1]
fn<-table(prediccion,test$respuesta)[1,2]
error<-(fp+fn)/nrow(train.balanceado)
resultado<-rbind(resultado,data.frame(error=error,modelo="rf"))

#modelo SVM


modelo.svm<-svm(respuesta~,train)

prediccion<-predict(modelo.svm,test)

fp<-table(prediccion,test$respuesta)[2,1]
fn<-table(prediccion,test$respuesta)[1,2]
error<-(fp+fn)/nrow(train.balanceado)
resultado<-rbind(resultado,data.frame(error=error,modelo="svm"))

}


Mi pregunta es la siguiente. Si el modelo de RF es mejor, como me quedo con
el modelo final? Tengo que crear el modelo de nuevo, sin tener en cuenta el
train?


modelo.final<-randomForest(respuesta~.,datos)


Gracias




[[alternative HTML version deleted]]

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


Re: [R-es] errores con openair (Javier Valdes Cantallopts (DGA))

2017-06-02 Por tema PEDRO CONCEJERO CEREZO

Javier, parece que openair requiere un formato especifico de fecha y
efectivamente "strptime". En la documentacion, funcion import:

date.format The format of the date. This is given in ‘R’ format
according to strptime. For
example, a date format such as 1/11/2000 12:00 (day/month/year hour:minutes)
is given the format “%d/%m/%Y %H:%M”. See examples below and strptime
for more details

Y tambien mira la zona (tzone), tu ejemplo no lo tiene y puede ser que
lo necesite.

Saludos,

Pedro


El 01/06/2017 a las 21:55, r-help-es-requ...@r-project.org escribió:

Envíe los mensajes para la lista R-help-es a
  r-help-es@r-project.org

Para subscribirse o anular su subscripción a través de la WEB
  https://stat.ethz.ch/mailman/listinfo/r-help-es

O por correo electrónico, enviando un mensaje con el texto "help" en
el asunto (subject) o en el cuerpo a:
  r-help-es-requ...@r-project.org

Puede contactar con el responsable de la lista escribiendo a:
  r-help-es-ow...@r-project.org

Si responde a algún contenido de este mensaje, por favor, edite la
linea del asunto (subject) para que el texto sea mas especifico que:
"Re: Contents of R-help-es digest...". Además, por favor, incluya en
la respuesta sólo aquellas partes del mensaje a las que está
respondiendo.


Asuntos del día:

1. Re: errores con openair (Javier Valdes Cantallopts (DGA))


--

Message: 1
Date: Thu, 1 Jun 2017 19:56:16 +
From: "Javier Valdes Cantallopts (DGA)" 
To: "Carlos J. Gil Bellosta " 
Cc: "r-help-es@r-project.org" 
Subject: Re: [R-es] errores con openair
Message-ID:
  <023ae46828930542b1f3839f47a15400220a1...@exmbx02.moptt.gov.cl>
Content-Type: text/plain; charset="utf-8"

Al parecer está bien el formato, lo trabajé con lubridate..

str(TOTAL$fecha)

POSIXct[1:131478], format: "2014-01-24 04:10:00" "2014-01-24 04:20:00" "2014-01-24 
04:30:00" .


[Descripción: FIRMA3]

De: gilbello...@gmail.com [mailto:gilbello...@gmail.com] En nombre de Carlos J. 
Gil Bellosta
Enviado el: jueves, 01 de junio de 2017 15:51
Para: Javier Valdes Cantallopts (DGA)
CC: r-help-es@r-project.org
Asunto: Re: [R-es] errores con openair

Revisa el formato de tus fechas.

El 1 de junio de 2017, 21:46, Javier Valdes Cantallopts (DGA) 
mailto:javier.val...@mop.gov.cl>> escribió:
Estimados como les va.

He tratado de profundizar sobre el paquete OPENAIR PARA MANEJO DE DATOS. Sin 
embargo, cada cosa que intento hacer, por muy pequeña que sea, me tira este 
error. En definitiva, no he podido hacer absolutamente nada¡¡
He probado de todo, pero ya me estoy aburriendo, a pesar que al parecer es una 
muy buena herramienta.
Saludos.

Error in as.POSIXct.default(x) :
   do not know how to convert 'x' to class ?POSIXct?
In addition: Warning message:
In is.na(mydata$date) :
   is.na() applied to non-(list or vector) of type 'NULL'

[Descripción: FIRMA3]





Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario, puede 
contener información privilegiada o confidencial y es para uso exclusivo de la 
persona o entidad de destino. Si no es usted. el destinatario indicado, queda 
notificado de que la lectura, utilización, divulgación y/o copia sin 
autorización puede estar prohibida en virtud de la legislación vigente. Si ha 
recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente 
por esta misma vía y proceda a su destrucción.

The information contained in this transmission is privileged and confidential 
information intended only for the use of the individual or entity named above. 
If the reader of this message is not the intended recipient, you are hereby 
notified that any dissemination, distribution or copying of this communication 
is strictly prohibited. If you have received this transmission in error, do not 
read it. Please immediately reply to the sender that you have received this 
communication in error and then delete it.

Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinatário, pode 
conter informação privilegiada ou confidencial e é para uso exclusivo da pessoa 
ou entidade de destino. Se não é vossa senhoria o destinatário indicado, fica 
notificado de que a leitura, utilização, divulgação e/ou cópia sem autorização 
pode estar proibida em virtude da legislação vigente. Se recebeu esta mensagem 
por erro, rogamos-lhe que nos o comunique imediatamente por esta mesma via e 
proceda a sua destruição

___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es