Discussion:
[R-es] Excediendo capacidad de cálculo del ordenador
Alberto
2018-01-19 19:16:20 UTC
Permalink
Hola a todos,

estoy teniendo problemas a la hora de ejecutar SVM. El ordenador lleva 5 días encendido pero todavía no ha impreso ningún resultado. Necesito consejo sobre como puedo agilizar este proceso o otra forma de realizar la misma acción pero con otro código más eficiente. A continuación dejo unas indicaciones de los datos a tratar y un ejemplo del código utilizado.

CPU: i7-4710HQ, 8 GB RAM

Datos: entrenamiento - 339701 obs. of 33 variables

Código:

#svm radial
inicio <- Sys.time()
ajuste_modelo_svm_radial <- tune(svm, Casualty_Severity~., data = entrenamiento, kernel='radial',gamma = c(1,50,100), ranges = list(cost= c(10, 100, 1000, 10000, 100000)))
summary(ajuste_modelo_svm_radial)
mejor_modelo_svm_radial <- ajuste_modelo_svm_radial$best.model
summary(mejor_modelo_svm_radial)
prediccion_svm_radial <- predict(mejor_modelo_svm_radial, test)
(table(prediccion=prediccion_svm_radial, verdad = test$Casualty_Severity))

svm_radial_roc <- tune(svm, Casualty_Severity~., data = entrenamiento, kernel='radial',gamma = c(1,50,100), ranges = list(cost= c(10, 100, 1000, 10000, 100000)), decision.values =T)
mejor_modelo_svm_radial_roc <- svm_radial_roc$best.model
ajuste_roc_svm_radial <- attributes(predict(mejor_modelo_svm_radial_roc, test, decision.values= T))$decision.values
rocplot(ajuste_roc_svm_radial, test$Casualty_Severity, main = 'Test Data')
print(duracion<-Sys.time()-inicio)


Muchas gracias de antemano, un saludo.



[[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2018-01-19 19:24:19 UTC
Permalink
Comienza con un subconjunto pequeño de los datos (¿1000?). Luego
increméntalo (¿10k?). Etc. Eso te puede dar idea de lo que puede tardar el
proceso con los datos completos.

Posiblemente puedas paralelizar: estás ajustando el modelo con varios
parámetros distintos secuencialmente. Prueba la paralelización comenzando
primero con datos pequeños.

Prueba también antes con un kernel lineal. Tardará una fracción del tiempo.

Igual puedes determinar los parámetros razonables (mucha gente escribiría
"óptimos" en lugar de "razonables", pero yo no) con un subcojunto y correr
una única vez con ellos en el conjunto de datos completos.

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com
Post by Alberto
Hola a todos,
estoy teniendo problemas a la hora de ejecutar SVM. El ordenador lleva 5
días encendido pero todavía no ha impreso ningún resultado. Necesito
consejo sobre como puedo agilizar este proceso o otra forma de realizar la
misma acción pero con otro código más eficiente. A continuación dejo unas
indicaciones de los datos a tratar y un ejemplo del código utilizado.
CPU: i7-4710HQ, 8 GB RAM
Datos: entrenamiento - 339701 obs. of 33 variables
#svm radial
inicio <- Sys.time()
ajuste_modelo_svm_radial <- tune(svm, Casualty_Severity~., data =
entrenamiento, kernel='radial',gamma = c(1,50,100), ranges = list(cost=
c(10, 100, 1000, 10000, 100000)))
summary(ajuste_modelo_svm_radial)
mejor_modelo_svm_radial <- ajuste_modelo_svm_radial$best.model
summary(mejor_modelo_svm_radial)
prediccion_svm_radial <- predict(mejor_modelo_svm_radial, test)
(table(prediccion=prediccion_svm_radial, verdad = test$Casualty_Severity))
svm_radial_roc <- tune(svm, Casualty_Severity~., data = entrenamiento,
kernel='radial',gamma = c(1,50,100), ranges = list(cost= c(10, 100, 1000,
10000, 100000)), decision.values =T)
mejor_modelo_svm_radial_roc <- svm_radial_roc$best.model
ajuste_roc_svm_radial <- attributes(predict(mejor_modelo_svm_radial_roc,
test, decision.values= T))$decision.values
rocplot(ajuste_roc_svm_radial, test$Casualty_Severity, main = 'Test Data')
print(duracion<-Sys.time()-inicio)
Muchas gracias de antemano, un saludo.
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
Carlos Ortega
2018-01-19 21:08:20 UTC
Permalink
Hola,

Puedes probar esta otra variante de SVM más rápida que la que estás usando:

liquidSVM: A Fast and Versatile SVM Package
https://cloud.r-project.org/web/packages/liquidSVM/index.html

Saludos,
Carlos Ortega
www.qualityexcellence.es
Post by Alberto
Hola a todos,
estoy teniendo problemas a la hora de ejecutar SVM. El ordenador lleva 5
días encendido pero todavía no ha impreso ningún resultado. Necesito
consejo sobre como puedo agilizar este proceso o otra forma de realizar la
misma acción pero con otro código más eficiente. A continuación dejo unas
indicaciones de los datos a tratar y un ejemplo del código utilizado.
CPU: i7-4710HQ, 8 GB RAM
Datos: entrenamiento - 339701 obs. of 33 variables
#svm radial
inicio <- Sys.time()
ajuste_modelo_svm_radial <- tune(svm, Casualty_Severity~., data =
entrenamiento, kernel='radial',gamma = c(1,50,100), ranges = list(cost=
c(10, 100, 1000, 10000, 100000)))
summary(ajuste_modelo_svm_radial)
mejor_modelo_svm_radial <- ajuste_modelo_svm_radial$best.model
summary(mejor_modelo_svm_radial)
prediccion_svm_radial <- predict(mejor_modelo_svm_radial, test)
(table(prediccion=prediccion_svm_radial, verdad = test$Casualty_Severity))
svm_radial_roc <- tune(svm, Casualty_Severity~., data = entrenamiento,
kernel='radial',gamma = c(1,50,100), ranges = list(cost= c(10, 100, 1000,
10000, 100000)), decision.values =T)
mejor_modelo_svm_radial_roc <- svm_radial_roc$best.model
ajuste_roc_svm_radial <- attributes(predict(mejor_modelo_svm_radial_roc,
test, decision.values= T))$decision.values
rocplot(ajuste_roc_svm_radial, test$Casualty_Severity, main = 'Test Data')
print(duracion<-Sys.time()-inicio)
Muchas gracias de antemano, un saludo.
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
https://stat.ethz.ch/mailman/listinfo/r-help-es
--
Saludos,
Carlos Ortega
www.qualityexcellence.es

[[alternative HTML version deleted]]
Loading...