머신러닝 (elasticnet svm rf)
library(MASS)
library(caret)
# createDataPartition
set.seed(123)
train <- createDataPartition(y=Boston$medv, p=0.7, list=F)
head(train)
Boston.train <- Boston[train,]
Boston.test <- Boston[-train,]
#glmnet elasticnet : alpha = 0.1 lambda = 0.08747614.
set.seed(123)
Boston.gnet <- train(form=medv ~ ., data=Boston.train, method="glmnet",
trControl=trainControl(method="cv",number=10), tuneLength=10)
#rf 오래걸림 : mtry = 5
Boston.rf <- train(form=medv ~ ., data=Boston.train, method="rf",
trControl=trainControl(method="cv",number=10), tuneLength=10)
#svm : sigma = 0.04434552 and C = 32.
Boston.svm <- train(form=medv ~ ., data=Boston.train, method="svmRadialSigma",
trControl=trainControl(method="cv",number=10), tuneLength=10)
# predict
gnet.pred <- predict(Boston.gnet,Boston.test)
postResample(pred=gnet.pred, obs=Boston.test$medv)
rf.pred <- predict(Boston.rf,Boston.test)
postResample(pred=rf.pred, obs=Boston.test$medv)
svm.pred <- predict(Boston.svm,Boston.test)
postResample(pred=svm.pred, obs=Boston.test$medv)
#comparison
models <- list(gnet=Boston.gnet, rf=Boston.rf, svm=Boston.svm)
summary(resamples(models))
summary(resamples(models), metric="RMSE")
summary(diff(resamples(models), metric="RMSE"))