Commit a11dd34c by Walmes Marques Zeviani

### Conclui tutorial de regressão logistica.

parent 45a87f32
 ... ... @@ -21,6 +21,7 @@ opts_chunk\$set( * ; ```{r} # Pacotes. library(lattice) library(latticeExtra) ... ... @@ -46,6 +47,20 @@ xyplot(as.formula(f), scales = list(x = list(relation = "free", log = FALSE))) + latticeExtra::layer(panel.smoother(x, y, method = lm)) xyplot(as.formula(f), outer = TRUE, data = na.omit(cre), as.table = TRUE, jitter.y = TRUE, amount = 0.025, scales = list(x = list(relation = "free", log = FALSE))) + latticeExtra::layer({ mod <- glm(y ~ x, family = binomial) xp <- seq(min(x), max(x), length.out = 101) yp <- predict(mod, newdata = list(x = xp), type = "response") panel.lines(x = xp, y = yp + 1) }) # Visualiza contra as preditoras categóricas. v <- names(cre)[1:15][sapply(cre[, -16], is.factor)] length(v) ... ... @@ -68,9 +83,7 @@ layout(1) cre <- subset(cre, select = setdiff(names(cre), names(which(!keep)))) ``` ```{r} # Casos completos. cc <- complete.cases(cre) table(cc) ... ... @@ -100,6 +113,8 @@ tb sum(diag(tb))/sum(tb) ``` ## Usando o pacote `caret` * ```{r, eval = FALSE} ... ... @@ -144,6 +159,42 @@ confusionMatrix(yp, cre_test\$y) # Carrega o pacote. library(VGAM) #----------------------------------------------------------------------- # Usando um par de preditoras para visualizar a fronteira. # Ajuste do modelo. fit <- vglm(Species ~ Sepal.Length + Sepal.Width, family = multinomial, data = iris) summary(fit) grid <- with(iris, expand.grid( Sepal.Length = seq(min(Sepal.Length), max(Sepal.Length), length.out = 61), Sepal.Width = seq(min(Sepal.Width), max(Sepal.Width), length.out = 61), KEEP.OUT.ATTRS = FALSE)) prob <- predict(fit, newdata = grid, type = "response") grid\$pred <- apply(prob, MARGIN = 1, FUN = which.max) grid\$pred <- factor(grid\$pred, labels = levels(iris\$Species)) # Gráfico com pontos, classficações, fronteira e vetores de suporte. plot(Sepal.Width ~ Sepal.Length, data = grid, col = as.integer(grid\$pred), pch = 3) points(Sepal.Width ~ Sepal.Length, data = iris, col = as.integer(iris\$Species), pch = 19) #----------------------------------------------------------------------- # Usando todas as preditoras. # Ajusta o modelo. fit <- vglm(Species ~ ., family = multinomial, data = iris) ... ... @@ -156,7 +207,7 @@ pred <- apply(prob, MARGIN = 1, FUN = which.max) pred <- factor(pred, labels = levels(iris\$Species)) # Acurácia. confusionMatrix(pred, iris\$Species) caret::confusionMatrix(pred, iris\$Species) ``` ## Usando o `caret` ... ... @@ -173,7 +224,9 @@ data_train <- iris[intrain, ] data_test <- iris[-intrain, ] # Parametriza a valiação cruzada. trctrl <- trainControl(method = "repeatedcv", number = 10, repeats = 3) trctrl <- trainControl(method = "repeatedcv", number = 10, repeats = 3) # Penalized Multinomial Regression, usa a nnet::multinom(). set.seed(159) ... ...
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!