Adiciona código usando os dados de uva com k-nn.

parent 834b6f8e
......@@ -130,6 +130,8 @@ nrow(db_train)
db_test <- db[!i, ]
nrow(db_test)
# 430/nrow(da)
# Obtendo as predições para o conjunto de teste via conjunto de treino.
m0 <- knn(train = db_train[, -1],
test = db_test[, -1],
......@@ -137,7 +139,10 @@ m0 <- knn(train = db_train[, -1],
k = 1)
# Tabela de confusão.
table(db_test[, 1], m0)
ct <- table(db_test[, 1], m0)
ct
sum(diag(ct))/sum(ct)
#-----------------------------------------------------------------------
# Simplificando para visualizar e entender.
......@@ -253,3 +258,56 @@ m0 <- predict(knn_fit, newdata = db_test)
# Matriz de confusão.
confusionMatrix(m0, db_test$diagnosis)
```
```{r}
url <- "http://www.leg.ufpr.br/~walmes/data/areafoliarUva.txt"
uva <- read.table(url, header = TRUE, sep = "\t",
stringsAsFactors = FALSE)
uva$cult <- factor(uva$cult)
uva$id <- NULL
# Comprimento da nervura lateral: média dos lados direito e esquerdo.
uva$nl <- with(uva, apply(cbind(nld, nle), 1, mean))
uva <- subset(uva, select = -c(nld, nle))
str(uva)
# uva[, -1] <- as.data.frame(lapply(uva[, -1]),
# FUN = scale)
library(caret)
set.seed(1234)
# Especificação da validação cruzada.
trctrl <- trainControl(method = "repeatedcv",
number = 10,
repeats = 3)
# Ajuste.
svm_Linear <- train(cult ~ .,
data = uva,
method = "svmLinear",
trControl = trctrl,
preProcess = c("center", "scale"),
tuneLength = 10)
knn_fit <- train(cult ~ .,
data = uva,
method = "knn",
trControl = trctrl,
preProcess = c("center", "scale"),
tuneLength = 10)
# Resultado do ajuste.
svm_Linear
knn_fit
str(svm_Linear)
# Mostra que foi feito a chamada da kernlab::ksvm().
svm_Linear$finalModel
# Matriz de confusão.
confusionMatrix(uva$cult, predict(svm_Linear))
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment