Uso: Clasificador clases preestablecidas.
Descripción: El AdaBoost es un algoritmo de aprendizaje automático, inventado por Yoav Freund y Schapire Robert. Es un algoritmo de meta-heurístico, y se puede utilizar para aumentar el rendimiento de otros algoritmos de aprendizaje.
El nombre de «AdaBoost» viene a significar adaptación Impulso o estímulo adaptativo. Este algoritmo es adaptable en el sentido de que las clasificaciones posteriores realizados se ajustan a favor de los casos clasificados negativamente por clasificaciones anteriores.
El AdaBoost es sensible al ruido en los datos y casos aislados. Sin embargo, para algunos problemas que es menos susceptible a overfitting (sobreentrenamiento) que la mayoría de los algoritmos de aprendizaje automático.
Variable dependiente: no métricas.
Variables independientes: métricas.
Ejemplo en R: Clasificar tipo de flor atendiendo a sus características físicas como pueden ser el ancho y alto de los pétalos y sépalos.
# Carga de datos inicial, tipos de flores con diferentes características
data(iris)
datos <- iris
View(datos)
# Selección de una submuestra de 105 (el 70% de los datos)
set.seed(101)
tamano.total <- nrow(datos)
tamano.entreno <- round(150*0.7)
datos.indices <- sample(1:tamano.total , size=tamano.entreno)
datos.entreno <- datos[datos.indices,]
datos.test <- datos[-datos.indices,]
# Cargar todos los paquetes necesarios
library(ggplot2)
library(lattice)
library(caret)
library(nnet)
library(mlbench)
library(adabag)
library(rpart)
# Ejecución del análisis AdaBoost
modelo <- boosting(Species ~ ., data = datos.entreno)
# Importancia de cada variable
modelo$importance
## Petal.Length Petal.Width Sepal.Length Sepal.Width
## 56.663847 23.959704 15.562731 3.813718
# predict necesita el parámetro newdata
predicciones <- predict(object = modelo, newdata=datos.test, type = "class")
predicciones$confusion
## Observed Class
## Predicted Class setosa versicolor virginica
## setosa 15 0 0
## versicolor 0 11 3
## virginica 0 1 15
# Correctamente clasificados
100 * sum(diag(predicciones$confusion)) / sum(predicciones$confusion)
## [1] 91.11111
0 comentarios